El gran libro de Android
Novena edición, 2022
© 2022 Jesús Tomás Gironés y Jaime Lloret Mauri
© 2022 MARCOMBO, S.L.
www.marcombo.com
Diseño de la cubierta: ENEDENÚ DISEÑO GRÁFICO
Corrección: Raquel Sayas Lloris
Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra.
ISBN: 978-84-267-3366-5
eISBN: 978-84-267-3465-5
DL: B 4225-2022
Producción del ePub: booqlab
Para Bea, con amor y gratitud.
Mis agradecimientos a los alumnos y lectores que con sus sugerencias y correcciones han ayudado a mejorar este libro.
Lista de siglas y acrónimos
¿Cómo leer este libro?
CAPÍTULO 1. Visión general y entorno de desarrollo
1.1. ¿Qué hace que Android sea especial?
1.2. Los orígenes
1.3. Comparativa con otras plataformas
1.4. Arquitectura de Android
1.4.1. El núcleo Linux
1.4.2. Runtime de Android
1.4.3. Librerías nativas
1.4.4. Entorno de aplicación
1.4.5. Aplicaciones
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.1. Las primeras versiones
1.6.2. Cupcake
1.6.3. Donut
1.6.4. Éclair
1.6.5. Froyo
1.6.6. Gingerbread
1.6.7. Honeycomb
1.6.8. Ice Cream Sandwich
1.6.9. Jelly Bean
1.6.10. KitKat
1.6.11. Lollipop
1.6.12. Marshmallow
1.6.13. Android Nougat
1.6.14. Android Oreo
1.6.15. Android Pie
1.6.16. Android 10
1.6.17. Android 11
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. Ejecución del programa
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.1. Vista (View)
1.10.2. Layout
1.10.3. Actividad ( Activity )
1.10.4. Fragmentos ( Fragment )
1.10.5. Servicio ( Service )
1.10.6. Intención ( Intent )
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. Depurar
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
1.13.1. La clase Lugar
1.13.2. Tipos enumerados
1.13.3. Las colecciones I
1.13.4. Las colecciones II
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
2.3. Layouts
2.3.1. Uso de ConstraitLayout
Uso de escritura derecha a izquierda
Posicionamiento Circular
2.4. Una aplicación de ejemplo: Asteroides
2.5. La aplicación Mis Lugares
2.6. Recursos alternativos
2.7. Tipos de recursos y recursos del sistema
2.7.1. Tipos de recursos
2.7.2. Acceso a los recursos
2.7.3. Recursos del sistema
2.8. Estilos y temas
2.8.1. Los estilos
Heredar de un estilo propio
2.8.2. Los temas
2.9. Uso práctico de vistas y layouts
2.9.1. Acceder y modificar propiedades de las vistas por código
2.10. Uso de tabs (pestañas)
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.1. La clase Application
3.4.2. Uso del patrón Singleton
3.5. Uso de la arquitectura Clean en Mis Lugares
Capa de Modelo
Capa de Datos
Capa de Casos de Uso
Capa de Presentación
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.7. Creación y uso de iconos
3.8. Añadiendo preferencias de usuario
3.8.1. Organizando preferencias
3.8.2. Cómo se almacenan las preferencias de usuario
3.8.3. Accediendo a los valores de las preferencias
3.8.4. Verificar valores correctos
3.9. Añadiendo una lista de puntaciones en Asteroides
3.10. Creación de listas con RecyclerView
Personalizar los datos a mostrar
Distribuir los elementos
3.11. Las intenciones
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.1.1. Canvas
4.1.2. Paint
Definición de colores
4.1.3. Path
4.1.4. Drawable
BitmapDrawable
VectorDrawable
GradientDrawable
TransitionDrawable
ShapeDrawable
AnimationDrawable
4.2. Creación de una vista en un fichero independiente
4.3. Creando la actividad principal de Asteroides
4.3.1. La clase Gráfico
4.3.2. La clase VistaJuego
4.3.3. Introduciendo la nave en VistaJuego
4.4. Representación de gráficos vectoriales en Asteroides
4.5. Animaciones
4.5.1. Animaciones de vistas
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.2.2. Manejadores de eventos
5.3. El teclado
5.4. La pantalla táctil
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. Los sensores
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
Читать дальше