SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
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>
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/c
urso-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/-/9781118
237229
– 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?

Más contenido relacionado

La actualidad más candente

Clase 2 Estructuras de Control
Clase 2 Estructuras de ControlClase 2 Estructuras de Control
Clase 2 Estructuras de ControlDesireé mart?ez
 
Introduccion sistemas operativos
Introduccion sistemas operativosIntroduccion sistemas operativos
Introduccion sistemas operativosdorysvalero
 
ESTRUCTURAS CONDICIONALES PARA. PSEINT
ESTRUCTURAS CONDICIONALES PARA. PSEINTESTRUCTURAS CONDICIONALES PARA. PSEINT
ESTRUCTURAS CONDICIONALES PARA. PSEINTJuanCardenas501369
 
Consultas multitabla clase
Consultas multitabla claseConsultas multitabla clase
Consultas multitabla claseAlejandra Vera
 
Cuadro Comparativo sobre Sistemas Operativos.
Cuadro Comparativo sobre Sistemas Operativos. Cuadro Comparativo sobre Sistemas Operativos.
Cuadro Comparativo sobre Sistemas Operativos. Juan Barrientos
 
Planificación de la CPU
Planificación de la CPUPlanificación de la CPU
Planificación de la CPUFernanda Soto
 
condiciones multiples y anidadas.pptx
condiciones multiples y anidadas.pptxcondiciones multiples y anidadas.pptx
condiciones multiples y anidadas.pptxAbelBlancoSoto
 
Herramientas De Control, Monitoreo Y Acceso A Base De Datos
Herramientas De Control, Monitoreo Y Acceso A Base De DatosHerramientas De Control, Monitoreo Y Acceso A Base De Datos
Herramientas De Control, Monitoreo Y Acceso A Base De DatosYazmin Ibarra
 
Tema01: Primeros Pasos en Access 2016
Tema01: Primeros Pasos en Access 2016Tema01: Primeros Pasos en Access 2016
Tema01: Primeros Pasos en Access 2016Jose Ramon Perez
 
Diseño de Interfaces
Diseño de InterfacesDiseño de Interfaces
Diseño de InterfacesWilly Aguirre
 
Reporte excel 2 continuación diseño de una factura en excel
Reporte excel 2 continuación diseño de una factura en excelReporte excel 2 continuación diseño de una factura en excel
Reporte excel 2 continuación diseño de una factura en excelAlberto Luna Castañeda
 

La actualidad más candente (20)

Clase 2 Estructuras de Control
Clase 2 Estructuras de ControlClase 2 Estructuras de Control
Clase 2 Estructuras de Control
 
Introduccion sistemas operativos
Introduccion sistemas operativosIntroduccion sistemas operativos
Introduccion sistemas operativos
 
SQLite
SQLiteSQLite
SQLite
 
ESTRUCTURAS CONDICIONALES PARA. PSEINT
ESTRUCTURAS CONDICIONALES PARA. PSEINTESTRUCTURAS CONDICIONALES PARA. PSEINT
ESTRUCTURAS CONDICIONALES PARA. PSEINT
 
EXCEL INTERMEDIO
EXCEL INTERMEDIOEXCEL INTERMEDIO
EXCEL INTERMEDIO
 
Pestañas de la Cinta de Opciones - Microsoft Excel 2013
Pestañas de la Cinta de Opciones - Microsoft Excel 2013Pestañas de la Cinta de Opciones - Microsoft Excel 2013
Pestañas de la Cinta de Opciones - Microsoft Excel 2013
 
Consultas multitabla clase
Consultas multitabla claseConsultas multitabla clase
Consultas multitabla clase
 
Cuadro Comparativo sobre Sistemas Operativos.
Cuadro Comparativo sobre Sistemas Operativos. Cuadro Comparativo sobre Sistemas Operativos.
Cuadro Comparativo sobre Sistemas Operativos.
 
Planificación de la CPU
Planificación de la CPUPlanificación de la CPU
Planificación de la CPU
 
condiciones multiples y anidadas.pptx
condiciones multiples y anidadas.pptxcondiciones multiples y anidadas.pptx
condiciones multiples y anidadas.pptx
 
Funcion si de excel
Funcion si de excelFuncion si de excel
Funcion si de excel
 
Herramientas De Control, Monitoreo Y Acceso A Base De Datos
Herramientas De Control, Monitoreo Y Acceso A Base De DatosHerramientas De Control, Monitoreo Y Acceso A Base De Datos
Herramientas De Control, Monitoreo Y Acceso A Base De Datos
 
Relojes
RelojesRelojes
Relojes
 
Microsoft Access
Microsoft AccessMicrosoft Access
Microsoft Access
 
Tema01: Primeros Pasos en Access 2016
Tema01: Primeros Pasos en Access 2016Tema01: Primeros Pasos en Access 2016
Tema01: Primeros Pasos en Access 2016
 
Diseño de Interfaces
Diseño de InterfacesDiseño de Interfaces
Diseño de Interfaces
 
Reporte excel 2 continuación diseño de una factura en excel
Reporte excel 2 continuación diseño de una factura en excelReporte excel 2 continuación diseño de una factura en excel
Reporte excel 2 continuación diseño de una factura en excel
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
Diseño de algoritmos
Diseño de algoritmosDiseño de algoritmos
Diseño de algoritmos
 
Sql Server
Sql ServerSql Server
Sql Server
 

Similar a Tema 4.1 Introduccion Android

Tema 4.2.2 Desarrollo con Android. El Framework de Android.
Tema 4.2.2 Desarrollo con Android. El Framework de Android.Tema 4.2.2 Desarrollo con Android. El Framework de Android.
Tema 4.2.2 Desarrollo con Android. El Framework de Android.Carlos A. Iglesias
 
Android como OpenSource
Android como OpenSourceAndroid como OpenSource
Android como OpenSourceAtictes
 
PRoYECTO::ISI::TECNOLOGÍAS DE DESARROLLO MÓVIL CON ANDROID SDK
PRoYECTO::ISI::TECNOLOGÍAS DE DESARROLLO MÓVIL CON ANDROID SDK PRoYECTO::ISI::TECNOLOGÍAS DE DESARROLLO MÓVIL CON ANDROID SDK
PRoYECTO::ISI::TECNOLOGÍAS DE DESARROLLO MÓVIL CON ANDROID SDK Quince de Junio MNR
 
Taller Práctico de Android
Taller Práctico de AndroidTaller Práctico de Android
Taller Práctico de AndroidJavier Muñoz
 
Introducción a la programación androide
Introducción a la programación androideIntroducción a la programación androide
Introducción a la programación androideJomicast
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3ERWIN AGUILAR
 
Curso android desarrollo de aplicaciones moviles
Curso android   desarrollo de aplicaciones movilesCurso android   desarrollo de aplicaciones moviles
Curso android desarrollo de aplicaciones movilesJose Antonio Prieto
 
Tema 4 3_1_interfaces_de_usuario
Tema 4 3_1_interfaces_de_usuarioTema 4 3_1_interfaces_de_usuario
Tema 4 3_1_interfaces_de_usuarioCarlos A. Iglesias
 
Curso de programacion en android
Curso de programacion en androidCurso de programacion en android
Curso de programacion en androidEscurra Walter
 
Tema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionTema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionCarlos A. Iglesias
 
Presentacion android mistela&tweets
Presentacion android mistela&tweetsPresentacion android mistela&tweets
Presentacion android mistela&tweetsJorge Soro
 

Similar a Tema 4.1 Introduccion Android (20)

Tema 4.2.2 Desarrollo con Android. El Framework de Android.
Tema 4.2.2 Desarrollo con Android. El Framework de Android.Tema 4.2.2 Desarrollo con Android. El Framework de Android.
Tema 4.2.2 Desarrollo con Android. El Framework de Android.
 
Introducción a Android
Introducción a AndroidIntroducción a Android
Introducción a Android
 
Tema 4 1_introduccion_android
Tema 4 1_introduccion_androidTema 4 1_introduccion_android
Tema 4 1_introduccion_android
 
Seminario Android inicial 2014
Seminario Android inicial 2014Seminario Android inicial 2014
Seminario Android inicial 2014
 
Android como OpenSource
Android como OpenSourceAndroid como OpenSource
Android como OpenSource
 
PRoYECTO::ISI::TECNOLOGÍAS DE DESARROLLO MÓVIL CON ANDROID SDK
PRoYECTO::ISI::TECNOLOGÍAS DE DESARROLLO MÓVIL CON ANDROID SDK PRoYECTO::ISI::TECNOLOGÍAS DE DESARROLLO MÓVIL CON ANDROID SDK
PRoYECTO::ISI::TECNOLOGÍAS DE DESARROLLO MÓVIL CON ANDROID SDK
 
Android studio
Android studioAndroid studio
Android studio
 
Taller Práctico de Android
Taller Práctico de AndroidTaller Práctico de Android
Taller Práctico de Android
 
Introducción a la programación androide
Introducción a la programación androideIntroducción a la programación androide
Introducción a la programación androide
 
Foda
FodaFoda
Foda
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3
 
Curso android desarrollo de aplicaciones moviles
Curso android   desarrollo de aplicaciones movilesCurso android   desarrollo de aplicaciones moviles
Curso android desarrollo de aplicaciones moviles
 
Tema 4 3_1_interfaces_de_usuario
Tema 4 3_1_interfaces_de_usuarioTema 4 3_1_interfaces_de_usuario
Tema 4 3_1_interfaces_de_usuario
 
Proyecto 1
Proyecto 1Proyecto 1
Proyecto 1
 
Adtg como realice el app en android - usmp
Adtg   como realice el app en android - usmpAdtg   como realice el app en android - usmp
Adtg como realice el app en android - usmp
 
Curso de programacion en android
Curso de programacion en androidCurso de programacion en android
Curso de programacion en android
 
Tema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacionTema 4.2 Desarrollo Android e instalacion
Tema 4.2 Desarrollo Android e instalacion
 
Curso Android 2021
Curso Android  2021Curso Android  2021
Curso Android 2021
 
Android Pres3
Android Pres3Android Pres3
Android Pres3
 
Presentacion android mistela&tweets
Presentacion android mistela&tweetsPresentacion android mistela&tweets
Presentacion android mistela&tweets
 

Más de Carlos A. Iglesias (20)

GSI Research Group Presentation
GSI Research Group PresentationGSI Research Group Presentation
GSI Research Group Presentation
 
Entorno PHP
Entorno PHPEntorno PHP
Entorno PHP
 
Bootstrap 3.
Bootstrap 3.Bootstrap 3.
Bootstrap 3.
 
Introducción CSS
Introducción CSSIntroducción CSS
Introducción CSS
 
Introducción HTML
Introducción HTMLIntroducción HTML
Introducción HTML
 
Presentación TEWC
Presentación TEWCPresentación TEWC
Presentación TEWC
 
UPM GSI Presentation
UPM GSI PresentationUPM GSI Presentation
UPM GSI Presentation
 
Introducción Análisis y Diseño
Introducción Análisis y DiseñoIntroducción Análisis y Diseño
Introducción Análisis y Diseño
 
PHP. Bases de Datos
PHP. Bases de DatosPHP. Bases de Datos
PHP. Bases de Datos
 
PHP. Tecnologías Web.
PHP. Tecnologías Web.PHP. Tecnologías Web.
PHP. Tecnologías Web.
 
1 intro php
1 intro php1 intro php
1 intro php
 
0 entorno php
0 entorno php0 entorno php
0 entorno php
 
Introducción TEWC
Introducción TEWCIntroducción TEWC
Introducción TEWC
 
Tema 4.3 Ejemplo sobre teleco
Tema 4.3 Ejemplo sobre telecoTema 4.3 Ejemplo sobre teleco
Tema 4.3 Ejemplo sobre teleco
 
Tema 4.4 Actividades
Tema 4.4 ActividadesTema 4.4 Actividades
Tema 4.4 Actividades
 
Tema 4.5 interfaces
Tema 4.5 interfacesTema 4.5 interfaces
Tema 4.5 interfaces
 
Tema 4.6 Intenciones
Tema 4.6 IntencionesTema 4.6 Intenciones
Tema 4.6 Intenciones
 
Tema 4.7 Acceso a datos
Tema 4.7 Acceso a datosTema 4.7 Acceso a datos
Tema 4.7 Acceso a datos
 
Tema 4.8 Preferencias
Tema 4.8 PreferenciasTema 4.8 Preferencias
Tema 4.8 Preferencias
 
Tema 4.9 Hebras
Tema 4.9 HebrasTema 4.9 Hebras
Tema 4.9 Hebras
 

Tema 4.1 Introduccion Android

  • 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
  • 4. 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
  • 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
  • 9. Introducción a Android 9 ¿Qué es Android?
  • 10. Introducción a Android 10 Android ● 2007 – Creación de la Open Handset Alliance, liderada por Google ● 2009 – Primer terminal HTCG1
  • 11. Introducción a Android 11 Versiones de Android
  • 12. 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)
  • 13. Introducción a Android 13 Versiones Android
  • 14. Introducción a Android 14 Distribución de versiones http://developer.android.com/about/dashboards/index.html
  • 15. Introducción a Android 15 Aplicaciones de Android
  • 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
  • 18. Introducción a Android 18 Arquitectura de Android
  • 19. Introducción a Android 19 Arquitectura de 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
  • 22. Introducción a Android 22 Dalvik vs JVM Dex = Dalvik Executable format
  • 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
  • 25. Introducción a Android 27 Ciclo de vida de una Actividad
  • 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
  • 35. Introducción a Android 37 Patrón Publish-Subscribe (Publicador/Subscriptor)
  • 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
  • 38. Introducción a Android 40 ¿Preguntas?