Lista de acrónimos... xv Cómo leer este libro?... xvii. CAPÍTULO 1. Visión general y entorno de desarrollo... 21



Documentos relacionados
CAPÍTULO 1. Visión general y entorno de desarrollo... 21

Lista de acrónimos... 15

Lista de siglas y acrónimos... xvii. Cómo leer este libro?... xix

Lista de siglas y acrónimos Cómo leer este libro?... 19

Presentación del curso MOOC Android: Programación de aplicaciones. Jesús Tomás Gandía 1 de febrerro de 2013

Android 4 Principios del desarrollo de aplicaciones Java

PROGRAMA DE MATERIA MATERIA:

PROGRAMA DE MATERIA DATOS DE IDENTIFICACIÓN DESCRIPCIÓN GENERAL OBJETIVO (S) GENERAL (ES) OPTATIVA PROFESIONALIZANTE II

Android 5 Principios del desarrollo de aplicaciones Java

online Programación para dispositivos Android 4.x

U2. Introducción al desarrollo de aplicaciones móviles Smartphone y Android Desarrollo de Aplicaciones III TIC-UTSV Enero 2015 I.S.C.

* Introducción al mundo móvil. Qué es Android. Instalación y primeros pasos con Android.

Programación Android Completo

Índice. Prólogo Capítulo I. Introducción Capítulo II. Conceptos...19

Programación para Android

Android Professional

Por medio de la presente nos complace presentar a ustedes nuestra propuesta de certificaciones de alta cobertura por volumen.

Presentación y objetivos

Android Programming. Código: S15 Duración: 25 horas OBJETIVOS

Anexo IV Configuración del Entorno de Desarrollo. Guía de puntos de interés de la Ciudad de Madrid

Unidad II. Interfaz Grafica (continuación ) Basado en clases de Ing. Carlos A. Aguilar

Tema 2: Introducción a Android

Entorno de desarrollo Instalación y configuración

APLICACIÓN PARA DISPOSITIVOS MÓVILES DESTINADA A USUARIOS DEL PARQUE NATURAL DE LA SIERRA DE COLLSEROLA

Lista de acrónimos... xv. Cómo leer este libro?... xvii

Online Itinerario Desarrollo móvil con Android 4.x y HTML 5

Objetivos y Temario CURSO DESARROLLO APLICACIONES ANDROID 4.0

Desarrollo de apps para móviles Android. Entorno de desarrollo

1 de Mayo 2015 al 1 de Mayo 2016 Capacitación Android nivel Básico y Experto MexicoFirst

Capitulo 1: Plataforma Android

ANDROID BÁSICO - E-LEARNING - EN LÍNEA

[PROGRAMACIÓN ANDROID] Programación Android. Dv-Alpha Solutions TIC S.L. Carlos Acevedo. Curso de desarrollo de aplicaciones para dispositivos Android

Android Guía de desarrollo de aplicaciones para Smartphones y Tabletas

Android Mobile & Web Development Training

Cursos El cerdito feliz. Programación de dispositivos Móviles con Android.

Desarrollo de apps para móviles Android. Introducción a Android

Guía del Curso Analista Programador Android: Business Android Apps Expert

Programación Multimedia y dispositivos móviles.


INTRODUCCIÓN.

2524 Developing XML Web Services Using Microsoft ASP.NET

ANDROID INTERMEDIO - E-LEARNING - EN LÍNEA

PROGRAMACIÓN DE SMARTPHONE MEDIANTE ANDROID

CURSO PROFESIONAL DE DESARROLLO DE APLICACIONES ANDROID NIVEL AVANZADO MÁSTER EN DESARROLLO DE APLICACIONES WEB CON JAVA ENTERPRISE EDITION

TEMA 1. Introducción

ANDROID 4.4 (Básico e Intermedio)

1.1. Instalación del entorno de desarrollo

Lista de acrónimos Cómo leer este libro? La clase Application Uso del patrón Singleton... 25

Curso de Desarrollo en Android Experto

1. Como empezar 1.1. Arquitectura Android 1.2. Dalvik VM 1.3. Componentes de Android 1.4. Entorno de Desarrollo Android 1.5. Una Aplicación sencilla

Desarrollo y servicios web

Diplomado Aplicaciones Móviles para Negocios Electrónicos

Capitulo 4: Componentes Android

DESARROLLO WEB EN ENTORNO CLIENTE

Índice. Herramientas de desarrollo. Historia Qué es Android? Arquitectura del sistema. Componentes Android Modelos de Negocio

EXPERTO EN DESARROLLO DE APLICACIONES PARA DISPOSITIVOS MÓVILES

CURSO INTERMEDIO DE PROGRAMACIÓN EN ANDROID

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN


Capacitación Android Básico

Curso de Android con Java

Propuesta ANDROID ATC

Desarrollo de apps para móviles Android. Conceptos básicos de las aplicaciones Android

Instalación del entorno de desarrollo

Tema 1. Introducción a JAVA

Introducción a Internet

Desarrollo de Aplicaciones móviles para Android y IOS

Reflexión. Inicio. Contenido

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

TEMA 5. Otras arquitecturas distribuidas IV. Web Services

Tutorial 1. Instalación del entorno de desarrollo de Android. Curso de perfeccionamiento: Programación de Android TUTORIAL 1: INSTALACIÓN DEL SOFTWARE

Crear una Activity en Android. Paso por paso

UNIVERSIDAD NACIONAL DE INGENIERÍA CENTRO DE EXTENSIÓN Y PROYECCIÓN SOCIAL

GLOSARIO DE TÉRMINOS

PROGRAMACIÓN DE APLICACIONES PARA ANDROID. 30 horas 45 días

MANUAL DE USUARIO Guía de Entregas con Subversion de proyectos de movilidad

MÁSTER. en desarrollo de aplicaciones. Dirigido a. Objetivos. Requisitos. Duración. Metodología. Contenidos

Cookbook Creando un Proyecto Android (ADT-Eclipse)

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales.

Centro de Competencias de Integración. Portal del paciente

Nombre del curso: Seminario Desarrollo de sistemas embebidos en Android

Programador en Plataforma Java y XML

MASTER DESARROLLO DE APLICACIONES ANDROID

Diseño de aplicaciones móviles seguras en Android.

Curso Superior Android 4.4 Kitkat + Mobile Market

Capitulo 2 Android SDK

Curso de Desarrollo en Android Básico

Curso Técnico de Android 4

CURSO ONLINE DE DESARROLLO DE APLICACIONES EN ANDROID NIVEL I

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

PREPARATORIA DIURNA DE CUAUTLA

5. Animaciones de Android Vista de tipo Superficie (ViewSurface) Gráficos en 3D en Android...101

Unidad II. Interfaz Grafica

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

CREIX AMB INTERNET. Desarrollo Aplicaciones para la plataforma Facebook

20h INFORMACIÓN Y COMUNICACIÓN INTERNET OBJETIVOS DEL CURSO. ÍNDICE 1 Introducción. 2 Internet Explorer Funciones principales

DESARROLLO DE UN CLIENTE SOFIA2 (KP) SIGUIENDO ARQUITECTURA KP-MODELO

Desarrollo y programación de aplicaciones para Android

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Servicios Web. Andrés Pastorini. TRIA Tecnólogo Informático

Transcripción:

Índice general Lista de acrónimos... xv Cómo leer este libro?... xvii CAPÍTULO 1. Visión general y entorno de desarrollo... 21 1.1. Qué hace que Android sea especial?... 22 1.2. Los orígenes... 23 1.3. Comparativa con otras plataformas... 24 1.4. Arquitectura de Android... 27 1.4.1. El núcleo Linux... 27 1.4.2. Runtime de Android... 27 1.4.3. Librerías nativas... 28 1.4.4. Entorno de aplicación... 28 1.4.5. Aplicaciones... 29 1.5. Instalación del entorno de desarrollo... 29 1.5.1. Instalación de la máquina virtual Java... 30 1.5.2. Instalación de Eclipse... 30 1.5.3. Instalar Android SDK de Google... 32 1.5.4. Instalación del plug-in Android para Eclipse (ADT)... 32 1.5.5. Creación de un dispositivo virtual Android (AVD)... 34 1.6. Las versiones de Android y niveles de API... 38 1.6.1. Las primeras versiones... 38 1.6.2. Cupcake... 39 1.6.3. Donut... 39 1.6.4. Éclair... 39 1.6.5. Froyo... 40 1.6.6. Gingerbread... 40 1.6.7. Honeycomb... 41 1.6.8. Ice Cream Sandwich... 42 1.6.9. Jelly Bean... 43 1.6.10. Elección de la plataforma de desarrollo... 42 1.7. Creación de un primer programa... 45 vii

1.8. Ejecución del programa... 49 1.8.1. Ejecución en el emulador... 49 1.8.2. Ejecución en un terminal real... 50 1.9. Elementos de un proyecto Android... 51 1.10. Componentes de una aplicación... 53 1.10.1. Vista (View)... 53 1.10.2. Layout... 53 1.10.3. Actividad (Activity)... 54 1.10.4. Servicio (Service)... 54 1.10.5. Intención (Intent)... 54 1.10.6. Receptor de anuncios (Broadcast receiver)... 54 1.10.7. Proveedores de Contenido (Content Provider)... 55 1.11. Documentación y ApiDemos... 55 1.11.1. Donde encontrar documentación... 55 1.11.2. La aplicación ApiDemos... 56 1.12. Depurar... 58 1.12.1. Depurar con Eclipse... 58 1.12.2. Depurar con mensajes Log... 59 CAPÍTULO 2. Diseño de la interfaz de usuario: Vistas y Layouts... 61 2.1. Creación de una interfaz de usuario por código... 62 2.2. Creación de una interfaz de usuario usando XML... 63 2.2.1. Edición visual de las vistas... 66 2.2.2. Los atributos de las vistas... 70 2.3. Layouts... 71 2.4. Una aplicación de ejemplo: Asteroides... 77 2.5. Recursos alternativos... 79 2.6. Tipos de recursos y recursos del sistema... 83 2.6.1. Tipos de recursos... 84 2.6.2. Acceso a los recuros... 86 2.6.3. Recusros del sistema... 86 2.7. Estilos y Temas... 87 2.7.1. Los estilos... 88 viii

2.7.1.1. Heredar de un estilo propio... 88 2.7.2. Los temas... 89 2.8. Uso práctico de Vistas y Layouts... 90 2.8.1. Acceder y modificar las propiedades de las vistas por código... 92 2.9. Uso de TabHost... 94 2.9.1. Uso de la etiqueta <include> en Layouts... 97 CAPÍTULO 3. Actividades e Intenciones... 99 3.1. Creación de nuevas actividades... 100 3.2. Comunicación entre actividades... 105 3.3. Añadiendo un menú... 107 3.4. Creación y uso de iconos... 109 3.5. Añadiendo preferencias de usuario... 112 3.5.1. Organizando preferencias... 115 3.5.2. Como se almacenan las preferencias de usuario... 117 3.5.3. Accediendo a los valores de las preferencias... 118 3.6. Añadiendo una lista de puntaciones en Asteroides... 118 3.7. La vista ListView... 121 3.7.1. Un ListView que visualiza una lista de Strings... 123 3.7.2. Un ListView que visualiza Layouts personalizados... 124 3.7.3. Un ListView con nuestro propio adaptador... 126 3.7.4. Detectar una pulsación sobre un elemento de la lista... 128 3.8. Las Intenciones... 128 3.8.1. La etiqueta <intent-filter>... 134 CAPÍTULO 4. Gráficos en Android... 137 4.1. Clases para gráficos en Android... 138 4.1.1. Canvas... 138 4.1.2. Paint... 140 4.1.2.1. Definición de colores... 141 4.1.3. Path... 143 4.1.4. Drawable... 145 4.1.4.1. BitmapDrawable... 147 ix

4.1.4.2. GradienDrawable... 147 4.1.4.3. TransitionDrawable... 148 4.1.4.4. ShapeDrawable... 149 4.1.4.5. AnimationDrawable... 150 4.2. Creación de una vista en un fichero independiente... 151 4.3. Creando la actividad principal de Asteroides... 154 4.3.1. La clase Gráfico... 156 4.3.2. La clase VistaJuego... 158 4.3.3. Introduciendo la nave en VistaJuego... 160 4.4. Representación de gráficos vectoriales en Asteroides... 162 4.5. Animaciones... 164 4.5.1. Animaciones Tween... 164 4.5.2. Animaciones de propiedades... 168 CAPÍTULO 5. Entradas en Android: teclado, pantalla táctil y sensores... 169 5.1. Uso de hilos de ejecución (Threads)... 170 5.1.1. Introducción a los procesos e hilos de ejecución... 170 5.1.2. Hilos de ejecución en Android... 171 5.1.3. Introduciendo movimientos en Asteroides... 171 5.2. Manejando eventos de usuario... 174 5.2.1. Escuchador de eventos... 175 5.2.2. Manejadores de eventos... 176 5.3. El teclado... 177 5.4. La pantalla táctil... 179 5.4.1. Manejo de la pantalla táctil con multi-touch... 182 5.4.2. Manejo de la nave con la pantalla táctil... 185 5.5. Gestures... 187 5.5.1. Creación y uso de una librería de gestures... 188 5.5.2. Añadiendo gestures a Asteroides... 192 5.6. Los sensores... 193 5.6.1. Un programa que muestra los sensores disponibles y sus valores en tiempo real... 199 5.6.2. Utilización de los sensores en Asteroides... 201 x

5.7. Introduciendo un misil en Asteroides... 203 CAPÍTULO 6. Multimedia y ciclo de vida de una actividad... 207 6.1. Ciclo de vida de una actividad... 208 6.1.1. Qué proceso se elimina?... 215 6.1.2. Guardando el estado de una actividad... 217 6.2. Utilizando multimedia en Android... 220 6.3. La vista VideoView... 222 6.4. La clase MediaPlayer... 224 6.4.1. Reproducción de audio con MediaPlayer... 225 6.5. Un reproductor multimedia paso a paso... 225 6.6. Introduciendo efectos de audio con SoundPool... 232 6.7. Grabación de audio... 235 CAPÍTULO 7. Seguridad y posicionamiento... 241 7.1. Los tres pilares de la seguridad en Android... 242 7.1.1. Usuario Linux y acceso a ficheros... 243 7.1.2. El esquema de permisos en Android... 243 7.1.3. Permisos definidos por el usuario en Android... 245 7.2. Localización... 249 7.2.1. Emulación del GPS con Eclipse... 255 7.3. Google Maps (API v2)... 256 7.3.1. Obtención de una clave Google Maps... 256 7.4. Fragmentando los asteroides... 265 CAPÍTULO 8. Servicios, notificaciones y receptores de anuncios... 267 8.1. Introducción a los servicios en Android... 268 8.1.1. Ciclo de vida de un servicio.... 269 8.1.2. Permisos... 271 8.2. Un servicio para ejecución en segundo plano.... 271 8.2.1. Los métodos onstartcommad() y onstart()... 274 8.3. Las notificaciones de la barra de estado... 276 8.3.1. Configurando tipos de avisos en las notificaciones... 279 8.3.1.1. Asociar un sonido... 279 xi

8.3.1.2. Añadiendo vibración... 279 8.3.1.3. Añadiendo parpadeo de LED... 280 8.4. Receptores de anuncios... 280 8.4.1. Receptor de anuncios registrado en AndroidManifest.xml... 281 8.4.2. Arrancar un servicio tras cargar el sistema operativo... 287 8.5. Un servicio en un nuevo hilo con IntentService... 288 8.5.1. La clase IntentService... 291 8.6. Un receptor de anuncio como mecanismo de comunicación... 293 8.7. Un servicio como mecanismo de comunicación entre aplicaciones... 295 8.7.1. Crear la interfaz en AIDL... 296 8.7.2. Implementar la interfaz... 297 8.7.3. Publicar la interfaz en un servicio... 298 8.7.4. Llamar a una interfaz remoto... 299 CAPÍTULO 9. Almacenamiento de datos... 303 9.1. Alternativas para guardar datos permanentemente en Android... 304 9.2. Añadiendo puntuaciones en Asteroides... 305 9.3. Preferencias... 307 9.4. Accediendo a ficheros... 311 9.4.1. Sistema interno de ficheros... 311 9.4.2. Sistema de almacenamiento externo... 314 9.4.2.1. Verificando acceso a la memoria externa... 315 9.4.2.2. Almacenando ficheros específicos de tu aplicación en el almacenamiento externo... 317 9.4.2.3. Almacenando ficheros compartidos en el almacenamiento externo... 318 9.4.3. Acceder a un fichero de los recursos... 319 9.5. Trabajando con XML... 320 9.5.1. Procesando XML con SAX... 321 9.5.2. Procesando XML con DOM... 327 9.6. Bases de datos... 332 9.6.1. Los métodos query() y rawquery()... 335 9.6.2. Bases de datos relacionales... 337 9.6.3. El método onupgrade de la clase SQLiteOpenHelper... 340 xii

9.7. Utilizando la clase ContentProvider... 341 9.7.1. Conceptos básicos... 341 9.7.1.1. El modelo de datos... 341 9.7.1.2. Las URI... 342 9.7.2. Acceder a la información de un ContentProvider... 343 9.7.2.1. Leer información de un ContentProvider... 344 9.7.2.2. Escribir información en un ContentProvider... 347 9.7.2.3. Borrar y modificar elementos de un ContentProvider... 348 9.7.3. Creación de un ContentProvider... 349 9.7.3.1. Definir la estructura de almacenamiento del ContentProvider... 349 9.7.3.2. Extendiendo la clase ContentProvider... 350 9.7.3.3. Declarar el ContentProvider en AndroidManifest.xml... 354 9.7.4. Acceso a PuntuacionesProvider desde Asteroides... 356 CAPÍTULO 10. Internet: sockets, HTTP y servicios web... 359 10.1. Comunicaciones en Internet mediante sockets... 360 10.1.1. La arquitectura cliente/servidor... 360 10.1.2. Qué es un socket?... 360 10.1.2.1. Sockets stream (TCP)... 361 10.1.2.2. Sockets datagram (UDP)... 361 10.1.3. Un ejemplo de un cliente / servidor de ECHO... 362 10.1.4. Un servidor por sockets para las puntuaciones... 366 10.2. La web y el protocolo HTTP... 370 10.2.1. El protocolo HTTP... 370 10.2.2. Versión 1.0 del protocolo HTTP... 372 10.2.3. Utilizando HTTP desde Android... 374 10.3. Servicios web... 379 10.3.1. Alternativas en los servicios web... 380 10.3.1.1. Servicios web basados en SOAP... 380 10.3.1.2. Servicios web basados en REST... 381 10.3.2. Acceso a servicios web de terceros... 385 10.3.3. Diseño e implantación de nuestro servicio web... 389 10.3.3.1. Instalación del servidor de servicios web... 389 xiii

10.3.3.2. Creación un servicio web en Eclipse... 391 10.3.3.3. Explorando el servicio web desde Eclipse... 394 10.3.3.4. Explorando el servicio web desde HTML... 398 10.3.4. Utilizando el servicio web desde Asteroides... 400 CAPÍTULO 11. Publicar Aplicaciones... 405 11.1. Preparar y testear tu aplicación... 405 11.1.1. Preparar la aplicación para distintos tipos de dispositivo... 406 11.1.2. Testear la aplicación... 408 11.2. Crear un certificado digital y firmar la aplicación... 411 11.3. Publicar la aplicación... 413 11.3.1. Publicar en Internet... 413 11.3.2. Publicar en Google Play Store... 413 11.4. Asteroides: detectar victoria y derrota... 417 ANEXO A. Referencia Java... 421 ANEXO B. Referencia: la clase View y sus descendientes... 433 xiv

Lista de acrónimos AIDL API AVD DOM DTD FTP GPS HTTP IDE JDK JRE JSON JVM MIME NDK OpenGL PCM RAM REST RPC SAX SDK SMS SOA SOAP SQL TCP UI URL Android Interface Definition Language Application Programming Interface Android Virtual Device Modelo de Objetos del Documento Document Type Definition File Transfer Protocol Global Positioning System Hypertext Transfer Protocol Integrated Development Environment Java Development Kit Java Runtime Environment JavaScript Object Notation Java Virtual Machine Multipurpose Internet Mail Extensions Native Development Kit Open Graphic Library Pulse-Code Modulation Random Access Memory REpresentational State Transfer Remote Procedure Calls Simple API for XML Software Developers Kit Short Message Service Service-Oriented Architecture Simple Object Access Protocol Structured Query Language Transmission Control Protocol User Interface Universal Resource Locator xv

URI USB W3C WSDL WWW XML Uniform Resource Identifier Universal Serial Bus World Wide Web Consortium Web Services Description Language World Wide Web Extensible Markup Language xvi