miércoles, 8 de marzo de 2017

Arquitectura del S.O Android

¿QUÉ ES?

Android es un sistema operativo basado en el núcleo Linux. Fue diseñado principalmente para dispositivos móviles con pantalla táctil, como teléfonos inteligentes, tablets o tabléfonos; y también para relojes inteligentes, televisores y automóviles.



Veamos con más detalle qué contiene cada capa de la pila:

Kernel de Linux

El núcleo del sistema operativo Android es un kernel Linux versión 2.6.

Proporciona una capa de abstracción para los elementos hardware a los que tienen que acceder las aplicaciones. Esto permite que se pueda acceder a esos componentes sin necesidad de conocer el modelo o características precisas de los que están instalados en cada teléfono.

Para cada elemento hardware del teléfono existe un controlador (o driver) dentro del kernel que permite utilizarlo desde el software.

Además de proporcionar controladores hardware, el kernel se encarga de gestionar los diferentes recursos del teléfono (energía, memoria, …) y del sistema operativo en sí: procesos, elementos de comunicación (networking), etc.

Bibliotecas

La capa que se sitúa justo sobre el kernel la componen las bibliotecas nativas de Android (también mal llamadas librerías, por el término inglés libraries). Estas bibliotecas están escritas en C o C++ y compiladas para la arquitectura hardware específica del teléfono.

Su cometido es proporcionar funcionalidad a las aplicaciones, para tareas que se repiten con frecuencia, evitando tener que codificarlas cada vez y garantizando que se llevan a cabo de la forma más eficiente (en teoría, al menos).

Entorno de ejecución

No se considera una capa en sí mismo, dado que también está formado por bibliotecas.

El componente principal del entorno de ejecución de Android es la máquina virtual Dalvik, componente que ejecuta todas y cada una de las aplicaciones no nativas de Android se compilan en un formato específico para la máquina virtual Dalvik, que es la que las ejecuta.

No es compatible con el bytecode Java (instrucciones ejecutables independientes de la arquitectura hardware).

Marco de aplicación

La siguiente capa la forman todas las clases y servicios que utilizan directamente las aplicaciones para realizar sus funciones y que, obviamente, se apoyan en las bibliotecas y en el entorno de ejecución que ya hemos detallado. La mayoría de los componentes de esta capa son bibliotecas Java que acceden a los recursos a través de la máquina virtual Dalvik.

Aplicaciones

La capa superior de esta pila software la forman, como no podría ser de otra forma, las aplicaciones. En este saco se incluyen todas las aplicaciones del dispositivo, tanto las que tienen interfaz de usuario como las que no, tanto las nativas (programadas en C o C++) como las administradas (programadas en Java), tanto las que vienen de serie con el dispositivo como las instaladas por el usuario.

Aquí está también la aplicación principal del sistema: Inicio (Home), también llamada a veces lanzador (launcher), porque es la que permite ejecutar otras aplicaciones proporcionando la lista de aplicaciones instaladas y mostrando diferentes escritorios donde se pueden colocar accesos directos a aplicaciones o incluso pequeñas aplicaciones incrustadas o widgets, que son también aplicaciones de esta capa.

No hay comentarios.:

Publicar un comentario