Descripción general de la arquitectura

El Proyecto de código abierto de Android (AOSP) está disponible públicamente y se puede modificar. Código fuente de Android Cualquier persona puede descargar y modificar el AOSP para su dispositivo. AOSP proporciona una implementación completa y funcional del modelo de código para dispositivos móviles plataforma.

Hay dos niveles de compatibilidad para los dispositivos que implementan AOSP: AOSP. y Android. Un dispositivo compatible con el AOSP debe cumplir con la lista de requisitos del Documento de definición de compatibilidad (CDD). Los Los dispositivos compatibles con Android deben cumplir con la lista de requisitos del CDD. y los Requisitos de software del proveedor (VSR), y pruebas como las de la Paquete de pruebas de proveedores (VTS) y Conjunto de pruebas de compatibilidad (CTS). Para obtener más para obtener más información sobre la compatibilidad de Android, consulta la Programa de compatibilidad de Android.

Arquitectura del AOSP

La pila de software para AOSP incluye 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 usados en la Figura 1:

App para Android
Una app creada solo con la API de Android. Google Play Store se usa mucho para buscar y descargar apps de Android, aunque existen muchas otras alternativas. En algunos casos, el fabricante de un dispositivo podría querer preinstalar una app de Android para admitir la funcionalidad principal del dispositivo. Si si te interesa desarrollar apps para Android, consulta developers.android.com.
App privilegiada
Es una app creada con una combinación de las APIs del sistema y de Android. Estas apps Deben estar preinstaladas como apps con privilegios en un dispositivo.
App del fabricante del dispositivo
Una app creada con una combinación de la API de Android, la API del sistema y las operaciones acceso a la implementación del framework de Android. Porque un fabricante de dispositivos podrían acceder directamente a APIs inestables en el framework de Android, estas apps debe estar preinstalada en el dispositivo y solo se puede actualizar cuando se instala se actualice el software del sistema.
API del sistema
La API del sistema representa las APIs de Android disponibles solo para socios y OEM para la inclusión en aplicaciones empaquetadas. Estas APIs están marcadas como @SystemApi. en el código fuente.
API de Android
La API de Android es la API disponible públicamente para las apps para Android de terceros desarrolladores. Para obtener información sobre la API de Android, consulta Referencia de la API de Android.
Framework de Android
Grupo de clases, interfaces y otros códigos precompilados de Java sobre los que cómo se compilan las apps. Algunas partes del marco son de acceso público a través de la el uso de la API de Android. Otras partes del framework se solo están disponibles para los OEM mediante el uso de las APIs del sistema. En Android el código del framework se ejecuta en el proceso de una app.
Servicios del sistema
Los servicios del sistema son componentes modulares y enfocados, como system_server, SurfaceFlinger y MediaService. Funcionalidad que expone la API del framework de Android se comunica con los servicios del sistema para acceder al hardware subyacente.
Tiempo de ejecución de Android (ART)
Entorno de ejecución de Java proporcionado por el AOSP. ART lleva a cabo traducción del código de bytes de la app a instrucciones específicas para el procesador que ejecuta 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 para proveedores de hardware. para implementarlo. Las HAL permiten que Android sea independiente del controlador de nivel inferior. de Google Cloud. Usar una HAL te permite implementar funcionalidades sin afectar o modificar el sistema de nivel superior. Para obtener más información, consulta la descripción general de HAL.
Daems y bibliotecas nativos

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

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

Kernel

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

¿Qué sigue?

  • Si recién comienzas a usar el AOSP y quieres comenzar a desarrollar, consulta la sección Cómo comenzar.
  • Para obtener más información sobre una capa específica del AOSP, haz clic en en el panel de navegación izquierdo y comienza con la descripción general de esa sección.