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

Building beautiful apps using google flutter
Building beautiful apps using google flutterBuilding beautiful apps using google flutter
Building beautiful apps using google flutterAhmed Abu Eldahab
 
Ventajas y desvetajas de Android
Ventajas y desvetajas de AndroidVentajas y desvetajas de Android
Ventajas y desvetajas de AndroidGore Ochoa
 
Mobile DevOps pipeline using Google Flutter
Mobile DevOps pipeline using Google FlutterMobile DevOps pipeline using Google Flutter
Mobile DevOps pipeline using Google FlutterAhmed Abu Eldahab
 
Presentación open suse
Presentación open susePresentación open suse
Presentación open suseanyeline16
 
Build responsive applications with google flutter
Build responsive applications with  google flutterBuild responsive applications with  google flutter
Build responsive applications with google flutterAhmed Abu Eldahab
 
Kotlin: El despertar de la fuerza!
Kotlin: El despertar de la fuerza!Kotlin: El despertar de la fuerza!
Kotlin: El despertar de la fuerza!Marco Avendaño
 
Android's HIDL: Treble in the HAL
Android's HIDL: Treble in the HALAndroid's HIDL: Treble in the HAL
Android's HIDL: Treble in the HALOpersys inc.
 
Dart and Flutter Basics.pptx
Dart and Flutter Basics.pptxDart and Flutter Basics.pptx
Dart and Flutter Basics.pptxDSCVSSUT
 
Flutter: Future of App Development
Flutter: Future of App DevelopmentFlutter: Future of App Development
Flutter: Future of App Development9 series
 
Android Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - IntroductionAndroid Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - IntroductionAndreas Jakl
 
Apresentação dev ios
Apresentação dev iosApresentação dev ios
Apresentação dev iosFlavio Rabelo
 
Android Hacking
Android HackingAndroid Hacking
Android Hackingantitree
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to androidzeelpatel0504
 
Flutter latest updates and features 2022
Flutter latest updates and features 2022Flutter latest updates and features 2022
Flutter latest updates and features 2022Ahmed Abu Eldahab
 

La actualidad más candente (20)

Building beautiful apps using google flutter
Building beautiful apps using google flutterBuilding beautiful apps using google flutter
Building beautiful apps using google flutter
 
Ventajas y desvetajas de Android
Ventajas y desvetajas de AndroidVentajas y desvetajas de Android
Ventajas y desvetajas de Android
 
Sistema operativo android
Sistema operativo androidSistema operativo android
Sistema operativo android
 
Mobile DevOps pipeline using Google Flutter
Mobile DevOps pipeline using Google FlutterMobile DevOps pipeline using Google Flutter
Mobile DevOps pipeline using Google Flutter
 
Presentación open suse
Presentación open susePresentación open suse
Presentación open suse
 
Build responsive applications with google flutter
Build responsive applications with  google flutterBuild responsive applications with  google flutter
Build responsive applications with google flutter
 
Kotlin: El despertar de la fuerza!
Kotlin: El despertar de la fuerza!Kotlin: El despertar de la fuerza!
Kotlin: El despertar de la fuerza!
 
Android's HIDL: Treble in the HAL
Android's HIDL: Treble in the HALAndroid's HIDL: Treble in the HAL
Android's HIDL: Treble in the HAL
 
Dart and Flutter Basics.pptx
Dart and Flutter Basics.pptxDart and Flutter Basics.pptx
Dart and Flutter Basics.pptx
 
Flutter: Future of App Development
Flutter: Future of App DevelopmentFlutter: Future of App Development
Flutter: Future of App Development
 
Android Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - IntroductionAndroid Development with Kotlin, Part 1 - Introduction
Android Development with Kotlin, Part 1 - Introduction
 
Android seminar ppt
Android seminar pptAndroid seminar ppt
Android seminar ppt
 
What is Flutter
What is FlutterWhat is Flutter
What is Flutter
 
Entorno Grafico Kde
Entorno Grafico KdeEntorno Grafico Kde
Entorno Grafico Kde
 
Apresentação dev ios
Apresentação dev iosApresentação dev ios
Apresentação dev ios
 
Android Hacking
Android HackingAndroid Hacking
Android Hacking
 
Flutter introduction
Flutter introductionFlutter introduction
Flutter introduction
 
Presentacion Red Hat
Presentacion Red HatPresentacion Red Hat
Presentacion Red Hat
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Flutter latest updates and features 2022
Flutter latest updates and features 2022Flutter latest updates and features 2022
Flutter latest updates and features 2022
 

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
 
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
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3ERWIN AGUILAR
 
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
 
Curso android desarrollo de aplicaciones moviles
Curso android   desarrollo de aplicaciones movilesCurso android   desarrollo de aplicaciones moviles
Curso android desarrollo de aplicaciones moviles
 
Mdw guia-android-1.3
Mdw guia-android-1.3Mdw guia-android-1.3
Mdw guia-android-1.3
 
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?