Sobre los autores
Introducción
Quién debería leer este libro
Preguntas clave que tienen respuesta en este libro
Organización del libro
Sobre este libro
Entornos de desarrollo utilizados en este libro
Dónde encontrar más información
Convenciones
Código fuente
Contactar con los autores
Parte I. Visión general de la plataforma Android
1. Introducción a Android
Breve historia del desarrollo de software móvil
Hace mucho tiempo
"El ladrillo"
WAP (Wireless Application Protocol, Protocolo de aplicaciones inalámbricas)
Plataformas móviles propietarias
Open Handset Alliance
Google se hace inalámbrico
Creación de Open Handset Alliance
Fabricantes: Diseño de dispositivos Android
Operadores de tecnología móvil: Transmisión de la experiencia Android
Ventas de dispositivos gracias a aplicaciones: Desarrollo de aplicaciones Android
Aprovechar todo lo que Android puede ofrecer
Mercado de Android: Dónde estamos ahora
Diferencias de la plataforma Android
Android: una plataforma de próxima generación
Gratuito y de código abierto
Herramientas de desarrollo conocidas y gratuitas
Kit de desarrollo software gratuito
Lenguaje de programación y entorno de desarrollo conocido
Curva de aprendizaje razonable para desarrolladores
Desarrollo de potentes aplicaciones
Integración de aplicaciones segura y completa
Sin obstáculos económicos para la publicación
Un "mercado gratuito" para aplicaciones
Una plataforma en crecimiento
La plataforma Android
Arquitectura de Android
Sistema operativo Linux
Entorno en tiempo de ejecución de la aplicación Android
Seguridad y permisos
Aplicaciones como usuarios del sistema operativo
Permisos de aplicación definidos explícitamente
Permisos limitados ad-hoc
Firma de la aplicación para relaciones de confianza
Registro del desarrollador en el mercado
Desarrollar aplicaciones Android
Lenguajes de programación Android
Sin distinción entre aplicaciones nativas y de terceros
Paquetes usados con frecuencia
Entorno de la aplicación Android
Servicios de la plataforma Android
Resumen
Referencias y más información
2. Configurar el entorno de desarrollo Android
Configurar el entorno de desarrollo
Configurar el sistema operativo para depuración de dispositivos
Configurar su hardware Android para la depuración
Actualizar Android SDK
Problemas con el kit de desarrollo Android
Explorar Android SDK
Acuerdo de licencia de Android SDK
Documentación de Android SDK
Entorno de aplicación del núcleo de Android
Herramientas del núcleo de Android
Eclipse y el plugin ADT
Gestores de Android SDK y AVD
Emulador de Android
Aplicaciones de ejemplo Android
Resumen
Referencias y más información
3. Escribir su primera aplicación Android
Probar el entorno de desarrollo
Añadir el proyecto Snake a su espacio de trabajo de Eclipse
Crear un dispositivo virtual Android (AVD) para su proyecto Snake
Crear una configuración de inicio para su proyecto Snake
Ejecutar la aplicación Snake en el emulador Android
Crear su primera aplicación Android
Crear y configurar un nuevo proyecto Android
Archivos y directorios del núcleo de la aplicación Android
Crear un AVD para su proyecto
Crear una configuración de inicio para su proyecto
Ejecutar su aplicación Android en el emulador
Depurar su aplicación Android en el emulador
Añadir soporte de registro a su aplicación Android
Añadir soporte multimedia a su aplicación
Añadir servicios basados en la localización a su aplicación
Configurar la posición en el emulador
Encontrar la última posición conocida
Depurar su aplicación en el Hardware
Resumen
Referencias y más información
4. Dominar las herramientas de desarrollo Android
Utilizar la documentación de Android
Aprovechar el emulador de Android
Visualizar datos del registro de la aplicación con LogCat
Depurar aplicaciones con DDMS
Utilizar Android Debug Bridge (ADB)
Utilizar editores de recursos y UI Designer
Utilizar Hierarchy Viewer
Iniciar Hierarchy Viewer
Trabajar en el Modo Layout View
Optimizar su interfaz de usuario
Trabajar en el modo Pixel Perfect
Trabajar con gráficos extensibles 9-patch
Trabajar con otras herramientas de Android
Resumen
Referencias y más información
Parte II. Conceptos básicos de aplicaciones Android
5. Estructura de una aplicación Android
Dominar la terminología importante de Android
Utilizar el contexto de una aplicación
Recuperar el contexto de una aplicación
Utilizar el contexto de la aplicación
Recuperar recursos de la aplicación
Acceder a las preferencias de una aplicación
Acceder a archivos y directorios de una aplicación
Recuperar assets de una aplicación
Ejecutar tareas y actividades de una aplicación
Ciclo de vida de una actividad Android
Utilizar llamadas a actividades para gestionar el estado y los recursos de la aplicación
Inicializar datos estáticos de la actividad en onCreate()
Inicializar y recuperar datos de la actividad en onResume()
Detener, guardar y liberar datos de la actividad en onPause()
Evitar la eliminación de actividades
Guardar el estado de la actividad en un Bundle con onSaveInstanceState()
Destruir datos estáticos de la actividad en onDestroy()
Organizar componentes de una actividad con fragmentos
Gestionar transiciones en la actividad con Intents
Transición entre actividades con Intents
Iniciar una nueva actividad mediante el nombre de la clase
Crear Intents con acción y datos
Iniciar una actividad que pertenece a otra aplicación
Pasar información adicional utilizando Intents
Organizar la navegación en la aplicación con actividades e Intents
Trabajar con servicios
Recibir y transmitir Intents
Resumen
Referencias y más información
6. Definir su aplicación utilizando el archivo manifest de Android
Configurar aplicaciones Android utilizando el archivo manifest
Modificar el archivo manifest
Editar el archivo manifest con Eclipse
Configurar ajustes en todo el paquete del proyecto utilizando la pestaña Manifest
Gestionar ajustes de la aplicación y de actividades en la pestaña Application
Forzar permisos de aplicaciones en la pestaña Permissions
Gestionar la instrumentación de pruebas en la pestaña Instrumentation
Modificar el archivo manifest de forma manual
Gestionar la identidad de su aplicación
Version de su aplicación
Configurar el nombre y el icono de la aplicación
Aplicar requisitos del sistema en su aplicación
Utilizar versiones específicas de SDK.
Definir la versión mínima de SDK
Definir la versión destino de SDK
Definir la versión máxima de SDK
Forzar requisitos del sistema en su aplicación
Definir métodos de entrada soportados
Definir características requeridas del dispositivo
Definir tamaños de pantalla soportados
Trabajar con librerías externas
Otros ajustes y filtros de la configuración de la aplicación
Declarar actividades en el archivo manifest de Android
Designar una actividad como punto de entrada principal de su aplicación utilizando un filtro Intent
Configurar otros filtros Intent
Registrar otros componentes en la aplicación
Trabajar con permisos
Registrar permisos que necesita su aplicación
Declarar permisos utilizados por su aplicación
Otros ajustes del archivo manifest de Android
Resumen
Referencias y más información
7. Gestionar recursos de la aplicación
¿Qué son los recursos?
Almacenar recursos de la aplicación
Tipos de valores de recursos
Almacenar tipos de recursos primitivos
Almacenar gráficos y archivos
Almacenar otros tipos de recursos
Utilización de los recursos
Acceder a los recursos por programación
Configurar valores sencillos de recursos en Eclipse
Trabajar con diferentes tipos de recursos
Trabajar con recursos de cadena
Cadenas en negrita, cursiva y subrayadas
Utilizar recursos de cadena como cadenas con formato
Utilizar recursos de cadena mediante programación
Trabajar con conjuntos de cadenas
Trabajar con recursos booleanos
Definir recursos booleanos en XML
Utilizar recursos booleanos mediante programación
Trabajar con recursos enteros
Definir recursos enteros en XML
Utilizar recursos enteros mediante programación
Trabajar con colores
Definir recursos de color en XML
Utilizar recursos de color mediante programación
Trabajar con dimensiones
Definir recursos de dimensión en XML
Utilizar recursos de dimensión mediante programación
Trabajar con dibujos sencillos
Definir recursos dibujo sencillos en XML
Utilizar recursos de dibujo sencillos mediante programación
Trabajar con imágenes
Trabajar con gráficos 9-Patch
Utilizar recursos de imagen mediante programación
Trabajar con animaciones
Definir y utilizar recursos de animación fotograma a fotograma
Definir y utilizar recursos de animación interpolada
Definir recursos de animación interpolada en XML
Utilizar recursos de animación interpolada mediante programación
Trabajar con menús
Definir recursos de menú en XML
Utilizar recursos de menú mediante programación
Trabajar con archivos XML
Definir recursos XML raw
Utilizar recursos XML mediante programación
Trabajar con archivos raw
Definir recursos de archivos raw
Utilizar recursos de archivos raw mediante programación
Referencias a recursos
Trabajar con diseños
Crear diseños en Eclipse
Utilizar recursos de diseño mediante programación
Hacer referencia a recursos del sistema
Resumen
Referencias y más información
Parte III. Fundamentos de diseño de interfaces de usuario Android
8. Explorar elementos de la pantalla interfaz del usuario
Introducción a vistas y diseños de Android
Introducción a View
Introducción a los controles de Android
Introducción a Layout
Mostrar texto a los usuarios con TextView
Configurar el diseño y el tamaño
Crear vínculos contextuales en el texto
Obtener datos de usuarios con EditText
Introducción de texto empleando controles EditText
Restringir la entrada de datos del usuario con filtros de entrada
Ayudando al usuario con autocompletar
Dar opciones al usuario con controles Spinner
Permitir selecciones sencillas al usuario con botones, casillas de verificación, selectores y botones de opciones
Emplear botones básicos
Utilizar los controles CheckBox y ToggleButton
Utilizar RadioGroup y RadioButton
Obtener fecha y hora de usuarios
Emplear indicadores para mostrar datos a los usuarios
Indicar progreso con ProgressBar
Ajustar el progreso con SeekBar
Mostrar datos de evaluación con RatingBar
Mostrar el tiempo transcurrido con el cronómetro
Mostrar el tiempo
Utilizar DigitalClock
Utilizar AnalogClock
Resumen
Referencias y más información
9. Diseño de interfaces de usuario
Crear interfaces de usuario en Android
Crear diseños utilizando recursos XML
Crear diseños mediante programación
Organizar su interfaz de usuario
Utilizar subclases ViewGroup para crear diseños
Utilizar subclases ViewGroup como contenedores View
Utilizar clases de diseño integradas
Utilizar FrameLayout
Utilizar LinearLayout
Utilizar RelativeLayout
Utilizar TableLayout
Utilizar GridLayout
Utilizar múltiples diseños en una pantalla
Utilizar clases de control contenedor
Utilizar contenedores basados en datos
Utilizar ArrayAdapter
Utilizar CursorAdapter
Enlazar datos a AdapterView
Gestionar eventos de selección
Utilizar ListActivity
Organizar pantallas con pestañas
Utilizar TabActivity
Añadir soporte de desplazamiento
Explorar otros contenedores View
Resumen
Referencias y más información
10. Trabajar con fragmentos
Entender los fragmentos
Entender el ciclo de vida de los fragmentos
Definir fragmentos
Gestionar modificaciones en fragmentos
Adjuntar y separar fragmentos en actividades
Trabajar con tipos especiales de fragmentos
Diseñar aplicaciones basadas en fragmentos
Implementar un ListFragment
Implementar un WebViewFragment
Definir los archivos de diseño
Definir las clases Activity
Utilizar el paquete de soporte Android
Añadir soporte de fragmentos a aplicaciones antiguas
Utilizar fragmentos en nuevas aplicaciones para su implementación en plataformas antiguas
Vincular el paquete de soporte Android a su proyecto
Resumen
Referencias y más información
11. Trabajar con diálogos
Seleccionar la implementación de diálogos
Tipos de diálogos
Trabajar con diálogos: método clásico
Controlar el ciclo de vida de un diálogo
Definir un diálogo
Inicializar un diálogo
Iniciar un diálogo
Descartar un diálogo
Eliminar un diálogo
Trabajar con diálogos personalizados
Trabajar con diálogos: Método con fragmentos
Resumen
Referencias y más información
Parte IV. Fundamentos de diseño de aplicaciones en Android
12. Preferencias de Android
Trabajar con preferencias de aplicaciones
Determinar cuándo es adecuado el uso de preferencias
Almacenar diferentes tipos de valores de preferencias
Crear preferencias privadas para utilizarlas en una única actividad
Crear