Desarrollo android - 2 - arquitectura del sistema

9,587 views

Published on

Curso desarrollo apps Android - Capitulo 2 Arquitectura del Sistema

Published in: Technology
0 Comments
13 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
9,587
On SlideShare
0
From Embeds
0
Number of Embeds
1,558
Actions
Shares
0
Downloads
0
Comments
0
Likes
13
Embeds 0
No embeds

No notes for slide
  • Segundo tema (2)
    Veremos la arquitectura de Android & Android Market
  • Durará aproximadamente 45’-1hora
  • Comentar overview desde bottom a top
    * Linux Kernel 2.6: Abstracción del hardware
    * Librerias: c/c++ utilizadas por los componentes Android
    * Runtime: Core library + máquina virtual dalvik
    * Aplication framework: Plataforma reutilizable de desarrollo opensource
    * Application: app que corren en los dispositivos
    Las capas inferiores ofrecen servicios a las superiores
    Los colores representan lenguajes (C, C++, Java)
  • El usuario no ve el Linux (sólo a través adb Shell).
    Abstrae el software del hardware (Drivers…)
    La seguridad cada app un Linux User ID
  • Gingerbread 2.6.33 + Honeycomb en 2.6.35
    Ver Referencias: documentos entregables: REF003 – Linux
  • Escritas en C y C++.
    Se exponen (encapsulan) en el Application Framework con nombres JAVA (android.os…etc)
  • Cada app corre en un proceso con su propia Dalvik VM.
    Dalvik ha sido reescrita para ser eficiente (Multiple VM)
    Se apoya en Linux para hacer la gestión de memoria y threading.
  • Dalvik = Pueblo Islandia del Ingeniero Dan Bornstein
    La DalvikVM entiende DEX y está basada en registros (optimizado). JVM entiende de Pilas.
    Un .DEX incluye múltiples .class
  • Reutilización
  • * Las aplicaciones incluidas como vimos dependen del teléfono.
  • * La única revisión es si dañan dispositivos o privacidad
  • Cifras para contextualizar el mercado de las aplicaciones móviles.
    - Apple store cerca de 300.000 aplicaciones.
    - Android cerca de 140.000
  • -A nivel de crecimiento cuantitativo Android tiene mayor ritmo de crecimiento.
    -A nivel cualitativo Apple store cobra ventaja por el proceso de revisión.
  • -Android es el que más gratuitas tiene (2/3) frente a 1/3 del resto.
  • -Apple, Nokia y Android en el mismo rango.
    -RIM y Microsoft el doble, debido a que Blackberry app World y Windows Market Place (ojo no Windows Phone) Precio regulado & imponen precio mínimo.
  • -Tener el mayor número de dispositivo no implica tener el mayor numero de aplicaciones
    -Ejemplo Nokia con Symbian = 300 millones y solo 7000 apps
    -Apple con iPhone = 60 millones de aplicaciones y 300.000 apps
  • Las plataformas preferidas son Android , Apple… por que…
  • Lo mas motivante es:
    -mayor penetración de mercado
    (tienda app + comunidad)
    -ingresos potencias
  • Desarrollo android - 2 - arquitectura del sistema

    1. 1. 1 Desarrollo de aplicaciones móviles en Android
    2. 2. Índice 2 Historia ¿Qué es Android? Arquitectura del sistema Entorno de desarrollo Arquitectura de las aplicaciones Almacenamiento de datos Multimedia Práctica final
    3. 3. Objetivos 3 Arquitectura del sistema Analizar la arquitectura que compone el sistema operativo Android. Características de la máquina Dalvik. Conocer la principales librerías de incluidas en la plataforma Android. Framework aplicaciones Android. Características fundamentales del Android market.
    4. 4. Arquitectura Sistema 4
    5. 5. Arquitectura Sistema: Linux Kernel  Versión 2.6.x del kernel de Linux.  Capa de abstracción entre el hardware y el software.  Android aprovecha:  La seguridad.  Gestión de memoria.  Gestión de procesos.  Red y modelo de drivers. 5
    6. 6. Arquitectura Sistema: Linux Kernel (II)  Relación versiones Linux por versión Android 6 Versión Android Versión Linux Android 1.5 (Cupcake) 2.6.27 Android 1.6 (Donut) 2.6.29 Android 2.0 (Eclair) 2.6.29 Android 2.2 (Froyo) 2.6.32 Gingerbread 2.6.33
    7. 7. Arquitectura Sistema: Librerías Android  Conjunto de librerías (C & C++) usadas por varios componentes Android del sistema (Application Framework).  Surface Manager: Gestión del acceso a la pantalla.  Media Framework: Reproducción de imágenes, audio y video.  SQLite: Pequeña base de datos relacional.  WebKit: Navegador (Browser) optimizado.  SGL: Gráficos 2D.  Open GL | ES: Librerías 3D.  FreeType: Renderización de vectores e imágenes (bitmap). 7
    8. 8. Arquitectura Sistema: Android runtime Core Libraries: Formado por un conjunto de librerías base para ofrecer funcionalidad elemental y de bajo nivel, escritas en C y C++. Utiliza el Kernel de Linux para la ejecución de aplicaciones (1 aplicación = 1 proceso = 1 DVM) Máquina virtual Dalvik, con código preparado teniendo en cuenta la duración de las baterías y la limitación de memoria. 8
    9. 9. Arquitectura Sistema: Dalvik Virtual Machine  Condicionantes de los dispositivos móviles  Poca duración de la batería.  Recursos muy escasos (memoria, cpu).  Limitaciones visuales (pantallas poca resolución).  Compartición y priorización de recursos.  Características de la DVM  Usada en entornos con restricciones de memoria y procesador.  Herramienta dx convierte .class (clase o aplicación en JAVA) a dex.  Ejecuta aplicaciones en formato .dex (Dalvik EXecutable).  Permite la ejecución de varias instancias a la vez.  No es una JVM, no ejecuta bytecode sino registros.  Clases de Java ME, AWT o Swing no están soportadas. 9 .JAVA .CLASS .DEX javac dx JVM DVM
    10. 10. Arquitectura Sistema : Framework de aplicaciones Proporciona una plataforma abierta para el desarrollo que permite la reutilización de componentes. A través del framework, el desarrollador puede acceder a los dispositivos, información de ubicación, ejecutar servicios, etc,. Las aplicaciones del core utilizan este mismo APIs framework . Views, Content Providers, Managers... 10
    11. 11. Arquitectura Sistema: Capa de aplicaciones 11  En esta capa se ubicarán las aplicaciones ‘preinstaladas’ y las desarrolladas por el desarrollador .  Aplicaciones escritas en lenguaje JAVA.  Aplicaciones incluidas por defecto:  Cliente email  Gestor SMS  Navegador  Contactos  Android Market… .JAVA .CLASS .DEX javac dx JVM DVM
    12. 12. Arquitectura Sistema: Android Market  Permite distribuir aplicaciones de manera sencilla.  Cualquier desarrollador puede publicar en el Market, previo pago único de 25$.  Incluso aplicaciones no firmadas.  70% para el desarrollador / 30% para Google.  No se revisan las aplicaciones que se suben.  Selección a través de votaciones y comentarios.  Se pueden eliminar apps del market si dañan dispositivos, invasión de privacidad, etc.  Sólo en 9 países apps de pago.  <100k apps: 65% Gratuitas vs 35% Pago. 12
    13. 13. Cifras Tamaño de las tiendas Número total de apps Agosto 2010 - Distimo
    14. 14. Cifras Crecimiento tiendas trimestral Mayo 2010 - Distimo
    15. 15. Cifras Gratis vs De Pago Julio 2010 - Distimo
    16. 16. Cifras Comparativas de precio Precio medio app de pago (Distimo Mayo 2010)
    17. 17. Cifras ¡Tener el mayor número de aplicaciones no implica tener el mayor número de terminales… y viceversa!
    18. 18. Cifras Y los desarrolladores, ¿Qué plataforma prefieren?
    19. 19. Cifras Que les motiva a los desarrolladores para decantarse por una plataforma
    20. 20. Conclusiones 20 Arquitectura del sistema  Analizar la arquitectura que compone el sistema operativo Android.  Características de la máquina Dalvik.  Conocer la principales librerías de incluidas en la plataforma Android.  Framework aplicaciones Android.  Características fundamentales del Android market.

    ×