[2014] android 00 introducciónabraham.etsisi.upm.es/samsung-tech/android/[2015... · – basado en...
TRANSCRIPT
![Page 1: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/1.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 1
Mayo 2014 1
DESARROLLO DE APLICACIONES EN ANDROID
Abraham Gu.érrez Rodríguez
Mayo 2014 2
Abraham Gu.érrez Rodríguez
![Page 2: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/2.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 2
Mayo 2014 3
• Android ES: – Una plataforma de desarrollo software para
dispositivos móviles. – Incluye un sistema operativo, el middleware
necesario y un conjunto de aplicaciones. – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de Apache Software License.
Mayo 2014 4
– El SDK de Android, provee de herramientas y APIs necesarios para comenzar a desarrollar aplicaciones en la plataforma Android.
– Su objetivo es abstraer el hardware y facilitar el desarrollo de nuevas aplicaciones.
– Permite el desarrollo de aplicaciones por terceros (personas ajenas a Google) con 2 modalidades: • Lenguaje de programación Java a través de SDK. • Uso de la NDK (Native Development Kit) de Google para
hacer el desarrollo en lenguaje C como código fuente.
![Page 3: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/3.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 3
Mayo 2014 5
• Android NO ES: – Únicamente un dispositivo móvil. – Una implementación JAVA ME. – Una marca de telefonía, ni depende de ningún
fabricante. – La respuesta de Google al iPhone.
Mayo 2014 6
![Page 4: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/4.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 4
Mayo 2014 7
• Open Handset Alliance (OHA)
Mayo 2014 8
![Page 5: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/5.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 5
Mayo 2014 9
Mayo 2014 10
![Page 6: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/6.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 6
Mayo 2014 11
Mayo 2014 12
![Page 7: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/7.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 7
Mayo 2014 13
Mayo 2014 14
![Page 8: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/8.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 8
Mayo 2014 15
Mayo 2014 16
• Conectividad – Navegador integrado: basado en el motor open
Source Webkit. – Telefonía GSM: dependiente del terminal. – Blueetooth, EDGE, 3G, 4GLTE y Wifi: dependiente
del terminal.
![Page 9: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/9.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 9
Mayo 2014 17
• Software – Framework de aplicaciones: permite el reemplazo
y la reutilización de los componentes. Contiene emulador, debugger, herramientas de profiling…
– SQlite: base de datos para almacenamiento estructurado que se integra directamente con las aplicaciones.
– Gráficos optimizados con OpenGL ES (3.1 en API 21)
– Máquina virtual Dalvik/ART.
Mayo 2014 18
• Hardware y multimedia – Cámara, GPS, brújula y acelerómetro: Dependiente
del terminal – Pantalla Táctil. – Multimedia: Soporte para medios con formatos
comunes de audio, video e imágenes planas (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF).
![Page 10: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/10.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 10
Mayo 2014 19
Mayo 2014 20
![Page 11: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/11.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 11
Mayo 2014 21
Mayo 2014 22
![Page 12: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/12.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 12
Mayo 2014 23
Mayo 2014 24
![Page 13: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/13.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 13
Mayo 2014 25
• La arquitectura está diseñada para simplificar la reutilización de componentes; cualquier aplicación puede publicar sus capacidades y cualquier otra aplicación puede luego hacer uso de esas capacidades – Sujeto a reglas de seguridad del framework.
• Éste mismo mecanismo permite que los componentes sean reemplazados por el usuario.
Mayo 2014 26
• Aplicaciones – Las aplicaciones base incluirán: un cliente de email,
gestor de SMS, calendario, mapas, navegador, contactos y otros.
– Todas las aplicaciones escritas en el lenguaje de programación Java.
![Page 14: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/14.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 14
Mayo 2014 27
• Framework de aplicaciones – Los desarrolladores tienen acceso completo a los
mismos APIs del framework usados por las aplicaciones base.
Mayo 2014 28
• Librerías – Android incluye un set de librerías C/C++ usadas
por varios componentes del sistema Android. • System C library (implementación librería C standard),
librerías de medios, librerías de gráficos, 3d, SQLite…
![Page 15: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/15.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 15
Mayo 2014 29
• Runtime de Android – Android incluye un set de librerías base que proveen
la mayor parte de las funcionalidades disponibles en las librerías base del lenguaje de programación Java.
– Cada aplicación Android corre su propio proceso, con su propia instancia de la máquina virtual Dalvik/ART.
La máquina virtual ha sido escrito de forma que un dispositivo puede correr múltiples máquinas virtuales de forma eficiente.
Mayo 2014 30
• Runtime de Android (Dalvik ) – Ejecuta archivos en el formato Dalvik Executable
(.dex), el cual está optimizado para memoria mínima. – La Máquina Virtual está basada en registros, y corre
clases compiladas por el compilador de Java que han sido transformadas al formato (.dex) por la herramienta incluida "dx".
– No es una JVM, no ejecuta bytecode. – Clases de Java ME, AWT o Swing no están
soportadas.
![Page 16: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/16.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 16
Mayo 2014 31
¨ Ru
n.me de
And
roid
APK = Ejecutable Dalvik + Re
cursos
Mayo 2014 32
• Runtime de Android (ART) – Escrita en C++ a diferencia de Dalvik que utiliza Java. – A diferencia de Dalvik, que utiliza compilación ”Just- In-
Time" (JIT) para compilar el código de bytes cada vez que se inicia una aplicación, ART introduce el uso de “Ahead-‐Of-‐Time (AOT), precompilación en tiempo de instalación.
– ART u.liza el mismo código de bytes de entrada de Dalvik, suministrada a través de archivos .dex estándar como parte de los archivos APK, mientras que los archivos .odex se reemplazan con ejecutables de Formato Ejecutable y Enlazable (ELF)
![Page 17: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/17.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 17
Mayo 2014 33
• Hasta la vista Dalvik, hola ART
Mayo 2014 34
• Núcleo - Linux – Android depende de Linux para los servicios base
del sistema como seguridad, gestión de memoria, gestión de procesos, red, HAL y modelo de drivers.
![Page 18: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/18.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 18
Mayo 2014 35
• Núcleo – Linux – Se han eliminado algunas de las carácterísticas de Linux:
no hay soporte para GBLIC, se han eliminado el sistema de ventanas nativo y algunas de las utilidades.
– Se han añadido componentes específicos: Alarm, Android Shared Memory, Logger, Kernel Debugger…
Mayo 2014 36
¨ Inicialización de
la plataform
a
![Page 19: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/19.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 19
Mayo 2014 37
Mayo 2014 38
![Page 20: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/20.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 20
Mayo 2014 39
Mayo 2014 40
![Page 21: [2014] Android 00 Introducciónabraham.etsisi.upm.es/Samsung-Tech/Android/[2015... · – Basado en el núcleo de Linux. – Es una plataforma de código abierto. • Version 2 de](https://reader034.vdocuments.mx/reader034/viewer/2022042310/5ed72df0c30795314c17582b/html5/thumbnails/21.jpg)
Samsung Tech Ins.tute -‐ UPM Mayo 2014
UPM © 2014 21
Mayo 2014 41
Mayo 2014 42