Una capa de abstracción de hardware (HAL) es un tipo de capa de abstracción con una para que los proveedores de hardware la implementen. La HAL permite que el hardware proveedores para implementar funciones de nivel inferior, específicas del dispositivo, sin afectar ni y modificar el código en capas de nivel superior.
Términos requeridos
A continuación, se incluye una lista de las definiciones de los términos usados en esta sección del documentación:
- Lenguaje de definición de la interfaz de Android (AIDL)
- Un lenguaje similar a Java que se usa para definir interfaces de forma independiente del el lenguaje de programación que se usa. El AIDL permite la comunicación entre Clientes y servicios de HAL
- HAL enlazado
- Una HAL que se comunica con otros procesos mediante comunicación entre procesos (IPC) de Binder llamadas. Las HAL enlazadas se ejecutan en un proceso independiente del cliente que las usa. Las HAL enlazadas se registran con un administrador de servicios para que los clientes puedan acceder a sus capacidades. Las HAL escritas para Android 8 y versiones posteriores son en formato vinculante.
- Cliente HAL
- Es el proceso que accede al servicio de HAL.
- Interfaz del HAL
- Es la interfaz común que usan el cliente y el servicio de HAL para la comunicación.
- Servicio HAL
El código específico de hardware, como el que lleva a tu la cámara del dispositivo. Debes implementar todas las HAL obligatorias que se indican en el de compatibilidad para la versión a la que te orientas en la partición de proveedor. Para obtener más información sobre las matrices de compatibilidad, consulta Matrices de compatibilidad.
También puedes crear una nueva interfaz de HAL o extender la interfaz de una HAL para admiten las capacidades únicas de tu hardware.
- Lenguaje de definición de la interfaz de hardware (HIDL)
Lenguaje usado para definir interfaces de manera que sea independiente del el lenguaje de programación utilizado. HIDL permite la comunicación entre Clientes y servicios de HAL.
- HAL del mismo proceso (SP)
Un conjunto restringido de HALs unidas. La membresía del conjunto se controla mediante Google. Entre las HAL del SP, se incluyen las siguientes:
- HAL de C Mapper 5 estable
- OpenGL
- Vulkan
- android.hidl.memory@1.0 (proporcionada por el sistema Android, siempre unida)
- android.hardware.renderscript@1.0
- HAL unida
Un servicio HAL creado antes de Android 8, pero que se unió a una Wrapper de HIDL o AIDL para que funcione con Android 8 y versiones posteriores
¿Qué sigue?
- Para obtener información sobre cómo implementar un servicio de HAL, consulta AIDL para HAL:
- Para aprender a crear o extender una HAL existente, consulta a Interfaces extendidas conectadas.