5.6. Introduciendo un misil en Asteroides
CAPÍTULO 6. Multimedia y ciclo de vida de una actividad
6.1. Ciclo de vida de una actividad
6.1.1. ¿Qué proceso se elimina?
6.1.2. Guardando el estado de una actividad
6.2. Utilizando multimedia en Android
6.3. La vista VideoView
6.4. La clase MediaPlayer
6.4.1. Reproducción de audio con MediaPlayer
6.5. Un reproductor multimedia paso a paso
6.6. Introduciendo efectos de audio con SoundPool
6.7. Grabación de audio
CAPÍTULO 7. Seguridad y posicionamiento
7.1. Los tres pilares de la seguridad en Android
7.1.1. Ejecución en procesos independientes Linux
7.1.2. Firma digital de los apks
7.1.3. El esquema de permisos en Android
7.1.4. Permisos desde Android 6 Marshmallow
7.1.5. Permisos definidos por el programador en Android
7.1.6. Cambios relacionados con la privacidad en Android 9
7.1.7. Cambios relacionados con la privacidad en Android 10
7.2. Localización
7.2.1. Sistemas de geolocalización en dispositivos móviles
7.2.2. La API de localización de Android
7.2.3. Emulación del GPS con Android Studio
7.2.4. Estrategias para escoger un proveedor de localización
Usar siempre el mismo tipo de proveedor
El mejor proveedor según un determinado criterio
Usar los dos proveedores en paralelo
7.2.5. Límites de ubicación en segundo plano
7.3. Google Maps
7.3.1. Obtención de una clave Google Maps
CAPÍTULO 8. Servicios, notificaciones y receptores de anuncios
8.1. Introducción a los servicios en Android
8.1.1. Ciclo de vida de un servicio
8.1.2. Permisos
8.2. Un servicio para ejecución en segundo plano
8.2.1. El método onStartCommand()
8.3. Un servicio en un nuevo hilo con IntentService
8.3.1. La clase IntentService
8.4. Las notificaciones de la barra de estado
8.4.1. Configurando tipos de avisos en las notificaciones
Asociar un sonido
Añadiendo vibración
Añadiendo parpadeo de LED
8.4.2. Servicios en primer plano
8.5. Receptores de anuncios
8.5.1. Receptor de anuncios registrado en AndroidManifest.xml
8.5.2. Receptor de anuncios registrado por código
8.5.3. Arrancar una actividad en una nueva tarea desde un receptor de anuncio
8.5.4. Arrancar un servicio tras cargar el sistema operativo
8.6. Un receptor de anuncios como mecanismo de comunicación
8.6.1. Receptores de anuncios desde Android 8
8.6.2. Anuncios broadcast permanentes
8.7. Un servicio como mecanismo de comunicación entre aplicaciones
8.7.1. Crear la interfaz en AIDL
8.7.2. Implementar la interfaz
8.7.3. Publicar la interfaz en un servicio
8.7.4. Llamar a una interfaz remota
CAPÍTULO 9. Almacenamiento de datos
9.1. Alternativas para guardar datos permanentemente en Android
9.2. Añadiendo puntuaciones en Asteroides
9.2.1. Fragmentando los asteroides
9.3. Preferencias
9.4. Accediendo a ficheros
9.4.1. Sistema interno de ficheros
9.4.2. Sistema de almacenamiento externo
Verificando acceso a la memoria externa
Almacenando ficheros específicos de tu aplicación en el almacenamiento externo
Almacenando ficheros compartidos en el almacenamiento externo 449
Almacenamiento externo con varias unidades
9.4.3. Acceder a un fichero de los recursos
9.5. Trabajando con XML
9.5.1. Procesando XML con SAX
9.5.2. Procesando XML con DOM
9.6. Trabajando con JSON
9.6.1. Procesando JSON con la librería Gson
9.6.2. Procesando JSON con la librería org.json
9.7. Bases de datos con SQLite
9.7.1. Los métodos query() y rawQuery()
9.7.2. Uso de bases de datos en Mis Lugares
9.7.3. Adaptadores para bases de datos
Operaciones con bases de datos en Mis Lugares
9.7.4. Bases de datos relacionales
9.7.5. El método onUpgrade de la clase SQLiteOpenHelper
9.8. Content Provider
9.8.1. Conceptos básicos
El modelo de datos
Las URI
9.8.2. Acceder a la información de un ContentProvider
Leer información de un ContentProvider
Escribir información en un ContentProvider
Borrar y modificar elementos de un ContentProvider
9.8.3. Creación de un ContentProvider
Definir la estructura de almacenamiento del ContentProvider
Extendiendo la clase ContentProvider
Declarar el ContentProvider en AndroidManifest.xml
9.8.4. Acceso a PuntuacionesProvider desde Asteroides
CAPÍTULO 10. Internet: sockets , HTTP y servicios web
10.1. Comunicaciones en Internet mediante sockets
10.1.1. La arquitectura cliente/servidor
10.1.2. ¿Qué es un socket ?
Sockets stream (TCP)
Sockets datagram (UDP)
10.1.3. Un ejemplo de un cliente/servidor de ECHO
10.1.4. Un servidor por sockets para las puntuaciones
10.2. La web y el protocolo HTTP
10.2.1. El protocolo HTTP
10.2.2. Versión 1.0 del protocolo HTTP
10.2.3. Utilizando HTTP desde Android
10.2.4. Uso de HTTP con AsyncTask
10.3. La librería Volley
10.3.1. Descargar un String con Volley
10.3.2. Paso de parámetros con el método POST
10.3.3. Descargar imágenes con Volley
10.4. Servicios web
10.4.1. Alternativas en los servicios web
Servicios web basados en SOAP
Servicios web basados en REST
10.4.2. Acceso a servicios web de terceros
10.4.3. Un servicio web con Apache, PHP y MySQL
Utilizando el servicio web PHP desde Asteroides
Creación de un servicio web en un servidor de hosting
Utilizando AsyncTask de forma síncrona
10.4.4. Comparativa sockets /servicios web
ANEXO A. Diálogos de fecha y hora
Clases para trabajar con fechas en Java
ANEXO B. Fragments
ANEXO C. Referencia Java
ANEXO D. Referencia de la clase View y sus descendientes
ANEXO E. Sufijos utilizados en recursos alternativos
Este libro quiere ser una guía para aquellos lectores que pretendan introducirse en la programación de Android. Se ha estructurado en 10 capítulos que abordan aspectos específicos del desarrollo de aplicaciones. Resulta conveniente realizar una lectura secuencial de estos capítulos, dado que muchos de los conceptos que se abordan se comprenderán mejor si se han leído los capítulos anteriores. Además, a lo largo del libro se desarrollan dos proyectos de ejemplo: el mítico juego Asteroides y la aplicación Mis Lugares. Para que muchos de los ejercicios funcionen correctamente, resulta imprescindible realizar los anteriores. Si el lector está interesado en un texto que aborde aspectos específicos de la programación en Android, le recomendamos otros libros de esta misma colección: El gran libro de Android Avanzado, Firebase: Trabajando en la nube , Plataformas Android: Wear, TV, Auto y Google Play Games y Android Things y Visión Artificial . Todos publicados en esta misma editorial.
El libro que tienes entre las manos no ha sido concebido solo para ser leído. Es más bien una guía estructurada que te irá proponiendo una serie de ejercicios, actividades, vídeos explicativos, test de autoevaluación, etc. Todo este material y muchos más recursos adicionales están disponibles en la web www.androidcurso.com. En ella se publicarán las novedades, erratas e información complementaria relativas a este libro. Por lo tanto, resulta imprescindible para sacarle partido a este libro un ordenador con el SDK de Android instalado para hacer los ejercicios y acceso a Internet para el material en línea.
Читать дальше