Análisis y Diseño de Software
Departamento de Ingeniería de Sistemas Telemáticoshttp://moodle.dit.upm.es
Desarrollo con AndroidFramework Android
Carlos A. Iglesias <[email protected]>
Desarrollo con Android 2
Teoría
Ejercicio práctico en el ordenador
Ampliación de conocimientos
Lectura / Vídeo / Podcast
Práctica libre / Experimentación
Leyenda
Desarrollo con Android 3
Temario● 4.1 Introducción a Android [Gar10, cap1-2 ]
● 4.2 Desarrollo con Android [Gar10, cap3-5]
– 4.2.1. Instalación [Gar10,cap3]
– 4.2.2. Framework Android [Gar10,cap4]
● 4.3 Interfaces de Usuario [Gar10, cap6]
● 4.4 Intenciones y Servicios [Gar10, cap7-8]
● 4.5 Acceso a Datos [Gar10, cap9]
Introducción a Android 4
Bibliografía
● Libro de texto: – [Gar10] Learning Android, Marko Gargenta,
O'Reilly, 2010. Disponible en http://ofps.oreilly.com/titles/9781449390501/
– Capítulos 4-5
– http://www.youtube.com/watch?v=SW82-YOOMIs
● Android Developers– http://developer.android.com/guide/topics/fundamentals
.html
Desarrollo con Android 5
Bibliografía complementaria
● Hello Android, E. Burnette, The Pragmatic Bookshelf, 3rd Edition, 2008. Capítulo 2.
●http://www.maestrosdelweb.com/editorial/curso-android-construir-lector-de-feeds/
Desarrollo con Android 6
Objetivos
● Aprender cuáles son los bloques de una aplicación en Android● Comprender los ciclos de vida de actividades y servicios
Desarrollo con Android 7
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)
Desarrollo con Android 8
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
Desarrollo con Android 9
Ciclo de vida de una Actividad
Desarrollo con Android 10
Ciclo de vida de un servicio
Desarrollo con Android 11
Proveedor de contenidos
● Proporciona una API CRUD
● Mecanismo común para aplicaciones y para el sistema (settings, contactos, etc.)
Desarrollo con Android 12
Receptores de difusión
● Sigue patrón publish/subscribe
● El subscriptor tiene un método que se ejecuta cuando recibe el evento
Desarrollo con Android 13
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
Desarrollo con Android 14
¿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
Desarrollo con Android 15
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'
Desarrollo con Android 16
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
Desarrollo con Android 17
Intenciones (II)
● Intención explícita: indicamos el destinatario
●Intención implícita: indicamos el tipo de destinatario (p.ej. un editor, un navegador)
Desarrollo con Android 18
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
Desarrollo con Android 19
Patrón Publish-Subscribe (Publicador/Subscriptor)
Desarrollo con Android 20
Ejemplo Yamba
Desarrollo con Android 21
Diagrama de Diseño
Desarrollo con Android 22
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
Desarrollo con Android 23
¿Preguntas?