Categorías
Tecnología

Arquitectura de Android

El sistema operativo de Android puede dividirse por sus componentes, que forman lo que podemos llamar la Arquitectura de Android. Básicamente podríamos dividir cada “capa” así:

  • Kernel de Linux: Este es el núcleo del sistema operativo. La parte más básica para que cualquier máquina empiece a funcionar.
  • Runtime de Android: Esta parte es la que conecta el propio núcleo del sistema operativo con las funciones más primitivas de cada dispositivo funcione.
  • Librerías o Bibliotecas: Son una parte de código fuente que ayudan a los programadores a simplificar la conexión con algunos componentes de alto nivel de los dispositivos (bases de datos, multimedia, internet, etc).
  • Framework de Aplicaciones: Son una serie de bibliotecas nativas a la que tienen acceso los programadores para acceder a funcionalidades como la ubicación, el propio teléfono u otras.
  • Aplicaciones: Son las aplicaciones base de cualquier dispositivo, como pueden ser un calendario, un navegador, el cliente de correo electrónico o una app para la gestión de mensajes SMS.

Vamos a ver un poco más en detalle cada una a continuación.

Kernel Linux

Android depende del sistema operativo Linux para la parte de más bajo nivel (esto en informática significa algo así como “el nivel más cercano a la máquina”). Es una capa entre el propio hardware de cada máquina y el resto de partes de la arquitectura de android.

Entre estos servicios más básicos destacarían:

  • El de seguridad.
  • Gestión de memoria.
  • Gestión de procesos.
  • La pila de Red.
  • El modelo de controladores.

Runtime de Android

Esta parte de la arquitectura proporciona un juego de bibliotecas de código para acceder a bibliotecas Java. Es cierto que a través de Java nativo se podrían diseñar apps en cualquier dispositivo, si bien, debido a que se necesita ahorrar recursos y mejorar el rendimiento de las aplicaciones, Android utiliza Dalvik (DVM), una máquina virtual que permite ejecutar aplicaciones en Java. 

La DVM utiliza muy poca memoria y se puede ejecutar en varias instancias (en varios procesos en paralelo), dejando al propio sistema operativo el aislamiento de procesos, los hilos y la gestión de memoria.

Bibliotecas

En este nivel de arquitectura hay un conjunto de librerías de C/C++ que permiten simplificar de manera notable el trabajo de los desarrolladores. Entre ellas podríamos destacar las siguientes:

  • System C library, la librería estándar C.
  • La biblioteca de medios.
  • Las bibliotecas de gráficos.
  • La librería de 3D.
  • La librería para acceso a bases de datos SQLite.

Marco de aplicaciones o Framework

Suele utilizarse el término inglés Framework para referirse a este núcleo de funciones de programación al que tienen acceso los desarrolladores. De esta forma se permite la reutilización de código y su modularización.

Aplicaciones

Esta es la parte más básica del sistema operativo de cara al usuario final. Mediante ellas, se puede utilizar de manera sencilla e intuitiva cualquier dispositivo.

Las más comunes son:

  • Uso de teléfono.
  • Acceso a contactos.
  • Navegador de internet.

Por supuesto, cada fabricante puede modificar esta configuración inicial e instalar las que prefieran.

Cambios en la arquitectura de Android

Aunque podríamos decir que la arquitectura de este sistema operativo ha sido básicamente inalterable a lo largo del tiempo, podríamos hablar de una excepción a partir de la versión 5.0. En este cambio desaparece Dalvik de la capa del runtime de Android, para dejar a este ese cometido a través de ART.

También en la versión 8.0 (Oreo) se introdujo el concepto de Project Temble, por el cual se separaba la capa del propio sistema operativo de la de los drivers del fabricante. ¿Qué se conseguía con eso? Varias cosas:

  1. Que Android no se siguiese framentando.
  2. Que las actualizaciones de sistema fuesen mucho más rápidos.

Como has visto Android está muy bien estructurado en cuanto a su arquitectura.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *