1. Análisis y Diseño
de Software
Introducción a
Android
Carlos A. Iglesias <cif@gsi.dit.upm.es>
Departamento de Ingeniería de Sistemas Telemáticos
http://moodle.dit.upm.es
2. Leyenda
Teoría
Ejercicio práctico en el ordenador
Ampliación de conocimientos
Lectura / Vídeo / Podcast
Práctica libre / Experimentación
Introducción a Android 2
3. Temario
● 4.1 Introducción a Android [Gar10,
cap1-2 ]
● 4.2 Desarrollo con Android [Gar10,
cap3-5]
● 4.3 Interfaces de Usuario [Gar10, cap6]
● 4.4 Intenciones [Gar10, cap7-8]
● 4.5 Acceso a Datos [Gar10, cap9]
Introducción a Android 3
4. Bibliografía (I)
● Libro de texto:
– [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
Introducción a Android 4
5. 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 5
6. Objetivos
● Conocer qué es Android:
– Su origen y evolución
– Su arquitectura
– Cómo se ejecuta
Introducción a Android 6
13. 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 13
14. Lecturas
● Wikipedia – Historia de Android:
– http://es.wikipedia.org/wiki/Android
Introducción a Android 14
16. Arquitectura de Android
● El sistema operativo Android tiene varias capas:
– Kernel de Linux
– Bibliotecas: bibliotecas en C/C++ (SSL, OpenGL, …)
• Máquina virtual Dalvik
– 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 16
17. 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 17
18. Dalvik vs JVM
Dex = Dalvik Executable format
Introducción a Android 18
19. Arquitectura Software
“La arquitectura del Software define un
sistema a partir de los componentes y las
interacciones entre dichos componentes”
Shaw and Garlan, Software Architecture, Perspectives on an Emerging Discipline,
Prentice-Hall, 1996
Introducción a Android 19
20. Arquitectura / Diseño
● Cuando nos enfrentamos con un
problema, la primera decisión es qué
componentes (paquetes, clases, …)
resolverán el problema.
● Es complejo identificar el conjunto que
permitirá añadir más funcionalidades en el
futuro con poco esfuerzo.
Introducción a Android 20
21. 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 21