La plataforma Android 1. Presentación 13 2. Origen 14 3. Google Play 15 3.1. Creación de una cuenta de desarrollador 16 3.2 Publicación de una aplicación 16 3.3. Seguimiento y actualización de una aplicación 18 El entorno de desarrollo 1. Instalación del entorno Java 21 2. SDK Android 22 2.1 Presentación 22 2.2 Instalación 23 2.3 Utilización 26 3. Eclipse 27 3.1 Presentación 27 3.2 Instalación 27 3.3 Configuración 27 4. Plugin ADT 29 4.1 Presentación 29 4.2 Instalación 29 4.3 Configuración 32 5. Emulador 33 5.1 Presentación 33 1/12
5.2 Creación 33 5.3 Configuración 37 5.4 Creación de un emulador por línea de comandos 38 Principios de programación 1. Principios generales 39 1.1 Dalvik 40 1.2 Arquitectura Android 40 1.3 NDK (Native Development Kit) 41 1.4 APK (Android Package) 41 1.4.1 Exportación y certificación de una aplicación 42 2. Componentes Android 45 2.1 Activity (Actividad) 45 2.2 Fragment (Fragmento) 46 2.3 Servicio (Service) 47 2.4 Broadcast receiver (Receptor de eventos) 47 2.5 Content provider (Proveedor de contenido) 48 2.6 Intent (Intención) 48 2.6.1 Intent-filter (Filtro de intenciones) 49 2.6.2 pendingintent 50 3. La clase Application 50 4. Ciclo de vida de una actividad 51 4.1 Estado de una actividad 51 4.2 Back stack 52 4.3 Ciclo de vida 53 5. Contexto de una aplicación 55 6. Manifiesto 55 2/12
6.1 Instalación de la aplicación 57 6.2 Descripción de su aplicación 57 7. Permissions (permisos) 58 7.1 Utilizar una permission 58 7.2 Declarar sus permissions 59 Mi primera aplicación: HelloAndroid 1. Creación del proyecto 61 2. Arquitectura del proyecto 67 3. Explicaciones 69 3.1 Android Manifest 69 3.2 Resources (recursos) 70 3.3 Archivo generado 75 3.4 Archivo fuente 77 4. Resultado 78 Depuración y gestión de errores 1. Principios 79 2. DDMS (Dalvik Debug Monitor Server) 79 3. Logs 81 3.1 Logcat 81 3.2 Utilizar los logs 82 3/12
4. Android Lint 83 5. ADB (Android Debug Bridge) 85 6. Depuración paso a paso 87 7. Interacción con el emulador 87 7.1 Simular llamadas 88 7.2 Simular mensajes 89 7.3 Simular una posición GPS 89 7.4 Realizar capturas de pantalla 89 8. Pruebas en el teléfono 90 8.1 Utilizar su teléfono 90 8.2 Opciones de desarrollo 91 9. Pruebas unitarias 92 10. Pruebas de interfaces 95 10.1 Monkey 95 10.2 Robotium 96 Creación de interfaces sencillas 1. Principios 97 1.1 Declarar identificadores 98 1.2 Combinar con actividades 99 1.3 Especificar el tamaño de los elementos 100 2. Layouts 101 2.1 FrameLayout 101 4/12
2.2 LinearLayout 102 2.2.1 Orientación 102 2.2.2 Posicionamiento de un elemento 102 2.2.3 Peso de un elemento 104 2.3 TableLayout 106 2.4 RelativeLayout 108 2.4.1 Posicionamiento relativo al contenedor 108 2.4.2 Posicionamiento relativo a otros elementos 108 2.5 GridLayout 112 3. Recursos 113 3.1 Drawable 114 3.1.1 Gestión de diferentes resoluciones 114 3.2 Values 115 3.2.1 Cadenas de caracteres 115 3.2.2 Tablas 118 3.2.3 Dimensiones 119 3.2.4 Colores 120 4. Elementos imprescindibles 120 4.1 Etiqueta de texto 120 4.2 Campo de edición de texto 121 4.3 Botón 122 4.4 Checkbox 122 4.5 Imagen 123 4.6 Gestión del clic 123 5. ActionBar 125 5.1 Principios 125 5.2 Separar la barra de acciones en dos 130 6. Menús 131 Comunicaciones entre vistas/aplicaciones 5/12
1. Introducción 133 2. Navegación entre pantallas 133 3. Paso de datos entre pantallas 134 3.1 Obtener un resultado 138 3.2 Parcelable 140 4. Llamar a otras aplicaciones 145 5. Buscar una aplicación que permita ejecutar una acción 147 Personalización y gestión de eventos 1. Personalización 149 1.1 Temas 149 1.1.1 Definición 149 1.1.2 Implementación 151 1.2 Estado de los componentes 152 1.2.1 Estados 152 1.2.2 Implementación 153 1.3 Gradiente 154 1.4 Fuentes 156 1.5 Iconos 159 1.5.1 Icono del Launcher 159 1.5.2 Iconos de la ActionBar 160 2. Animaciones 160 2.1 Tween Animation 160 2.2 Frame Animation 163 2.3 Cambio de vista 164 6/12
3. Internacionalización 166 4. Gestión de eventos 167 4.1 Pulsación de teclas 167 4.2 Supervisión de la entrada 168 5. Notificationes 171 5.1 Apariencia 173 5.2 Implementación 173 5.2.1 Crear una notificación 173 5.2.2 Personalizar una notificación 176 5.3 Notificaciones en Jelly Bean 179 6. Gestión de la rotación 182 6.1 Gestión del modo apaisado 183 6.1.1 Ejemplo 184 6.2 Bloquear la vista en un solo modo 187 6.3 Gestionar manualmente la rotación de pantalla 189 7. Creación de vistas personalizadas 191 Creación de interfaces avanzadas 1. Listas 195 1.1 Creación de una lista 196 1.1.1 ListActivity 196 1.1.2 ListView 198 1.1.3 Adapter y lista personalizada 199 2. Fragment 206 2.1 Ciclo de vida de un fragment 207 2.2 Ejemplo 207 7/12
3. Paso a modo de pantalla completa 215 4. Interfaces dinámicas 216 5. Creación de pestañas 218 5.1 Principio 218 5.2 Implementación de pestañas scrollables 219 6. Popups 222 6.1 Toasts 222 6.2 AlertDialog 223 6.3 ProgressDialog 225 6.3.1 Implementación 225 6.4 Cuadro de diálogo personalizado 227 7. Preferencias 229 8. WebView 232 8.1 Ejemplo de una página web remota 232 8.2 Ajustes del WebView 233 8.3 Gestión del botón retorno 233 8.4 Uso de Android nativo en JavaScript 234 9. Buenas prácticas 236 9.1 Mantenerse independiente de la resolución de pantalla 236 9.2 Mantenerse independiente del tamaño de pantalla 236 9.3 Ser independiente de la versión de Android utilizada 237 9.4 Ser eficiente 237 10. Optimizar sus interfaces 237 10.1 Inspeccionar la jerarquía de sus interfaces 238 10.2 Fusionar layouts 240 10.3 Incluir vistas 240 8/12
10.4 Carga perezosa (Lazy Loading) de layouts 241 Persistencia de datos 1. Introducción 245 2. SharedPreferences 245 3. Almacenamiento interno 248 3.1 Escritura de un archivo 248 3.2 Lectura de un archivo 249 3.2.1 Utilización de archivos en caché 250 4. Almacenamiento externo 251 4.1 Comprobar la disponibilidad del almacenamiento externo 251 4.2 Acceder a los archivos de una aplicación 253 4.3 Acceder a archivos compartidos 254 5. Almacenamiento en base de datos 254 Gestión y compartición de datos 1. ContentProvider 265 1.1 Crear un ContentProvider 267 1.2 Utilizar un ContentProvider 273 2. Compartir sus datos con otras aplicaciones 275 3. Recibir datos desde otras aplicaciones 278 4. Recuperar datos almacenados en línea 281 9/12
4.1 Conectarse a Internet a través del dispositivo 281 4.2 Gestión del cambio de conectividad 282 4.3 Conexión a una dirección remota 283 4.4 XML Parsing 285 4.5 Parsing JSON 287 Tratamiento en tareas en segundo plano 1. Introducción 291 2. AsyncTask 293 3. Thread y Handler 298 4. Servicios 301 4.1 Crear y utilizar un servicio 302 4.2 Asociar un servicio a una actividad 304 5. Broadcast Receiver 306 5.1 Recibir un evento 306 5.2 Enviar un evento 309 6. Widget 309 6.1 Presentación 309 6.2 Implementación 310 6.3 Jelly Bean 318 7. Alarmas 318 7.1 Presentación 318 7.2 Implementación 318 Google Maps y geolocalización 10/12
1. Requisitos 321 1.1 Instalación de las APIs de Google 321 1.2 Obtención de su clave de Google Maps 322 1.2.1 Generación de su firma MD5 323 1.2.2 Obtención de su clave 325 2. Integración de un Google Map 327 2.1 Creación de la vista Google Map 327 2.2 Añadir opciones al Google Map 330 2.2.1 Interacción con el usuario 331 2.2.2 Añadir botones de zoom 331 2.2.3 Definir el nivel de zoom 332 2.2.4 Visualización en modo satélite 334 2.2.5 Gestión del doble clic 335 3. Localización 338 4. Posición del usuario 342 5. Colocar un marcador en el mapa 343 6. Conversión posición/dirección 347 Telefonía 1. Principios 349 2. Gestión de llamadas 350 2.1 Realizar una llamada 350 2.2 Obtener información sobre las propiedades del teléfono 351 2.3 Gestionar los dispositivos entrantes 352 11/12
3. Gestión de mensajes 353 3.1 Envío de SMS 353 3.2 Recepción de mensajes 356 Acceso al hardware 1. Cámara 359 1.1 Utilizar la aplicación Cámara del dispositivo 359 1.2 Controlar la cámara 362 1.3 Grabar un vídeo 362 2. Sensores en Android 364 2.1 Principio 364 2.2 Acelerómetro 365 2.3 Giroscopio 369 2.4 Sensor magnético 370 3. Bluetooth 371 3.1 Activar el Bluetooth 372 3.2 Permitir a otros dispositivos conectarse 374 4. NFC 377 4.1 Android Beam 379 5. TTS (Text To Speech) 380 índice 383 12/12