Tema 4.1 Introduccion Android
-
Upload
carlos-iglesias -
Category
Documents
-
view
1.308 -
download
4
description
Transcript of Tema 4.1 Introduccion Android
Análisis y Diseño de Software
Departamento de Ingeniería de Sistemas Telemáticoshttp://moodle.dit.upm.es
Introducción a Android
Carlos A. Iglesias <[email protected]>
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
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
Introducción a Android 4
Bibliografía (I)
● Libro: – [Gar10] Learning Android, Marko Gargenta,
O'Reilly, 2010. Disponible en http://ofps.oreilly.com/titles/9781449390501/
– Capítulos 1-2
● Android Developers– http://developer.android.com/guide/basics/what-is-andr
oid.html– http://developer.android.com/guide/topics/fundamentals
.html
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/curso-android-construir-lector-de-feeds/
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
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/-/9781118237229
– Capítulo 1
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
Introducción a Android 9
¿Qué es Android?
Introducción a Android 10
Android
● 2007 – Creación de la Open Handset Alliance, liderada por Google
● 2009 – Primer terminal HTCG1
Introducción a Android 11
Versiones de Android
Introducción a Android 12
Versiones de Android● 9/2008 – Android 1.0
● 2/2009 – Android 1.1
● 4/2009 – Android 1.5 (Cupcake)
● 9/2009 – Android 1.6 (Donut)
● 10/2009 – Android 2.0/2.1 (Eclair)
● 5/2010 – Android 2.2 (Froyo)
● 12/2010 – Android 2.3 (Gingerbread)
● 2/2011 – Android 3.0/3.1/3.2 (Honeycomb)
● 10/2011 – Android 4.0 (IceSandwich)
● 06/2012 – Android 4.1/4.2/4.3 (Jelly Bean)
● 10/2013/ - Android 4.4 (KitKat)
Introducción a Android 13
Versiones Android
Introducción a Android 14
Distribución de versiones
http://developer.android.com/about/dashboards/index.html
Introducción a Android 15
Aplicaciones de Android
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
Introducción a Android 17
Lecturas
● Wikipedia – Historia de Android:– http://es.wikipedia.org/wiki/Android
Introducción a Android 18
Arquitectura de Android
Introducción a Android 19
Arquitectura de Android
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
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
Introducción a Android 22
Dalvik vs JVM
Dex = Dalvik Executable format
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)
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
Introducción a Android 27
Ciclo de vida de una Actividad
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
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, ...
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, ...
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
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
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'
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
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)
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
Introducción a Android 37
Patrón Publish-Subscribe (Publicador/Subscriptor)
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
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
Introducción a Android 40
¿Preguntas?