Descripción general de la arquitectura

La plataforma de sistema abierto de Android (AOSP) es un código fuente de Android modificable y disponible públicamente. Cualquiera puede descargar y modificar AOSP para su dispositivo. AOSP proporciona una implementación completa y totalmente funcional de la plataforma móvil Android.

Hay dos niveles de compatibilidad para dispositivos que implementan AOSP: compatibilidad con AOSP y compatibilidad con Android. Un dispositivo compatible con AOSP debe cumplir con la lista de requisitos del Documento de definición de compatibilidad (CDD) . Un dispositivo compatible con Android debe cumplir con la lista de requisitos en CDD y Requisitos de software del proveedor (VSR) y pruebas como las del Vendor Test Suite (VTS) y Compatibility Test Suite (CTS) . Para obtener más información sobre la compatibilidad con Android, consulte el programa de compatibilidad de Android .

Arquitectura AOSP

La pila de software para AOSP contiene las siguientes capas:

Arquitectura de pila de software AOSP.

Figura 1. Arquitectura de la pila de software AOSP.

A continuación se muestra una lista de definiciones de los términos utilizados en la Figura 1:

aplicación Android
Una aplicación creada únicamente con la API de Android. Google Play Store se utiliza ampliamente para buscar y descargar aplicaciones de Android, aunque existen muchas otras alternativas. En algunos casos, es posible que el fabricante de un dispositivo desee preinstalar una aplicación de Android para admitir la funcionalidad principal del dispositivo. Si está interesado en desarrollar aplicaciones para Android, consultedevelopers.android.com.
Aplicación privilegiada
Una aplicación creada utilizando una combinación de las API del sistema y de Android. Estas aplicaciones deben estar preinstaladas como aplicaciones privilegiadas en un dispositivo.
Aplicación del fabricante del dispositivo
Una aplicación creada utilizando una combinación de la API de Android, la API del sistema y acceso directo a la implementación del marco de trabajo de Android. Debido a que un fabricante de dispositivos puede acceder directamente a API inestables dentro del marco de Android, estas aplicaciones deben estar preinstaladas en el dispositivo y solo pueden actualizarse cuando se actualiza el software del sistema del dispositivo.
API del sistema
La API del sistema representa las API de Android disponibles solo para socios y OEM para su inclusión en aplicaciones empaquetadas. Estas API están marcadas como @SystemApi en el código fuente.
API de Android
La API de Android es la API disponible públicamente para desarrolladores de aplicaciones de Android de terceros. Para obtener información sobre la API de Android, consulte la referencia de la API de Android .
marco de Android
Un grupo de clases, interfaces y otro código precompilado de Java sobre el que se crean las aplicaciones. Algunas partes del marco son accesibles públicamente mediante el uso de la API de Android. Otras partes del marco están disponibles solo para los OEM mediante el uso de las API del sistema. El código del marco de Android se ejecuta dentro del proceso de una aplicación.
Servicios del sistema
Los servicios del sistema son componentes modulares y enfocados, como system_server , SurfaceFlinger y MediaService. La funcionalidad expuesta por la API del marco de Android se comunica con los servicios del sistema para acceder al hardware subyacente.
Tiempo de ejecución de Android (ART)
Un entorno de ejecución de Java proporcionado por AOSP. ART realiza la traducción del código de bytes de la aplicación en instrucciones específicas del procesador que son ejecutadas por el entorno de ejecución del dispositivo.
Capa de abstracción de hardware (HAL)
Una HAL es una capa de abstracción con una interfaz estándar que deben implementar los proveedores de hardware. Los HAL permiten que Android sea independiente de las implementaciones de controladores de nivel inferior. El uso de un HAL le permite implementar funciones sin afectar ni modificar el sistema de nivel superior. Para obtener más información, consulte la descripción general de HAL .
Bibliotecas y demonios nativos

Los demonios nativos en esta capa incluyen init , healthd , logd y storaged . Estos demonios interactúan directamente con el kernel u otras interfaces y no dependen de una implementación HAL basada en el espacio de usuario.

Las bibliotecas nativas en esta capa incluyen libc , liblog , libutils , libbinder y libselinux . Estas bibliotecas nativas interactúan directamente con el kernel u otras interfaces y no dependen de una implementación HAL basada en el espacio de usuario.

Núcleo

El kernel es la parte central de cualquier sistema operativo y se comunica con el hardware subyacente de un dispositivo. Siempre que sea posible, el kernel AOSP se divide en módulos independientes del hardware y módulos específicos del proveedor. Para obtener una descripción, incluidas las definiciones, de los componentes del kernel de AOSP, consulte la descripción general del kernel .

¿Que sigue?

  • Si es nuevo en AOSP y desea comenzar con el desarrollo, consulte la sección Introducción .
  • Si desea obtener más información sobre una capa específica de AOSP, haga clic en el nombre de la sección en la navegación izquierda y comience con la descripción general de esa sección.