CAPÍTULO 1. Visión general y entorno de desarrollo
1.1. ¿Qué hace Android 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 Eclipse
1.5.3. Instalar Android SDK de Google
1.5.4. Instalación del plug-in Android para Eclipse (ADT)
1.6. Creación de un primer programa
1.6.1. Las plataformas de desarrollo
1.6.1.1. Android 1.0 Nivel de API 1 (septiembre 2008)
1.6.1.2. Android 1.1 Nivel de API 2 (febrero 2009)
1.6.1.3. Android 1.5 Nivel de API 3 (abril 2009, Cupcake)
1.6.1.4. Android 1.6 Nivel de API 4 (diciembre 2009, Donut)
1.6.1.5. Android 2.0 Nivel de API 5 (octubre 2009, Éclair)
1.6.1.6. Android 2.1 Nivel de API 7 (enero 2010, Éclair)
1.6.1.7. Android 2.2 Nivel de API 8 (mayo 2010, Froyo)
1.6.1.8. Android 2.3 Nivel de API 9 (diciembre 2010, Gingerbread)
1.6.1.9. Android 3.0 Nivel de API 11 (febrero 2011, Honeycomb)
1.6.2. Elección de la plataforma de desarrollo
1.6.3. Creación del proyecto
1.7. Ejecución del programa
1.7.1. Ejecución en el emulador
1.7.2. Ejecución en un terminal
1.8. Elementos de un proyecto Android
1.9. Aspectos clave en Android
1.9.1. Vista ( View )
1.9.2. Actividad ( Activity )
1.9.3. Intento ( Intent )
1.9.4. Servicio ( Service )
1.9.5. Proveedores de Contenido ( Content Provider )
1.10. Documentación y ApiDemos
1.10.1. Donde encontrar documentación
1.10.2. La aplicación ApiDemos
CAPÍTULO 2. Diseño de la interfaz de usuario
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. Layouts
2.3. Una aplicación de ejemplo: Asteroides
2.3.1. Usando recursos alternativos
2.4. Implementación de una caja Acerca de
2.4.1. Aplicando un tema
2.5. Añadiendo un menú
2.5.1. Los estilos
2.5.2. Aplicando temas
2.6. Añadiendo preferencias
2.6.1. Organizando preferencias
2.6.2. Como se almacenan los valores de las preferencias
2.6.3. Accediendo a los valores de las preferencias
2.7. Depurar
2.7.1. Depurar con Eclipse
2.7.2. Depurar con mensajes Log
CAPÍTULO 3. Gráficos en Android
3.1. Elementos gráficos
3.1.1. Canvas
3.1.2. Paint
3.1.2.1. Definición de colores
3.1.3. Path
3.1.4. Drawable
3.1.4.1. BitmapDrawable
3.1.4.2. GradienDrawable
3.1.4.3. TransitionDrawable
3.1.4.4. ShapeDrawable
3.1.4.5. AnimationDrawable
3.2. Creando la actividad principal de Asteroides
3.2.1. La clase gráfico
3.3. Representación de gráficos vectoriales en Asteroides
3.4. Introduciendo el movimiento en Asteroides
CAPÍTULO 4. Entradas en Android: teclado, pantalla táctil y sensores
4.1. Manejando eventos de usuario
4.1.1. Escuchador de eventos
4.1.2. Manejadores de eventos
4.2. El teclado
4.3. La pantalla táctil
4.4. Gestures
4.4.1. Creación de una librería de gestures
4.4.2. Añadiendo la librería de gestures a nuestra aplicación
4.4.3. Añadiendo gestures a Asteroides
4.5. Los sensores
4.5.1. Listar los sensores del dispositivo
4.5.2. Acceso a los datos del sensor
4.5.2.1. Obtención de datos de los sensores
4.5.3. Utilización de los sensores en Asteroides
4.6. Introduciendo un misil en Asteroides
CAPÍTULO 5. Multimedia y ciclo de vida de una aplicación
5.1. Ciclo de vida de una aplicación
5.1.1. ¿Qué proceso se elimina?
5.1.2. Aplicando eventos del ciclo de vida en Asteroides
5.1.3. Guardando el estado de una actividad
5.2. Utilizando multimedia en Android
5.3. Reproducir un vídeo con VideoView
5.4. La clase MediaPlayer
5.4.1. Reproducción de audio de fondo incorporado como un recurso
5.5. Un reproductor multimedia pasó a paso
CAPÍTULO 6. Seguridad y posicionamiento
6.1. Seguridad en Android
6.1.1. Usuario Linux y acceso a ficheros
6.1.2. El esquema de permisos en Android
6.1.2.1. Creando tus propios permisos
6.2. Localización
6.2.1. Emulación del GPS con Eclipse
6.3. Google Maps
6.3.1. Obtención de una clave Google Maps
6.3.2. Un programa de ejemplo
6.4. Fragmentando los asteroides
CAPÍTULO 7. Almacenamiento de datos
7.1. Añadiendo lista de puntuaciones en Android
7.2. Comunicación entre actividades
7.3. Accediendo a ficheros
7.3.1. Sistema interno de ficheros
7.3.2. Almacenando puntuaciones en el sistema de ficheros interno
7.3.3. La tarjeta SD
7.3.4. Acceder a un fichero de los recursos
7.4. Trabajando con XML
7.4.1. Procesando XML con SAX
7.4.2. Procesando XML con DOM
7.5. Bases de datos
7.5.1. Utilizando una base de datos para guardar puntuaciones
7.6. Utilizando la clase ContentProvider
7.6.1. Conceptos básicos
7.6.1.1. El modelo de datos
7.6.1.2. Las URI
7.6.2. Acceder a la información de un ContentProvider
7.6.2.1. Leer información de un ContentProvider
7.6.2.2. Escribir información en un ContentProvider
7.6.2.3. Borrar y modificar elementos de un ContentProvider
7.6.3. Creación de un ContentProvider
7.6.3.1. Definir la estructura de almacenamiento del ContentProvider210
7.6.3.2. Extendiendo la clase ContentProvider
7.6.3.3. Declarar el ContentProvider en AndroidManifest.xml
7.6.4. Acceso a PuntuacionesProvider desde Asteroides
CAPÍTULO 8. Internet: sockets , HTTP y servicios web
8.1. Comunicaciones en Internet mediante sockets
8.1.1. La arquitectura cliente/servidor
8.1.2. Qué es un socket ?
8.1.2.1. Sockets stream (TCP)
8.1.2.2. Sockets datagram (UDP)
8.1.3. Un ejemplo de un cliente / servidor de ECHO
8.1.4. Almacenando las puntuaciones en un servidor por sockets
8.2. La web y el protocolo HTTP
8.2.1. El protocolo HTTP
8.2.1.1. Versión 1.0 de HTTP
8.2.1.2. Versión 1.1 de HTTP
8.2.2. Utilizando HTTP desde Android
8.3. Servicios web
8.3.1. Alternativas en los servicios web
8.3.1.1. Servicios web basados en SOAP
8.3.1.2. Servicios web basados en REST
8.3.2. Acceso a servicios web de terceros
8.3.3. Diseño e implantación de nuestro servicios web
8.3.3.1. Instalación del servidor de servicios web
8.3.3.2. Creación un servicio web en Eclipse
8.3.3.3. Explorando el servicio web desde Eclipse
8.3.3.4. Explorando el servicio web desde HTML
8.3.3.5. Utilizando el servicio web desde Android
CAPÍTULO 9. Servicios y notificaciones
9.1. Introducción a los servicios en Android
9.1.1. Ciclo de vida de un servicio.
9.1.2. Permisos
9.2. Un servicio para ejecución en segundo plano.
9.3. Las notificaciones de la barra de estado
9.3.1. Configurando tipos de avisos en las notificaciones
9.3.1.1. Asociar un sonido
9.3.1.2. Añadiendo vibración
9.3.1.3. Añadiendo parpadeo de LED
9.4. Un servicio como mecanismo de comunicación entre aplicaciones
9.4.1. Crear la interfaz en AIDL
9.4.2. Implementar la interfaz
9.4.3. Publicar la interfaz en un servicio
9.4.4. Llamar a una interfaz remoto
CAPÍTULO 10. Gráficos 3D con OpenGL
10.1. Introducción a OpenGL
10.1.1. OpenGL ES
10.2. Estructura del código en OpenGL
10.3. Primitivas en OpenGL ES
10.4. Añadiendo un array de colores
10.5. Representando un cubo
10.6. Transformaciones de coordenadas
10.6.1. Transformando el modelo
10.6.2. Definiendo el punto de vista
10.6.3. Manipulando las matrices de transformación
10.6.4. La proyección
10.6.5. Ejemplo: rotación usando la pantalla táctil
10.7. Iluminación
10.7.1. Vectores normales
10.7.2. Situando las luces
10.7.3. Definiendo materiales
10.8. Aplicando texturas
10.8.1. Mapeando texturas
10.8.2. Cargando y configurando texturas
10.8.3. Cambiando los parámetros de cada superficie
CAPÍTULO 11. Publicar aplicaciones
11.1. Preparar y testear tu aplicación
11.1.1. Preparar la aplicación para cualquier tipo de dispositivo
11.1.2. Testear la aplicación
11.2. Crear un certificado digital y firmar la aplicación
11.3. Publicar la aplicación
11.3.1. Publicar en Internet
11.3.2. Publicar en Android Market
11.4. Asteroides: detectar victoria y derrota