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 los 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 de la CDD y los requisitos de software del proveedor (VSR) y pruebas como las de 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 con Android .

arquitectura AOSP

La pila de software para AOSP contiene las siguientes capas:

Arquitectura de pila de software AOSP.

Figura 1. Arquitectura de pila de software AOSP.

A continuación se incluye 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 usa mucho 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 de Android, consulte developers.android.com
aplicación privilegiada
Una aplicación creada con una combinación de las API de Android y del sistema. Estas aplicaciones deben estar preinstaladas como aplicaciones privilegiadas en un dispositivo.
Aplicación del fabricante del dispositivo
Una aplicación creada con una combinación de la API de Android, la API del sistema y el acceso directo a la implementación del marco de trabajo de Android. Debido a que un fabricante de dispositivos puede acceder directamente a las API inestables dentro del marco de Android, estas aplicaciones deben estar preinstaladas en el dispositivo y solo se pueden actualizar 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 Java, interfaces y otro código precompilado sobre el que se construyen las aplicaciones. Se puede acceder públicamente a partes del marco 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 trabajo de Android se ejecuta dentro del proceso de una aplicación.
Servicios del sistema
Los servicios del sistema son componentes modulares enfocados, como system_server , SurfaceFlinger y MediaService. La funcionalidad expuesta por la API del marco de trabajo de Android se comunica con los servicios del sistema para acceder al hardware subyacente.
Tiempo de ejecución de Android (ART)
Un entorno de tiempo 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 ejecuta el entorno de tiempo 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 para que la implementen los proveedores de hardware. Las HAL permiten que Android sea independiente de las implementaciones de controladores de nivel inferior. El uso de una HAL le permite implementar la funcionalidad sin afectar o modificar el sistema de nivel superior. Para obtener más información, consulte la descripción general de HAL .
Demonios nativos y bibliotecas

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 de 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 en un dispositivo. Siempre que sea posible, el núcleo 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 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 Comenzar .
  • 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.