Читать книгу El gran libro de Android 9ed - Jesus Tomás Gironés - Страница 6
Índice general
ОглавлениеCAPÍTULO 1. Visión general y entorno de desarrollo
1.1. ¿Qué hace que Android sea especial?
1.3. Comparativa con otras plataformas
1.5. Instalación del entorno de desarrollo
1.5.1. Instalación de la máquina virtual Java
1.5.2. Instalación de Android Studio
1.5.3. Creación de un dispositivo virtual Android (AVD)
1.6. Las versiones de Android y niveles de API
1.6.18. Elección de la plataforma de desarrollo
1.6.19. Las librerías de compatibilidad (support library)
1.7. Creación de un primer proyecto
1.8.1. Ejecución en el emulador
1.8.2. Ejecución en un terminal real
1.9. Ficheros y carpetas de un proyecto Android
1.10. Componentes de una aplicación
1.10.7. Receptor de anuncios (Broadcast Receiver)
1.10.8. Proveedores de contenido (Content Provider)
1.11. Documentación y aplicaciones de ejemplo
1.11.1. Dónde encontrar documentación
1.11.2. Repositorio de ejemplos en GitHub
1.12.1. Depurar con el entorno de desarrollo
1.12.2. Depurar con mensajes Log
1.13. Introducción Java/Kotlin y aplicación Mis Lugares
CAPÍTULO 2. Diseño de la interfaz de usuario: vistas y layouts
2.1. Creación de una interfaz de usuario por código
2.2. Creación de una interfaz de usuario usando XML
2.2.1. Edición visual de las vistas
2.2.2. Los atributos de las vistas
Uso de escritura derecha a izquierda
2.4. Una aplicación de ejemplo: Asteroides
2.5. La aplicación Mis Lugares
2.7. Tipos de recursos y recursos del sistema
2.9. Uso práctico de vistas y layouts
2.9.1. Acceder y modificar propiedades de las vistas por código
2.10.1. Evento onClick en un Fragment
Los fragments son parte del mismo proceso
Los fragments son independientes
CAPÍTULO 3. Actividades e intenciones
3.1. Creación de nuevas actividades
3.2. Comunicación entre actividades
3.3. La barra de acciones (Toolbar)
3.4. Acceder a objetos globales de la aplicación
3.4.2. Uso del patrón Singleton
3.5. Uso de la arquitectura Clean en Mis Lugares
Organizando las clases en paquetes
3.6. Creando actividades en Mis Lugares
3.6.1. Creando la actividad VistaLugarActivity
3.6.2. Creando la actividad EdicionLugarActivity
3.8. Añadiendo preferencias de usuario
3.8.1. Organizando preferencias<opcional>
3.8.2. Cómo se almacenan las preferencias de usuario<opcional>
3.8.3. Accediendo a los valores de las preferencias
3.8.4. Verificar valores correctos<opcional>
3.9. Añadiendo una lista de puntaciones en Asteroides
3.10. Creación de listas con RecyclerView
Personalizar los datos a mostrar
3.11.1. Añadiendo fotografías en Mis Lugares
CAPÍTULO 4. Gráficos en Android
4.1. Clases para gráficos en Android
4.2. Creación de una vista en un fichero independiente
4.3. Creando la actividad principal de Asteroides
4.3.3. Introduciendo la nave en VistaJuego
4.4. Representación de gráficos vectoriales en Asteroides
4.5.2. Animaciones de propiedades
CAPÍTULO 5. Hilos de ejecución, pantalla táctil y sensores
5.1. Uso de hilos de ejecución (threads)
5.1.1. Introducción a los procesos e hilos de ejecución
5.1.2. Hilos de ejecución en Android
5.1.3. Creación de nuevos hilos con la clase Thread
5.1.4. Introduciendo movimiento en Asteroides
5.1.5. Ejecutar una tarea en un nuevo hilo con AsyncTask
5.1.6. Mostrar un cuadro de progreso en un AsyncTask
5.1.7. El método get() de AsyncTask
5.2. Manejando eventos de usuario
5.2.1. Escuchador de eventos de la clase View
5.4.1. Manejo de la pantalla táctil multi-touch
5.4.2. Manejo de la nave con la pantalla táctil
5.5.1. Un programa que muestra los sensores disponibles y sus valores en tiempo real
5.5.2. Utilización de los sensores en Asteroides
5.5.3. Restricciones al uso de sensores en segundo plano en Android 9
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.4.1. Reproducción de audio con MediaPlayer
6.5. Un reproductor multimedia paso a paso
6.6. Introduciendo efectos de audio con SoundPool
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.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.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.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.4. Las notificaciones de la barra de estado
8.4.1. Configurando tipos de avisos en las notificaciones
8.4.2. Servicios en primer plano
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.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.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
El modelo de datos
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.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.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.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.1. Alternativas en los servicios web
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