Este documento presenta una introducción a Android. Explica que Android es una plataforma de código abierto para dispositivos móviles que tiene en cuenta las limitaciones de estos dispositivos. Describe la arquitectura de Android, incluyendo el kernel de Linux, las bibliotecas, el framework de aplicaciones y las propias aplicaciones. Explica los principales componentes de una aplicación Android como actividades, servicios, proveedores de contenido y receptores de difusión, así como sus ciclos de vida. También introduce el concepto de intenciones y el contexto
1. Análisis y Diseño
de Software
Departamento de Ingeniería de Sistemas Telemáticos
http://moodle.dit.upm.es
Introducción a
Android
Carlos A. Iglesias <cif@gsi.dit.upm.es>
2. Introducción a Android 2
Teoría
Ejercicio práctico en el ordenador
Ampliación de conocimientos
Lectura / Vídeo / Podcast
Práctica libre / Experimentación
Leyenda
3. Introducción a Android 3
Temario
● 4.1 Introducción a Android
● 4.2 Introducción Desarrollo con Android
● 4.3 Ejemplo Desarrollo y Depuración
● 4.4 Actividades
● 4.5 Interfaces de Usuario
● 4.6 Intenciones
● 4.7 Acceso a Datos
● 4.8 Preferencias
● 4.9 Hebras e internacionalización
5. Introducción a Android 5
Bibliografía complementaria
● Hello Android, E. Burnette, The Pragmatic
Bookshelf, 3rd Edition, 2008. Capítulo 2.
●http://www.maestrosdelweb.com/editorial/c
urso-android-construir-lector-de-feeds/
6. Introducción a Android 6Actividades 3
Temario
● 4.1 Introducción a Android
● 4.2 Introducción Desarrollo con Android
● 4.3 Ejemplo Desarrollo y Depuración
● 4.4 Actividades
● 4.5 Interfaces de Usuario
● 4.6 Intenciones
● 4.7 Acceso a Datos
● 4.8 Preferencias
● 4.9 Hebras e internacionalización
7. Introducción a Android 7
Bibliografía (II)
● Libro de texto:
– Professional Android 4 Application Development,
Reto Meier, Wrox, 3rd Edition, 2012. Disponible en
http://proquest.safaribooksonline.com/book/-/9781118
237229
– Capítulo 1
8. Introducción a Android 8
Objetivos
● Conocer qué es Android:
– Su origen y evolución
– Su arquitectura
– Cómo se ejecuta
● Aprender cuáles son los bloques de una
aplicación en Android
● Comprender los ciclos de vida de
actividades y servicios
16. Introducción a Android 16
Android
● Es una plataforma software de código
abierto para dispositivos móviles
● Tiene en cuenta restricciones actuales que
no van a cambiar en el corto plazo como
– (i) baterías que duran poco
– (ii) limitación en CPU/memoria de móviles
● Está diseñado para ser portable a
múltiples dispositivos
17. Introducción a Android 17
Lecturas
● Wikipedia – Historia de Android:
– http://es.wikipedia.org/wiki/Android
20. Introducción a Android 20
Arquitectura de Android
● El sistema operativo Android tiene varias capas:
– Kernel de Linux
– Bibliotecas: bibliotecas en C/C++ (SSL, OpenGL, …)
• Máquina virtual Dalvik
• Nueva máquina virtual ART en pruebas
– Framework de Aplicación: modelo de programación en
Java para aplicaciones Android
– Aplicaciones: programadas por usuarios en Java
• Distribuidas en ficheros APK (Application Package) que contienen el
código Dalvik ejecutable, recursos (imágenes, …), y bibliotecas
opcionales (en C/C++)
• Debemos firmarlas para distribuirlas en un mercado
21. Introducción a Android 21
Máquina virtual Dalvik
● Máquina virtual de los dispositivos Android
● Optimizada para usar poca memoria y permitir la
ejecución simultánea de varias máquinas virtuales
● Delega en el SO la gestión de memoria y hebras
● No es una JVM
● Cada aplicación de Android se ejecuta en un
proceso, que es una instancia de la Dalvik VM
● Cada aplicación de Android tiene asignado un
usuario de Linux, que tiene derechos sobre los
ficheros de la aplicación
23. Introducción a Android 25
Bloques de una aplicación
● Actividad (Activity): cada pantalla de la
aplicación
● Servicio (Service): una tarea que se ejecuta de
fondo sin interacción directa del usuario. P. ej. un
temporizador
● Proveedor de Contenidos (Content Provider):
interfaces para compartir datos entre aplicaciones
● Receptores de difusión (Broadcast receivers):
mecanismo de comunicación por subscripción a
eventos (p.ej. Batería baja o captura realizada)
24. Introducción a Android 26
Actividad
● Una actividad representa una pantalla
● La pantalla inicial de la aplicación es la
'main' activity.
●Activity Manager: es el responsable del
ciclo de vida de la actividad (crear, parar,
…)
● Mantiene una pila de actividades
recientes
26. Introducción a Android 28
Ciclo de vida de un servicio
● Ej.
– poner música de fondo
– Recuperar información
remota sin bloquear al
usuario
27. Introducción a Android 29
Proveedor de contenidos
● Proporciona una API
CRUD
● Mecanismo común
para aplicaciones y
para el sistema
(settings, contactos,
etc.)
● Recupera datos de
base de datos, web,
sistema de ficheros, ...
28. Introducción a Android 30
Receptores de difusión
● Sigue patrón
publish/subscribe
● El subscriptor tiene
un método que se
ejecuta cuando recibe
el evento
● Ej. Evento de Wifi
disponible, batería
baja, imagen
capturada, ...
29. Introducción a Android 31
Contexto de Aplicación
● Todos los componentes de una
aplicación se ejecutan en un contexto de
aplicación
● El contexto de aplicación es el 'espacio
compartido' que les permite compartir datos
y recursos
● El CA se crea cuando se lanza el primer
componente de una aplicación
30. Introducción a Android 32
¿Quién controla?
● En programación tradicional, sabemos qué
se ejecuta a continuación
● En programación orientada a eventos, el
programador NO CONTROLA en qué estado
está el programa, es gestionado por el
sistema
● Programamos métodos (onCreate, onStart,
onResume, onPause, onStop) que se
ejecutan cuando se da el evento adecuado
31. Introducción a Android 33
Activando componentes
●En Android, una aplicación puede activar una
actividad de otra aplicación. P. ej. una app
quiere capturar una pantalla
● Esto quiere decir que 'no hay un main':
podemos activar cada 'pantallla'
● Como cada aplicación es un usuario/proceso
diferente, no podemos lanzarlo directamente:
le debemos pedir al sistema Android que lo
haga, enviando un mensaje llamado 'intención'
32. Introducción a Android 34
Intenciones (I)
● Intención (Intent): describe un tipo de
acción (seleccionar una foto, enviar un
correo, …)
● Las intenciones activan actividades,
servicios y receptores de difusión
33. Introducción a Android 35
Intenciones (II)
● Intención explícita: indicamos el
destinatario
●Intención implícita: indicamos el tipo de
destinatario (p.ej. un editor, un navegador)
34. Introducción a Android 36
Patrón de Diseño
● Es una solución a un problema concreto
● Permite unificar la terminología
● P.ej.
– Problema: tener un objeto único de una clase
– Solución: patrón Singleton
36. Introducción a Android 38
Resumen
● Android es una plataforma para
desarrollar aplicaciones móviles
● Android tiene diferentes versiones que
añaden funcionalidades
● Tiene varias capas: Linux, bibliotecas,
framework de aplicación y aplicaciones
● Las aplicaciones se desarrollan en Java,
y se compilan para la Dalvik VM
37. Introducción a Android 39
Resumen
● Hemos aprendido los principales componentes
de una aplicación: actividades, servicios,
proveedores de contenidos y receptores de
difusión
● Las actividades y servicios tienen un ciclo de
vida
● Las intenciones permiten que el sistema active
componentes
● El contexto de aplicación permite que los
componentes compartan datos y recursos