1. El núcleo de Linux: En la parte inferior está el kernel de Linux, una versión modificada específicamente adaptada para dispositivos móviles. Este kernel proporciona servicios de sistema básicos como administración de memoria, gestión de procesos, controladores de dispositivos (para pantalla, cámara, etc.) y redes. Es la base sobre la cual se construye todo lo demás.
2. Capa de abstracción de hardware (HAL): Esta capa se encuentra por encima del núcleo y actúa como intermediario entre el núcleo y el entorno de tiempo de ejecución de Android. Proporciona una interfaz estandarizada para los componentes de hardware, lo que permite a Android interactuar con diferentes configuraciones de hardware sin necesidad de reescribir para cada dispositivo. Esta abstracción permite la independencia del hardware en los niveles más altos de la pila de software.
3. Android Runtime (Art): Aquí es donde se ejecutan las aplicaciones de Android. Art (anteriormente Dalvik) es una máquina virtual que ejecuta aplicaciones de Android escritas en Java o Kotlin (compilada en Bytecode). Gestiona la asignación de memoria, la recolección de basura y la ejecución del código de la aplicación. El ART mejora el rendimiento en comparación con su predecesor, Dalvik, a través de la recopilación de anticipación.
4. Bibliotecas: Una colección de bibliotecas nativas proporciona servicios del sistema a las aplicaciones y el marco de Android. Estas bibliotecas proporcionan funcionalidades como gráficos (OpenGL), reproducción de medios, gestión de bases de datos (SQLITE) y redes.
5. Marco de Android: Esta capa proporciona un conjunto de API (interfaces de programación de aplicaciones) que los desarrolladores de aplicaciones pueden usar para acceder a los servicios del sistema y crear sus aplicaciones. Esto incluye cosas como componentes de la interfaz de usuario (botones, campos de texto, etc.), servicios de ubicación y acceso a la cámara.
6. Aplicaciones: Esta es la capa superior, donde residen todas las aplicaciones que usa. Estas aplicaciones se crean utilizando el marco de Android y se ejecutan dentro del arte. Esto incluye aplicaciones preinstaladas (como el marcador de teléfono y la aplicación de mensajería), así como las aplicaciones que descargue desde Google Play Store.
El flujo del proceso generalmente se ve así:
1. El usuario interactúa con una aplicación (por ejemplo, aprovecha un icono).
2. El sistema Android inicia la aplicación.
3. El código de la aplicación se ejecuta dentro del arte.
4. La aplicación utiliza el marco de Android para acceder a los servicios del sistema (por ejemplo, para mostrar información en la pantalla o acceder a la cámara).
5. El marco interactúa con las bibliotecas y el HAL para comunicarse con el hardware.
6. El kernel administra los recursos de hardware.
Conceptos clave para comprender la operación de Android:
* procesos: Cada aplicación se ejecuta en su propio proceso, proporcionando aislamiento y seguridad.
* hilos: Las aplicaciones pueden crear múltiples hilos para realizar tareas simultáneamente.
* intentos: Un mecanismo para la comunicación entre diferentes aplicaciones y componentes.
* Servicios: Procesos de fondo que se ejecutan independientemente de la interfaz de usuario.
* receptores de transmisión: Componentes que responden a los eventos de todo el sistema (por ejemplo, batería baja).
* Proveedores de contenido: Un mecanismo para compartir datos entre aplicaciones.
En resumen, la operación de Android es un baile cuidadosamente orquestado entre hardware, un kernel de Linux, un entorno de tiempo de ejecución, bibliotecas y aplicaciones, todo trabajando juntos para proporcionar una experiencia de usuario perfecta. La arquitectura en capas permite flexibilidad, escalabilidad y mantenibilidad.