tema 4.1 introduccion android

38
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 <[email protected]>

Upload: carlos-iglesias

Post on 04-Dec-2014

1.313 views

Category:

Documents


4 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 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]>

Page 2: Tema 4.1 Introduccion Android

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

Page 3: Tema 4.1 Introduccion Android

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

Page 4: Tema 4.1 Introduccion Android

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

Page 5: Tema 4.1 Introduccion Android

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/

Page 6: Tema 4.1 Introduccion Android

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

Page 7: Tema 4.1 Introduccion Android

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

Page 8: Tema 4.1 Introduccion Android

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

Page 9: Tema 4.1 Introduccion Android

Introducción a Android 9

¿Qué es Android?

Page 10: Tema 4.1 Introduccion Android

Introducción a Android 10

Android

● 2007 – Creación de la Open Handset Alliance, liderada por Google

● 2009 – Primer terminal HTCG1

Page 11: Tema 4.1 Introduccion Android

Introducción a Android 11

Versiones de Android

Page 12: Tema 4.1 Introduccion 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)

Page 13: Tema 4.1 Introduccion Android

Introducción a Android 13

Versiones Android

Page 14: Tema 4.1 Introduccion Android

Introducción a Android 14

Distribución de versiones

http://developer.android.com/about/dashboards/index.html

Page 15: Tema 4.1 Introduccion Android

Introducción a Android 15

Aplicaciones de Android

Page 16: Tema 4.1 Introduccion 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

Page 17: Tema 4.1 Introduccion Android

Introducción a Android 17

Lecturas

● Wikipedia – Historia de Android:– http://es.wikipedia.org/wiki/Android

Page 18: Tema 4.1 Introduccion Android

Introducción a Android 18

Arquitectura de Android

Page 19: Tema 4.1 Introduccion Android

Introducción a Android 19

Arquitectura de Android

Page 20: Tema 4.1 Introduccion 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

Page 21: Tema 4.1 Introduccion Android

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

Page 22: Tema 4.1 Introduccion Android

Introducción a Android 22

Dalvik vs JVM

Dex = Dalvik Executable format

Page 23: Tema 4.1 Introduccion Android

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)

Page 24: Tema 4.1 Introduccion Android

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

Page 25: Tema 4.1 Introduccion Android

Introducción a Android 27

Ciclo de vida de una Actividad

Page 26: Tema 4.1 Introduccion Android

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

Page 27: Tema 4.1 Introduccion Android

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, ...

Page 28: Tema 4.1 Introduccion Android

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, ...

Page 29: Tema 4.1 Introduccion Android

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

Page 30: Tema 4.1 Introduccion Android

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

Page 31: Tema 4.1 Introduccion Android

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'

Page 32: Tema 4.1 Introduccion Android

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

Page 33: Tema 4.1 Introduccion Android

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)

Page 34: Tema 4.1 Introduccion Android

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

Page 35: Tema 4.1 Introduccion Android

Introducción a Android 37

Patrón Publish-Subscribe (Publicador/Subscriptor)

Page 36: Tema 4.1 Introduccion Android

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

Page 37: Tema 4.1 Introduccion Android

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

Page 38: Tema 4.1 Introduccion Android

Introducción a Android 40

¿Preguntas?