Home » Android » Arquitectura de Android

Arquitectura de Android

Las capas estructurales del sistema Android

En la figura siguiente se esquematiza el funcionamiento de Android y las capas que componen el sistema operativo Android.
Importante: Todas las capas que componen la arquitectura de Android están formadas por software libre.
El sistema operativo Android se puede subdividir en cuatro capas que encierran en conjunto sus cinco secciones principales:

  • Kernel Linux: Esta capa contiene los controladores de dispositivos de bajo nivel para los distintos componentes del hardware de un dispositivo Android. Por lo tanto, en esta capa se incluyen los servicios de seguridad, gestión de la memoria, gestión del procesador, la pila de protocolos, etc. El núcleo está formado a partir del sistema operativo Linux versión 2.6.
  • Bibliotecas: Contienen todo el código que suministran las principales funcionalidades del sistema operativo Android. Entre las principales bibliotecas se pueden mencionar:
  • SQLite: Sistema de gestión de base de datos relacionales. 
  • WebKit: Motor de navegación web que utiliza Android. Es la misma biblioteca que utiliza Google Chrome y Safari.
  • FreeType: Fuentes en mapas de bits y renderizado vectorial.
  • System C: Una biblioteca basada en BSD de C.
  • SGL: Motor de gráficos 2D. 
  • 3D: Bibliotecas basadas en OpenGL.
  • SSL: Servicios de cifrado Secure Socket Layer.

arquitectura_android


  • Runtime: En la misma capa que las bibliotecas se encuentra el tiempo de ejecución Android (runtime) que contiene las bibliotecas del núcleo que permiten que los dasarrolladores generen sus aplicaciones Android utilizando Java. También se incluye la máquina virtual Dalvik, con la que cada aplicación se puede ejecutar en un proceso independiente, con una instancia de la máquina virtual Dalvik. 
  • Las aplicaciones Android se compilan como ejecutables Dalvik. La máquina virtual Dalvik (a veces mal denominada máquina virtual Java, que es otra cosa y que utiliza un bytecode diferente) fue diseñada especialmente para Android y está optimizada para la utilización en dispositivos móviles alimentados por batería, con limitaciones de memoria y procesador, y con capacidad para trabajar con múltiples instancias de la máquina virtual.   La máquina virtual Dalvik usa el kernel de Linux del dispositivo para gestionar las funcionalidades de bajo nivel (es decir, seguridad, gestión de procesos y de la memoria). También se puede utilizar código C/C++ para interactuar al nivel máximo con el sistema operativo pero esta opción es rara vez necesaria dado que desde el código Java se puede hacer prácticamente todo. Cuando se exige un máximo nivel de velocidad y eficiencia se puede utilizar un kit de desarrollo nativo (NDK) que está diseñado para crear bibliotecas C++  usando libc y libm. 
Por las limitaciones de memoria y potencia del procesador de los dispositivos en donde se ejecuta Android no fue posible utilizar directamente la máquina virtual Java pero fue la base que inspiró el desarrollo de Dalvik.

 

  • Framework de aplicaciones: Esta capa contiene los gestores de las funcionalidades que utilizan los desarrolladores de aplicaciones para Android. Entre los que podemos citar (no es una lista completa):
  • Gestor de actividad: Controla el ciclo de vida de las actividades, la pila de actividades y de los fragmentos.
  • Gestor de notificaciones: Implementa un mecanismo para comunicarse con el usuario.
  • Gestor de recursos: Permite gestionar los recursos, por ejemplo, las cadenas o los gráficos.
  • Intentos: Es un mecanismo para transferir datos entre aplicaciones y sus componentes.
  • Proveedores de contenido: Es el subsistema que nos permite compartir datos.
  • Vista: Se utiliza para crear las interfaces de usuario de las actividades y fragmentos. 
  • Aplicaciones: En la capa superior de la pila se encuentran las aplicaciones que se integran en el dispositivo Android, así como también las aplicaciones de terceros que se incorporan mediante descarga o las desarrolladas por nosotros mismos.
Las aplicaciones Android se escriben en Java y se compilan en ejecutables Dalvik, que se utilizan en instancias de la máquina virtual Dalvik. ¿Pero qué es Dalvik?  Es la máquina virtual usada en los dispositivos Android con una serie de características que la diferencian de las máquinas virtuales JAVA utilizando un bytecode diferente. 

Uno de los factores para el éxito de un sistema operativo es la cantidad de aplicaciones que le dan soporte, ése es el caso de IPhone; por eso es importante que las herramientas de desarrollo estén a disposición de los desarrolladores y programadores, esto se facilita más aún cuando se trata de software de código abierto. Google dio un paso importante en esa dirección con la aplicación Market, preinstalada en cada dispositivo Android y que permite la descarga de aplicaciones de terceros de modo directo en el dispositivo. Existen aplicaciones  gratuitas y otras de pago; éstas últimas tienen ciertas restricciones legales en algunos países.
Otra particularidad de las aplicaciones de pago es que en algunos países los usuarios pueden adquirir aplicaciones desde Android Market pero los desarrolladores no pueden vender en ese país, mientras que en otros ocurre exactamente lo contrario, los desarrolladores pueden vender sus aplicaciones pero los usuarios no pueden comprarlas, tal es el caso de Corea del Sud (al menos en el momento en que se escriben estas líneas).

Todo el desarrollo con la plataforma Eclipse/Android es gratuito, sólo se debería pagar un importe mínimo para publicar en mecanismos de distribución de terceros, como Android Market, que, cabe señalar, tiene publicadas más de 250.000 aplicaciones.


 

izq sup der

Deja un comentario