Check the new version here

Popular channels

Android | Arquitectura






La Arquitectura de Android está compuesta por cinco Niveles:

  • Aplicaciones.

  • Entorno de la Aplicación.

  • Librerías Nativas.

  • Runtime de Android.

  • Núcleo Línux



En este nivel encontramos todas aquellas aplicaciones que ocupa el móvil, por ejemplo:

  • Inicio

  • Contactos

  • Teléfono

  • Navegador



Proporciona una plataforma de desarrollo libre para aplicaciones con gran riqueza e innovaciones (sensores,localización, servicios,barra de notificaciones).

Esta capa esta diseñada para simplificar la reutilización de componentes entre aplicaciones.
Una de las mayores fortalezas del entorno de aplicación Android es que se aprovecha el lenguaje de programación JAVA. Y aunque el Android SDK no soporta todo el entorno de ejecución de Java (JRE) es compatible con un buen porcentaje.

El marco Incluye:

  • Manejador de Actividades

  • Manejador de Ventanas

  • Manejador de Recursos

  • Content Providers

  • Sistema de Vistas

  • Manejador de Notificaciones


El núcleo incluye un conjunto de librerías en C/C++ usadas en varios componentes de Android. Están compiladas en código nativo del procesador. Muchas de las librerías utilizan proyectos de código abierto, algunas de estas librerías son las siguientes:

  • SystemC: Derivación de la librería BSD de C estándar (libc), adaptada para dispositivos embebidos basados en Linux.

  • WebKit: Motor de navegador web utilizado en Android y en la vista webview. Misma librería que utiliza Google Chrome y Safari.

  • Media Framework: Librería basada en PacketVideo’ssoporta codecsde reproducción y grabación de audio, video e imágenes MPEG4, H.2264, MP3, AAC, ARM, JPG y PNG.

  • SGL: Motor de gráficos 2D.

  • SSL: Proporciona servicios de encriptación Secure Socket Layer.

  • FreeType: Fuentes en bitmapy renderizadovectorial.

  • SQLite: Soporte para un potente y ligero motor de bases de datos relacionales disponible para todas las aplicaciones.

  • Surface manager: Gestiona el acceso al subsistema de representación gráfica 2D y 3D.

Otras:

  • OpenCore
  • OpenGL ES



Views System: Extenso conjunto de vistas (parte visual de los componentes).

Resource Manager: Proporciona acceso a recursos que no son en código.

Activity Manager: Maneja el ciclo de vida de las aplicaciones y proporciona un sistema de navegación entre ellas.

Notificación Manager: permite a las aplicaciones mostrar alertas personalizadas en la barra de estado.

Content Providers: Mecanismo sencillo para acceder a datos de otras aplicaciones (como por ejemplo contactos).


El Runtime de Android está basado en el concepto de máquina virtual utilizado en Java. Dado las limitaciones de los dispositivos dónde ha de correr Android (poca memoria y procesador limitado) no fue posible utilizar una máquina virtual Java estándar.

Google tomó la decisión de crear una nueva, la máquina virtual Dalvik, que respondiera mejor a estás limitaciones. Algunas características de la máquina virtual Dalvik que facilitan está optimización de recursos son: que ejecuta ficheros Dalvik ejecutables (.dex) - formato optimizado para ahorrar memoria. Además, está basada en registros.

Cada aplicación corre en su propio proceso Linux con su propia instancia de la máquina virtual Dalvik. Delega al kernel de Linux algunas funciones cómo threading y el manejo de la memoria a bajo nivel.

Sin embargo por las limitaciones de los dispositivos donde corre Android no fue posible utilizar la máquina virtual Java estándar. Por lo que en esta capa existe una versión de la máquina virtual java y un “corelibraries” con la mayoría de librerías disponibles en el lenguaje java.


La máquina Virtual Dalvik:

Fue muy necesario diseñar una nueva máquina virtual acorde a las limitaciones de memoria y procesamiento donde se ejecuta Android, así surgió la máquina virtual Dalvik.

Tiene características como:

  • Facilita la optimización de recursos.

  • Elementos ejecutables de extensión .dex.

  • Cada aplicación corre su propio proceso su propia instancia de la máquina virtual.

  • Delega al kernelLinux las tareas de Threading y manejo de memoria a bajo nivel.



El núcleo de Android esta formado por el sistema operativo Linux con versiones entre 2.6 y 3.1 en
la versión 4.0 de Android.
Sin embargo ya se habla de utilizar un kernel Linux versión 3.8 para Android 5.0.

Esta capa proporciona servicios como la seguridad, el manejo de memoria,
multiprocesamiento, la pila de protocolos y el soporte para los drivers de los dispositivos.
A demás, actúa como una capa de abstracción entre el hardware y el resto de la pila. Por lo tanto, es la única que es dependiente del hardware.





No te olvides seguirme


0No comments yet