Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ACP Guide PDF
ACP Guide PDF
1. Introduccin.
1.1. Historia.
1.2. Qu es Android?
1.3. Qu necesito para programar en Android?
2. Arquitectura del sistema operativo
2.1. Arquitectura general
2.2. La mquina virtual de Android
2.3. Procesos en Android
3. Componentes de una aplicacin
3.1. Actividades (Activities)
3.1.1. Callbacks de una Actividad
3.2. Intenciones (Intents)
3.2.1. Tipos de Intents
3.2.2. Intent Filter
3.3. Proveedores de contenido (Content Provider)
3.4. Servicios (Services)
3.5. Receptores de radiodifusin (Broadcast Receiber)
4. Entorno de desarrollo
4.1. Instalacin de Android Studio
4.1.1. Requisitos del sistema
4.2. Instalacin de plataformas
4.3. Android Virtual Device (AVD) Manager
4.4. Comandos para AVD
5. Fundamentos de una aplicacin.
5.1. Creacin y estructura de un proyecto Android
5.1.1. Estructura de un proyecto
5.2. Trabajando con el archivo AndroidManifest.xml
5.3. Trabajando con el archivo Build.gradle
5.3.1. Archivo Proyect Build
5.3.2. Archivo Module Build
6. Creacin y manejo de Actividades.
6.1. Uso de recursos en una aplicacin
6.2. Seguridad y permisos
6.3. Uso de los mensajes Log
7. Interfaz de usuario y controles
7.1. Unidades y layout
7.2. Objetos Widgets
7.3. Uso de ListView
7.3.1. Listas simples
7.3.2. Listas personalizadas
7.4. Uso de TabLayout
8. Temas, estilos y elementos grficos
8.1. Creacin y uso de estilos
8.2. Creacin de iconos y comprensin de tamaos
8.3. Uso de la herramienta draw9patch
1
Gua de Android Certified Professional
2
Gua de Android Certified Professional
18.2. Twitter
19. Conectividad
19.1. Http
19.2. Wifi
19.3. Bluetooth
20. Realidad aumentada
21. Tpicos avanzados
21.1. Servicios
21.1.1. Servicio iniciado
21.1.2. Servicio vinculado
21.2. Content Provider
22. Publicacin de una aplicacin
22.1. Preparacin de la aplicacin
22.2. Firma y creacin del archivo APK
22.3. Publicacin en Google Play
22.4. Control de versiones
22.5. Monetizacin de una aplicacin
3
Gua de Android Certified Professional
1. Introduccin
1.1. Historia
Breve historia de los inicios del sistema operativo Android, los creadores, el
primer dispositivo mvil que se bas en Android y alguno de los principales hitos
en su historia.
4
Gua de Android Certified Professional
Los inicios de Android fueron un poco lentos, ya que primero fue lanzado el
sistema operativo (Octubre de 2008) y posteriormente el primer dispositivo mvil,
el HTC Dream, tambin conocido como T-Mobile G1 (2010). Esto no ha sido
problema para que el sistema operativo tenga ganados muchos adeptos y ha
demostrado una velocidad de madurez importante debido a los diferentes
fabricantes de hardware, que han adaptado interesantes piezas para acompaar
las diferentes funcionalidades del sistema operativo.
1.2. Qu es Android?
Caractersticas principales de Android, se describen a grandes rasgos como est
formado el sistema operativo y porqu utiliza Java como lenguaje de
programacin.
5
Gua de Android Certified Professional
Herramientas de software.
Sistema operativo. Una computadora que corra con Windows, Linux o Mac
OS. En Windows y en Linux no importa la arquitectura (32 bits o 64 bits).
Conocimientos tcnicos.
Programacin orientada a objetos (POO). Si se ha programado en algn
lenguaje que se base en este paradigma (PHP, Python, Java, .NET, C o C++,
etc.) no debera implicar mayor problema empezar a desarrollar aplicaciones
para Android.
Herramientas hardware.
Equipo Android. Uno de los puntos importantes que se recomienda, es tener
es un telfono que corra con Android. Esto es porque de esta manera se
tendr una autntica forma de probar cmo es que corren las aplicaciones en
un ambiente real, adems de que existen algunos ejemplos prcticos que por
sus caractersticas es altamente recomendable ejecutarlos en un dispositivo
fsico.
7
Gua de Android Certified Professional
8
Gua de Android Certified Professional
Otra de las tareas del kernel es la de gestionar los diferentes recursos del
dispositivo (energa, memoria, etc.), y del sistema operativo (procesos, red, entre
otros).
9
Gua de Android Certified Professional
10
Gua de Android Certified Professional
capa son bibliotecas Java que acceden a los recursos de las capas anteriores a
travs de la mquina virtual. Algunos de los componentes ms importantes se
listan en la siguiente tabla.
11
Gua de Android Certified Professional
12
Gua de Android Certified Professional
Dalvik es una mquina virtual intrprete que ejecuta archivos en el formato Dalvik
Executable (*.dex), un formato optimizado para el almacenamiento eficiente y
ejecucin mapeable en memoria. Su objetivo fundamental es el mismo que
cualquier mquina virtual; permite que el cdigo sea compilado a un bytecode
independiente de la mquina en la que se va a ejecutar, y la mquina virtual
interpreta este bytecode a la hora de ejecutar el programa.
Dalvik est basado en el tipo de compilacin JIT (Just In Time), por lo que cada
vez que se ejecuta una aplicacin en el dispositivo, la parte del cdigo requerida
va a ser compilada a cdigo mquina en ese momento. A medida que se utilice
la aplicacin y se avance en ella el cdigo adicional va a ser compilado y
almacenado en cache para poder reutilizarlo posteriormente mientras la
aplicacin este en ejecucin.
13
Gua de Android Certified Professional
De igual forma, el hecho de que Android haga un uso extenso del lenguaje XML
para definir las interfaces grficas y otros elementos, implica que estos archivos
deben ser vinculados a la hora de compilar y para que su conversin a bytecode
pueda mejorar el rendimiento de nuestras aplicaciones.
14
Gua de Android Certified Professional
En Android los recursos son normalmente muy limitados y por eso el sistema
operativo tiene ms control sobre las aplicaciones que en programas de
escritorio.
15
Gua de Android Certified Professional
16
Gua de Android Certified Professional
17
Gua de Android Certified Professional
18
Gua de Android Certified Professional
19
Gua de Android Certified Professional
20
Gua de Android Certified Professional
Datos (Data). Datos necesarios para realizar una accin o requeridos por
el componente que recibe el Intent.
21
Gua de Android Certified Professional
22
Gua de Android Certified Professional
23
Gua de Android Certified Professional
24
Gua de Android Certified Professional
25
Gua de Android Certified Professional
26
Gua de Android Certified Professional
Content://mx.com.omnius/notas/1
Esquema Ruta
Autoridad
27
Gua de Android Certified Professional
28
Gua de Android Certified Professional
29
Gua de Android Certified Professional
4. Entorno de desarrollo
4.1. Instalacin de Android Studio.
Requisitos y proceso de instalacin del entorno de desarrollo Android Studio,
indispensable para realizar las practicas a lo largo del curso y desarrollar
aplicaciones en Android.
La siguiente gua lleva al usuario por el procedimiento para poder instalar el IDE
Android Studio en alguna computadora que ejecute cualquiera de los sistemas
operativos ms usados; Windows, Mac o Linux.
30
Gua de Android Certified Professional
31
Gua de Android Certified Professional
32
Gua de Android Certified Professional
33
Gua de Android Certified Professional
34
Gua de Android Certified Professional
35
Gua de Android Certified Professional
10. Esperar a que la instalacin se lleve a cabo, esto puede llevar varios minutos.
Terminado el proceso dar clic en el botn Next y finalizar el asistente.
4.1.1. Requisitos del sistema
Windows:
Mac OS X:
36
Gua de Android Certified Professional
En Mac OS, Android Studio corre con Java Runtime Environment (JRE) 6
para la renderizacin de fuentes optimizado. El proyecto puede ser
configurado para utilizar Java Development Kit (JDK) 6 o 7.
Linux:
El SDK de Android utiliza una estructura modular que separa las partes
principales del mismo (las versiones del SDK, complementos, herramientas,
ejemplos y documentacin) en un conjunto de componentes que podemos
instalar por separado. El SDK que es descargado junto con Android Studio o el
que es descargado por separado incluye nicamente la ltima versin de las
herramientas del SDK, por lo que es altamente recomendable actualizarlo.
37
Gua de Android Certified Professional
38
Gua de Android Certified Professional
Para crear un emulador de Android con AVD Manager, realizar los siguientes
pasos:
39
Gua de Android Certified Professional
40
Gua de Android Certified Professional
41
Gua de Android Certified Professional
7. Si la opcin en crear un
emulador personalizado, que
cubra ciertas caractersticas
especficas, en el selector de dispositivos
debemos dar clic sobre el botn New Hardware Profile.
42
Gua de Android Certified Professional
43
Gua de Android Certified Professional
La primera vez que se ejecuta una AVD puede resultar tardado el proceso, por
lo que se recomienda que cuando se estn realizando constantes cambios a un
proyecto en Android, no se detenga el AVD, es mejor que permanezca
ejecutndose en segundo plano, de esta forma cada vez que se instale una
aplicacin con las modificaciones hechas automticamente se instalar en el
dispositivo que est corriendo (siempre y cuando sean compatibles en
versiones).
44
Gua de Android Certified Professional
Instalar aplicaciones.
45
Gua de Android Certified Professional
46
Gua de Android Certified Professional
Para crear un nuevo proyecto en Android Studio, una vez instalado todo lo
requerido, debemos ejecutar el IDE y desde la pantalla principal de
bienvenida seleccionaremos la opcin Start a new Android Studio
Project para iniciar el asistente de creacin de nuevo proyecto.
47
Gua de Android Certified Professional
Una vez finalizado el asistente de nuevo proyecto, Android Studio crear toda
la estructura de proyecto y los elementos indispensables que se requieren
para la aplicacin. Si todo se ha creado adecuadamente aparecer la pantalla
principal de Android Studio con el proyecto creado.
48
Gua de Android Certified Professional
Carpeta app/java
Carpeta app/res/drawable
Carpeta app/res/layout
49
Gua de Android Certified Professional
Carpeta app/res/men
Carpeta app/res/values
50
Gua de Android Certified Professional
Declara los permisos que la aplicacin debe tener y que permiten acceder
a partes protegidas de la API y la interaccin con otras aplicaciones.
Este archivo manifiesto, que es un recurso del proyecto, est compuesto por una
coleccin estructurada de elementos en XML, los cuales, junto con los atributos de
cada uno de ellos sirven para proporcionarle la informacin descrita anteriormente
al sistema Android, algunos de estos elementos y sus atributos son:
<application>: Este elemento contiene subelementos que declaran cada uno de los
componentes de la aplicacin y tiene atributos que pueden afectar a todos los
componentes. Algunos atributos como icon, label, permision y process pueden ser
modificados por cada componente de manera independiente. Otros como
debuggable, enable y description no pueden ser sobrescritos por los componentes
individuales.
<activity>: Declara una Actividad (una subclase de Activity) que implementa parte
de la interfaz de usuario de una aplicacin. Todas las actividades deben ser
representadas por un elemento <activity> dentro del archivo AndroidManifest.xml,
cualquiera que no sea declarada no podr ser vista por el sistema y nunca se
ejecutar.
<intent filter>: Especifica los tipos de Intents (intenciones), que una Activity,
Services o Broadcast Receiver puede responder. Un Intent Filter permite definir las
capacidades de un componente (lo que una Activity o Service puede hacer o un
Broadcast Receiver puede enviar) y filtra los Intents que no son significativos para
el mismo.
<action>: Permite aadir una accin a un Intent Filter. Un elemento <intent filter>
debe tener uno o ms elementos <action>. Si no contiene al menos uno, ningn
objeto Intent podr ser entregado al elemento.
51
Gua de Android Certified Professional
<category>: Permite aadir una categora a un Intent Filter. Es una cadena de texto
que contiene informacin adicional sobre el tipo de componente que debe manejar
la intencin. Por lo regular un Intent Filter no requiere una categora.
52
Gua de Android Certified Professional
53
Gua de Android Certified Professional
54
Gua de Android Certified Professional
Se trata de uno de los archivos generados por Gradle para la configuracin del
proyecto. Se caracteriza por tener incluido el nombre del proyecto en su nombre.
Por defecto el archivo Gradle a nivel de proyecto,
build.gradle(proyect:nombreAplicacin), utiliza buildScript para definir los
repositorios y las dependencias Gradle. Esto permite que los diferentes
repositorios a utilizar puedan hacer uso de versiones diferentes de Gradle.
55
Gua de Android Certified Professional
que el valor especificado en este atributo. Este valor siempre debe ser
incluido dentro de las propiedades de la aplicacin.
56
Gua de Android Certified Professional
Grid Layout. Este contendor fue introducido a partir del API 14 de Android
(Android 4.0). Se caracteriza por dividir en lneas invisibles el espacio,
estas lneas forman una cuadrcula que permiten la definicin de filas y
columnas. Los elementos view en su interior pueden ocupar una o varias
celdas de manera horizontal o vertical.
57
Gua de Android Certified Professional
Cabe recalcar que todos los archivos XML para crear las interfaces de
usuario deben encontrarse en la carpeta res/layout del proyecto.
59
Gua de Android Certified Professional
60
Gua de Android Certified Professional
61
Gua de Android Certified Professional
sp: igual que el anterior pero escalada en funcin del tamao de la letra
configurado por el usuario, usado para tamao de letra.
62
Gua de Android Certified Professional
Este
control y las dems vistas cuenta con diferentes atributos dentro de las
principales se encuentran:
63
Gua de Android Certified Professional
EditText
Los controles de entrada de texto le permiten al usuario escribir texto mediante
un teclado flotante en pantalla, el cual aparece cuando el usuario "toca" el
control. El campo de texto puede ser de una o varias lneas y, adicionalmente,
permite otras acciones, como seleccionar texto, copiarlo o pegarlo y
autocompletado de texto.
Para agregar un campo de texto, desde el editor grfico del layout, se arrastra
alguno de los tipos del objeto EditText, localizados en la paleta de componentes
del panel Text Fields, lo que aade un elemento <EditText> al archivo XML
Layout.
64
Gua de Android Certified Professional
Button
Un botn es un control que consta de un texto o cono (o ambos) el cual puede
responder a una accin o evento que se produce cuando el usuario lo toca.
65
Gua de Android Certified Professional
Para agregar un botn, desde el editor grfico del layout, se arrastra alguno de
los tipos del objeto Button o ImageButton, localizados en la paleta de
componentes ampliando el panel Widgets, los cuales agregan los elementos
<Button> o <ImageButton>, respectivamente, al archivo XML layout.
CheckBox
Permiten al usuario
seleccionar una o ms
opciones de un conjunto y por lo general se debe presentar cada opcin en una
66
Gua de Android Certified Professional
Aparte de los atributos que comparte con el TextView, este control tiene un
atributo adicional android:checked, que permite a la opcin estar seleccionada,
si el valor es true y false en caso contrario .
Radio Button
El radiobutton permiten al usuario seleccionar una opcin de un conjunto, para
cada opcin se debe crear un elemento <RadioButton> en el layout. Sin
embargo , ya que los radiobuttons son mutuamente excluyentes, se deben
agrupar dentro de un RadioGroup, al agruparlos, el sistema asegura que slo
una opcin puede ser seleccionada a la vez.
Para agregar un radiobutton, desde el editor grfico del layout, se arrastra el
objeto localizado en la paleta de componentes del panel Widgets.
67
Gua de Android Certified Professional
Spinners
Los Spinners proporcionan una manera rpida para seleccionar un valor de un
conjunto . Por defecto muestra un valor seleccionado, al tocar el spinner muestra
un men desplegable con todos los dems valores disponibles, de las cuales se
puede seleccionar uno nuevo.
Para agregar un Spinner, desde el editor grfico del layout, se arrastra el objeto
localizado en la paleta de componentes del panel Widgets.
68
Gua de Android Certified Professional
Aparte de los atributos bsicos, el spinner cuenta con atributos propios los cuales
son:
android:prompt: indica el texto a mostrar cuando se muestra la lista de
opciones.
android:entries. indica el nombre de un recurso array xml que contiene
los elementos a mostrar.
Eventos
69
Gua de Android Certified Professional
70
Gua de Android Certified Professional
Para agregar un ListView, desde el editor grfico del layout, se arrastra el objeto
localizado en la paleta de componentes del panel Containers.
71
Gua de Android Certified Professional
En las listas simples el adaptador por default espera un slo TextView para
llenar, es decir la view de cada fila estar conformada solo por texto.
Fuente Adapter
de datos Item 1 View
Item 2 TextView
Item 3
Argentina
ListView
Chile
Paraguay
Una vez hecho esto, se crea el Adapter, el cual permite el acceso a los
elementos del arreglo y tambin es responsable de crear una vista para cada
elemento en el arreglo, en este caso ser un ArrayAdapter y se aade a la
lista con el mtodo setAdapter, el cual, en uno de sus constructores, recibe
en orden :
72
Gua de Android Certified Professional
Fuente
Adapte
Item r View
de
1
Meln
$10.50
Item
2
Meln
$10.50
Manzana
$19.90 ListView
Naranja
$6.50
2.- Se declaran 2 arreglos, uno para los textos y otro para las id de las
imgenes que corresponden con los textos:
73
Gua de Android Certified Professional
texto:
Parmetros de getView():
parent: View padre donde se asignar nuestro item, en este caso ser
el ListView.
74
Gua de Android Certified Professional
Tambin se deben definir Activities para las pestaas, una por cada una, de
forma normal y sobreescribir los mtodos onPause() y onResume() los
cuales son llamados cada vez que se sale o entra, respectivamente, de una
pestaa.
75
Gua de Android Certified Professional
76
Gua de Android Certified Professional
Holo Light.
Holo Dark.
Holo Light with dark action bars.
Material.
Material Light.
Material Light with dark action bars.
77
Gua de Android Certified Professional
78
Gua de Android Certified Professional
https://www.google.com/design/spec/style/icons.html
79
Gua de Android Certified Professional
Otro de los recursos que nos provee Android para la correcta creacin de
iconografa es una gua con herramientas, ejemplos y diseos que pueden
ser modificados para acoplarlos al contexto de nuestro proyecto. Podemos
consultar esta informacin en:
http://developer.android.com/intl/es/design/downloads/index.html
80
Gua de Android Certified Professional
81
Gua de Android Certified Professional
82
Gua de Android Certified Professional
83
Gua de Android Certified Professional
84
Gua de Android Certified Professional
9. Animacin y grficos.
9.1. Animacin cuadro a cuadro (Frame animation)
Creacin y uso de recursos de imagen para crear animaciones de tipo frame
(animaciones cuadro a cuadro) y la incorporacin de estas animaciones a un
proyecto Android.
Las animaciones cuadro por cuadro se encuentran definidas por una serie de
objetos dibujables que pueden ser utilizados como fondo de un elemento
view.
85
Gua de Android Certified Professional
86
Gua de Android Certified Professional
87
Gua de Android Certified Professional
88
Gua de Android Certified Professional
Ahora, para aplicar esa forma a un elemento View (para este ejemplo un
botn) basta con poner ese recurso drawable como background del
elemento.
89
Gua de Android Certified Professional
10. Mens
Los mens son componentes de una interfaz de usuario comn en muchos tipos
de aplicaciones. Para proporcionar una experiencia de usuario familiar y
consistente, debe utilizar las API de men para presentar las acciones del
usuario y otras opciones en sus actividades.
90
Gua de Android Certified Professional
Otra forma de uso muy til para el elemento <group> es usar checkBox o
radioButton para activar o desactivar opciones, para esto es necesario
agregar el atributo android:checkableBehavior en el elemento <group>,
pudiendo seleccionar una pocin o varias del grupo de elementos.
92
Gua de Android Certified Professional
93
Gua de Android Certified Professional
94
Gua de Android Certified Professional
95
Gua de Android Certified Professional
96
Gua de Android Certified Professional
La clase Dialog es la clase base para todos los dilogos, pero se recomienda
evita crear instancias de Dialog directamente. En su lugar se deben utilizar
alguna de las siguientes subclases.
97
Gua de Android Certified Professional
Para mostrar el mensaje, basta con crear una instancia de la clase que
hereda de DialogFragment y llamar al mtodo show() del objeto.
98
Gua de Android Certified Professional
99
Gua de Android Certified Professional
100
Gua de Android Certified Professional
101
Gua de Android Certified Professional
Una barra de progreso es til ya que permite indicar al usuario que algo
esta pasando en la aplicacin y le permite tener una idea rpida de cunto
tardara aproximadamente en finalizar la tarea. Android incluye un tipo de
dilogo de progreso en la clase ProgressDialog, que brinda la opcin de
muestra un dilogo con una barra de progreso (extiende de
android.app.AlertDialog).
Este dilogo permite usar un mensaje de texto o una vista (View) al mismo
tiempo, el rango de progreso es de 0 a 10000, y se puede hacer
cancelable con la tecla "back" del dispositivo (a menos que se especifique
lo contrario).
102
Gua de Android Certified Professional
11.2. Notificaciones.
Las notificaciones son los elementos que permiten alertar al usuario cuando
un evento requiere de una respuesta. En esta seccin se explica como definir
y hacer uso de las notificaciones.
103
Gua de Android Certified Professional
104
Gua de Android Certified Professional
105
Gua de Android Certified Professional
12. Multimedia
Uso del framework multimedia de Android en una aplicacin para la reproduccin
de Audio y Video, as como el uso de la cmara del dispositivo para capturar y
mostrar una fotografa.
106
Gua de Android Certified Professional
107
Gua de Android Certified Professional
108
Gua de Android Certified Professional
109
Gua de Android Certified Professional
111
Gua de Android Certified Professional
Android proporciona diferentes opciones para poder almacenar datos desde las
aplicaciones.
13.1. SharedPreferences
Uso de la clase SharedPreferences para el almacenamiento de datos
primitivos. Modos de privacidad disponibles para SharedPreferences.
112
Gua de Android Certified Professional
13.2. PreferencesActivity
Concepto y uso de PreferencesActivity para la creacin de interfaces con la
opcin de preferencias. Esta es una variante de SharedPreferences.
113
Gua de Android Certified Professional
114
Gua de Android Certified Professional
115
Gua de Android Certified Professional
116
Gua de Android Certified Professional
117
Gua de Android Certified Professional
118
Gua de Android Certified Professional
Android tiene soporte completo para las bases de datos SQLite, la cual soporta
transacciones con propiedades atmicas, consistentes, asiladas y durables
(ACID), tambin soporta la creacin de vistas y disparadores (triggers).
Cuando se crea una base de datos de SQLite, esta se almacena en un archivo,
que incluye todas las tablas que pertenezcan a esa base de datos.
Cualquier base de datos en SQLite ser accesible por nombre por cualquier
clase en la aplicacin, pero no fuera de esta, ya que la base de datos es
nicamente local.
Las transacciones en SQLite por default son diferidas, lo que significa que no
se bloquea la base de datos hasta que se accede ya sea por lectura o escritura
por primera vez a la base de datos.
Para crear una base de datos en SQLite, que almacene los datos de manera
local para una aplicacin, la implementacin recomendada sera la siguiente:
119
Gua de Android Certified Professional
Para navegar en los resultados de las consultas (leer filas y columnas), se usa
el objeto Cursor, el cual contiene mecanismos para estas tareas, todas las
consultas devuelven un objeto Cursor que apunta a todos los resultados
devueltos por la consulta.
120
Gua de Android Certified Professional
El API de Google Maps para Android permite a los desarrolladores incluir mapas e
informacin de mapeo personalizado en su aplicacin. Entre las acciones que se
pueden realizar con el API se encuentran:
Los pasos bsicos que se deben seguir para poder incluir mapas en una aplicacin
son; solicitar una llave pblica de la API de Google Maps para Android y configurar
la aplicacin para incorporar mapas.
https://console.developers.google.com
121
Gua de Android Certified Professional
122
Gua de Android Certified Professional
123
Gua de Android Certified Professional
Para obtener la llave se deben ingresar en el recuadro de texto una clave SHA1 y
el nombre del paquete de la aplicacin que mostrara el mapa, separados por un
punto y coma ( ; ). Ms informacin de cmo obtener la clave SHA1.
Como resultado se obtendr una clave de API que servir para aadir a la aplicacin
Android.
124
Gua de Android Certified Professional
los mapas requieren, adems se deben definir permisos para acceder y a los
servidores de Google Maps.
125
Gua de Android Certified Professional
Corroborar que el dispositivo que ejecuta la aplicacin tiene los Servicios de Google
Play instalados y activos.
14.1. Geolocalizacin
Uso de LocationManager de Android para la obtencin, con ayuda de un
proveedor, de la ubicacin (latitud y longitud) del dispositivo. Mostrar la ubicacin
en un mapa.
126
Gua de Android Certified Professional
El objeto de tipo listener que estar pendiente de los cambios relacionados con
el sistema de ubicacin ser el LocationListener.
127
Gua de Android Certified Professional
128
Gua de Android Certified Professional
14.2. Criteria
Uso de Criteria para determinar de manera ms precisa la ubicacin de un
dispositivo.
Android dispone de una clase llamada Criteria en la cual se indican los criterios
de la aplicacin para la seleccin de un proveedor de ubicacin. Los proveedores
pueden ordenarse de acuerdo a exactitud, uso de energa, capacidad de
informar altitud, velocidad, o el costo monetario.
129
Gua de Android Certified Professional
Para realizar la implementacin de una View propia, esta puede extender de la clase
android.view.View directamente o extender de algunas de las existentes subclases
de View como Button o TextView, luego estas nuevas clases pueden ser agregadas
al layout XML, junto con otras nuevas vistas u otras ya definidas por Android.
Un objeto Paint (pintura) que describe los colores y estilos para el dibujo.
130
Gua de Android Certified Professional
que se pueden ir guardando en una pila privada de Canvas y restaurar cada una de
ellas:
Mtodos save() y restore(): el mtodo save() guarda el estado del canvas en una
pila privada para poder aplicar traslaciones (mtodo canvas.translate(x,y)) o
rotaciones (mtodo canvas.rotate(grados)) en el Canvas y dibujar algo y luego
restaurar el estado original del Canvas con el mtodo restore( ). El mtodo save( ),
puede recibir como parmetro ciertas banderas que modifican la forma en cmo se
guarda el Canvas, Algunas de ellas, son:
131
Gua de Android Certified Professional
15.1. Fragmentos
Descripcin y uso de fragmentos (fragments) para la visualizacin de una
actividad de tipo maestro detalle. Incorporacin de diferentes archivos layout
para ser utilizados en una vista con fragmentos.
132
Gua de Android Certified Professional
133
Gua de Android Certified Professional
Una vez descargada la biblioteca y credo el proyecto en Android Studio debe ser
incorporada a las dependencias de la aplicacin.
Dentro del cdigo Java se deben definir las variables referentes al servicio web
SOAP
134
Gua de Android Certified Professional
135
Gua de Android Certified Professional
16.2. REST
Definicin y consumo de un servicio web basado en la arquitectura REST para
la obtencin de informacin en formato JSON, la cual ser mostrada en la
interfaz de una actividad.
16.3. JSON
Descripcin del formato de intercambio de informacin JSON. Obtencin y
tratamiento dentro de una aplicacin para su posterior visualizacin.
136
Gua de Android Certified Professional
137
Gua de Android Certified Professional
17. Multitasking
17.1. Loaders
En esta seccin se describe la forma de implementar los Loaders de Android
para la obtencin de informacin de manera asncrona.
Los Loaders, incluyendo sus clases derivadas, son usados para proveer carga
asncrona de informacin para una Activity o fragmento fuera del hilo principal,
monitorean la fuente de los datos y entregan nuevos resultados cuando el
contenido cambia y cuando esto sucede se reconectan automticamente al
ltimo Loader de Cursor para obtener la nueva informacin.
Android provee una implementacin por default de un Loader para lidiar con
conexiones a bases de datos SQLite, esta implementacin es la clase
CursorLoader. La interfaz LoaderManager.LoaderCallbacks tiene tres mtodos
que responden al administrador de Loaders (LoaderManager), estos mtodos
son:
138
Gua de Android Certified Professional
17.2. AsyncTask
Uso de la clase AsyncTask para la ejecucin de tareas bloqueantes. Definicin
de los mtodos de la clase AsyncTask y su correcta implementacin.
139
Gua de Android Certified Professional
Para evitar el bloqueo del hilo principal al realizar tareas bloqueantes y que no
son instantneas, como cargar datos de la red, estas deben realizarse en hilos
separados. Llamados hilos en segundo plano (Background o worker threads).
140
Gua de Android Certified Professional
141
Gua de Android Certified Professional
142
Gua de Android Certified Professional
Facebook posee un SDK oficial para Android que ayuda en gran medida en la
integracin de Facebook a aplicaciones en desarrollo.
https://developers.facebook.com/docs/android
Registro de la aplicacin.
143
Gua de Android Certified Professional
https://developers.facebook.com/apps/
Se muestra una pequea gua para poder implementar la aplicacin y una serie
de datos que se deben proporcionar como el nombre del paquete de la aplicacin
y el nombre de la actividad principal.
144
Gua de Android Certified Professional
Otro de los datos que solicita la aplicacin para poder ser registrada es un Key
Hashes, esta clave se puede obtener mediante el comando
Para poder realizar pruebas con la aplicacin se puede hacerse uso del keystore
proporcionado por el SDK de Android.
145
Gua de Android Certified Professional
146
Gua de Android Certified Professional
Uno de los datos que se deben tomar en cuenta para su posterior uso es el App
ID, este elemento se debe proporcionar a la aplicacin en Android y se encuentra
dentro de la seccin Dashboard.
147
Gua de Android Certified Professional
148
Gua de Android Certified Professional
149
Gua de Android Certified Professional
Crear un objeto SharedDialog para que el usuario pueda iniciar sesin dentro de
la aplicacin. Este SharedDialog pertenece al SDK de Facebook y solicita como
parmetros los objetos FacebookCallback y CallbackManager mencionados
anteriormente.
150
Gua de Android Certified Professional
151
Gua de Android Certified Professional
18.2. Twitter
Procedimiento a seguir para la integracin de la red social Twitter en un proyecto
Android. Implementacin para la obtencin de los datos de un perfil de usuario
y la publicacin de un tweet.
Twitter posee una API REST mediante la cual se puede interactuar con l,
tambin pone ofrece un listado de bibliotecas para diversos lenguajes para poder
utilizar el api de una manera sencilla, a la fecha, Julio 2015, el api se encuentra
en la versin 1.1.
Twitter utiliza OAuth para proveer acceso al api a las aplicaciones externas, este
mecanismo de autenticacin nos permite interactuar sin la necesidad de
comprometer los datos del usuario como el usuario y clave.
Registro de la aplicacin.
152
Gua de Android Certified Professional
153
Gua de Android Certified Professional
154
Gua de Android Certified Professional
Definir como constantes el Cosumer Key, Consumer Secret y Callback URL para
poder utilizarlos en la aplicacin.
155
Gua de Android Certified Professional
La publicacin de un Tweet.
156
Gua de Android Certified Professional
157
Gua de Android Certified Professional
19. Conectividad
19.1. Conexin Http
En este capitulo se ejemplifica el uso de HttpURLConnection para la conexin a
Internet y la obtencin de informacin para su posterior visualizacin en una
aplicacin.
158
Gua de Android Certified Professional
19.2. Wifi
Ejemplo y conceptos relacionados con la administracin y acceso a la red a
travs de Wi-Fi en un dispositivo. Permisos especiales para el acceso a la
administracin y uso del dispositivo Wi-Fi.
159
Gua de Android Certified Professional
19.3. Bluetooth
En esta seccin se describen los elementos a tomar en cuenta para el uso de la
red Bluetooth. Implementacin de una conexin cliente servidor para el
intercambio de informacin entre dispositivos vinculados por Bluetooth.
La plataforma Android incluye soporte para la pila de red Bluetooth, que permite
a un dispositivo intercambiar datos con otros dispositivos a travs de Bluetooth.
Usando la API de Bluetooth, se puede hacer, entre otras cosas, lo siguiente:
160
Gua de Android Certified Professional
161
Gua de Android Certified Professional
162
Gua de Android Certified Professional
163
Gua de Android Certified Professional
Un archivo con extensin .wtc, es el archivo que contiene datos para que la
biblioteca wikitudesdk.jar pueda reconocer una imagen. Este archivo se obtiene en
la pgina de Wikitude. http://developer.wikitude.com/tools/target-manager
164
Gua de Android Certified Professional
Una vez incorporada la imagen, dar clic en el botn Generate Target Collection.
Por ingresar al almacn de targets y descargar el archivo .wtc para versin del SDK
correspondiente.
165
Gua de Android Certified Professional
Target: es una imagen objetivo de la cual se extraen datos que utiliza el rastreador
o Tracker para reconocer una imagen.
Para incluir el archivo .wtc al proyecto en Android se puede tomar como base alguna
de las carpetas de ejemplo que vienen incluidas en el SDK de Wikitude. Esta carpeta
se aadir a la carpeta assets del proyecto.
Para poder utiliar Wikitude en un proyecto Android, se debe descargar el SDK desde
la pgina oficial http://www.wikitude.com/download e incorporar el archivo .jar a la
aplicacin.
166
Gua de Android Certified Professional
La actividad que implemente Wikitude deber tener una configuracin para los
cambios de orientacin y tamao en la pantalla.
167
Gua de Android Certified Professional
168
Gua de Android Certified Professional
Es importante indicar, que todos los eventos del ciclo de vida de la Activity, sern
tambin ejecutados por el objeto architectView, por lo que hay que comunicarle al
architectView cada vez que la actividad llame a un callback del ciclo de vida.
169
Gua de Android Certified Professional
170
Gua de Android Certified Professional
Para crear un servicio, se debe crear una subclase de Service (o una de sus
subclases existentes). Es necesario reemplazar algunos de los mtodos de
devolucin de llamada que se encargan de los aspectos clave del ciclo de
vida del servicio y proporcionar un mecanismo para que los componentes se
unan al servicio, si es necesario. Los mtodos de devolucin de llamada ms
importantes que debe anular son:
onCreate( ). El sistema llama a este mtodo cuando se crea por primera vez
el servicio, en este mtodo se realizan procedimientos de configuracin de
una sola vez (antes de que se llama a cualquiera otro mtodo como
onStartCommand () o onBind ()). Si el servicio ya est en ejecucin, este
mtodo no es llamado por el Android.
171
Gua de Android Certified Professional
Como las actividades y otros componentes, todos los servicios deben ser
definidos en el archivo AndroidManifest.xml. Esta declaracin se hace a
travs de la etiqueta <service> y solicita como atributo el nombre del servicio
a definir.
172
Gua de Android Certified Professional
173
Gua de Android Certified Professional
174
Gua de Android Certified Professional
175
Gua de Android Certified Professional
176
Gua de Android Certified Professional
177
Gua de Android Certified Professional
178
Gua de Android Certified Professional
179
Gua de Android Certified Professional
Para asegurar que el archivo a publicar sea la ltima compilacin del proyecto,
es recomendable realizar una reconstruccin completa del mismo, esto desde el
men Build > Rebuild Project, de Android Studio.
Dentro del mismo men Build se encuentra la opcin Generate Signed APK.
Esta opcin permite crear el archivo compilado y firmado con extensin .apk que
es utilizado para publicar la aplicacin.
180
Gua de Android Certified Professional
Los datos que se deben tomar en cuenta al momento de crear un nuevo almacn
de claves son:
181
Gua de Android Certified Professional
https://play.google.com/apps/publish/
182
Gua de Android Certified Professional
https://support.google.com/googleplay/android-
developer/answer/113469?hl=es&ref_topic=2365624
https://support.google.com/googleplay/android-developer/answer/1078870
183
Gua de Android Certified Professional
Los pasos a seguir para poder subir una aplicacin a Google Play pueden
ser resumidos a:
184
Gua de Android Certified Professional
185
Gua de Android Certified Professional
186
Gua de Android Certified Professional
187
Gua de Android Certified Professional
188
Gua de Android Certified Professional
189
Gua de Android Certified Professional
Como ltimo paso, dar clic en el botn "Ready to publish" -> "Publish this app".
Es importante mencionar que esta operacin NO se puede deshacer.
190
Gua de Android Certified Professional
191
Gua de Android Certified Professional
1. Aplicaciones de pago:
Esta es la opcin clsica para ganar dinero con las aplicaciones.
A los usuarios no les gusta pagar y cada da ms empresas prefieren
sustituir este opcin por otra de las disponibles para monetizar la
aplicaciones.
Para determinados segmentos puede ser la opcin ms adecuada.
192
Gua de Android Certified Professional
193
Gua de Android Certified Professional
194
Gua de Android Certified Professional
195
Gua de Android Certified Professional
196
Gua de Android Certified Professional
197
Gua de Android Certified Professional
Seleccione su aplicacin.
Banner:
198
Gua de Android Certified Professional
Intersticial:
199
Gua de Android Certified Professional
200
Gua de Android Certified Professional
201
Gua de Android Certified Professional
Se aadir al XML
202
Gua de Android Certified Professional
203
Gua de Android Certified Professional
204
Gua de Android Certified Professional
205