Google se compromete a avanzar en la equidad racial para las comunidades negras. Ver cómo.
Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Arquitectura Android

arquitectura del sistema Android contiene los siguientes componentes:

Visión general de la arquitectura del sistema Android
Arquitectura del Sistema Figura 1. Android
  • Marco de la aplicación. El marco de aplicación es la más utilizada por los desarrolladores de aplicaciones. Como desarrollador de hardware, usted debe ser consciente de API para desarrolladores como muchos se asignan directamente a los interfaces de HAL subyacentes y puede proporcionar información útil acerca de la implementación de los conductores.
  • Carpeta IPC. El Communication (IPC) Carpeta mecanismo entre procesos permite que el marco de aplicación de límites de procesos transversales y llamada en el código de los servicios del sistema Android. Esto permite a las API de marco de alto nivel para interactuar con los servicios del sistema Android. A nivel de estructura de aplicaciones, esta comunicación se oculta a los desarrolladores y las cosas parece que "trabajar solo".
  • Servicios del sistema. Los servicios del sistema son componentes modulares, enfocado como gestor de ventanas, servicio de búsqueda, o Administrador de notificaciones. Funcionalidad expuesta por aplicación API marco se comunica con los servicios del sistema para acceder al hardware subyacente. Android incluye dos grupos de servicios: sistema (como administrador de ventanas y administración de notificación) y los medios de comunicación (servicios implicados en la reproducción y grabación de los medios de comunicación).
  • Capa de abstracción de hardware (HAL). Un HAL define una interfaz estándar para los proveedores de hardware para poner en práctica, lo que permite a Android para ser agnósticos sobre las implementaciones de controladores de nivel inferior. El uso de un HAL le permite implementar la funcionalidad sin afectar o modificar el sistema de nivel superior. implementaciones HAL se empaquetan en módulos y se cargan por el sistema Android en el momento apropiado. Para más detalles, véase abstracción de hardware (HAL) .
  • Kernel de Linux. El desarrollo de los controladores de dispositivo es similar al desarrollo de un controlador de dispositivo Linux típico. Usos Android una versión del kernel de Linux con algunas adiciones especiales como Killer memoria baja (un sistema de gestión de memoria que es más agresivo en la memoria preservando), cerraduras estela (una PowerManager servicio del sistema), el conductor Carpeta IPC, y otras características importantes para una plataforma móvil incrustado. Estas adiciones son principalmente para la funcionalidad del sistema y no afectan el desarrollo de controladores. Se puede utilizar cualquier versión del kernel con tal de que es compatible con las características requeridas (tales como el conductor ligante). Sin embargo, se recomienda utilizar la última versión del kernel de Android. Para más detalles, véase el Edificio núcleos .

HAL lenguaje de definición de interfaz (HIDL)

Android 8.0 rediseñado el marco de Android OS (en un proyecto conocido como agudos) para que sea más fácil, más rápido y menos costoso para los fabricantes de dispositivos para actualizar a una nueva versión de Android. En esta nueva arquitectura, el lenguaje de definición de interfaz de HAL (HIDL, pronunciado "ocultar-l") especifica la interfaz entre un HAL y sus usuarios, lo que permite el marco Android que ser reemplazado sin reconstruir los HAL.

HIDL separa la implementación del proveedor (dispositivo específico, el software de nivel inferior escrita por los fabricantes de silicio) a partir del marco de Android OS a través de una nueva interfaz de proveedor. Vendedores o fabricantes SOC construir HAL de una vez y colocarlos en un /vendor partición en el dispositivo; el marco, en su propia partición, puede entonces ser reemplazado con un over-the-air (OTA) actualización sin recompilar los HAL.

La diferencia entre el legado arquitectura de Android y la arquitectura actual, basada en HIDL está en el uso de la interfaz de proveedor:

  • En 7.x Android y versiones anteriores, no existe una interfaz de proveedor formal, por lo que los fabricantes de dispositivos deben actualizar grandes porciones del código de Android para mover un dispositivo a una versión más reciente de Android:

    Entorno de actualización Figura 2. Legado Android
  • En Android 8.0 y superior, una nueva interfaz de proveedor estable proporciona acceso a las piezas de hardware específicas de Android, por lo que los fabricantes de dispositivos pueden ofrecer las nuevas versiones de Android simplemente mediante la actualización del sistema operativo Android marco, sin trabajo adicional requerido de los fabricantes de silicio:

    Entorno de actualización Figura 3. Android actual

Todos los nuevos dispositivos de puesta a flote con Android 8.0 y superior pueden tomar ventaja de la nueva arquitectura. Para asegurar la compatibilidad hacia adelante de las implementaciones de los proveedores, la interfaz de proveedor es validado por el Test Suite Vendor (VTS) , que es análoga a la del conjunto de pruebas de compatibilidad (CTS) . Se puede utilizar para automatizar las pruebas VTS HAL y el kernel del sistema operativo en tanto heredados como las arquitecturas actuales de Android.

Arquitectura recursos

Para más detalles sobre la arquitectura de Android, consulte las siguientes secciones:

  • Tipos de HAL . Describe con un aglutinante, pasarela, el mismo proceso (SP), y HAL heredados.
  • HIDL (general) . Contiene información general sobre la interfaz entre un HAL y sus usuarios.
  • HIDL (C ++) . Contiene detalles para la creación de implementaciones de interfaces de HIDL C ++.
  • HIDL (Java) . Contiene información sobre la interfaz de Java para interfaces HIDL.
  • ConfigStore HAL . Describe las API de acceso a los elementos de configuración de sólo lectura se utilizan para configurar el marco Android.
  • Superposiciones de dispositivos de árbol . Proporciona información sobre el uso superposiciones árbol de dispositivos (DTO) en Android.
  • Kit de Desarrollo proveedor nativo (VNDK) . Describe el conjunto de bibliotecas de proveedores exclusiva para la aplicación HAL proveedores.
  • Objeto Vendor Interface (VINTF) . Describe los objetos que agregan información relevante sobre un dispositivo y hacer que la información disponible a través de un API consultable.
  • SELinux para Android 8.0 . Detalles SELinux cambia y personalizaciones.

Además de los recursos en este sitio, los miembros del equipo de agudos publicada Agudos: actualizaciones de software rápidas mediante la creación de un equilibrio en un software Ecosistema activa de las partes interesadas para difusión mundial . El documento es gratuito para los miembros de ACM y no miembros pueden comprar o leer el resumen.