21
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

[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

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Samsung  Tech  Ins.tute  -­‐  UPM  Mayo  2014  

UPM  ©  2014   21  

Mayo  2014   41  

Mayo  2014   42