Уровень абстракции оборудования (HAL) — это тип уровня абстракции со стандартным интерфейсом для реализации поставщиками оборудования. HAL позволяет поставщикам оборудования реализовывать функции более низкого уровня, специфичные для устройств, не затрагивая и не изменяя код в слоях более высокого уровня.
Требуемые термины
Ниже приведен список определений терминов, используемых в этом разделе документации:
- Язык определения интерфейса Android (AIDL)
- Похожий на Java язык, используемый для определения интерфейсов способом, который не зависит от используемого языка программирования. AIDL обеспечивает связь между клиентами HAL и службами HAL.
- Связанный HAL
- HAL, который взаимодействует с другими процессами с помощью вызовов межпроцессного взаимодействия (IPC) связующего. Связанные HAL запускаются в отдельном процессе от клиента, который их использует. Связанные HAL регистрируются в диспетчере служб, чтобы клиенты могли получить доступ к их возможностям. HAL, написанные для Android 8 и выше, являются связанными.
- HAL-клиент
- Процесс, обращающийся к службе HAL.
- HAL-интерфейс
- Общий интерфейс, используемый как клиентом HAL, так и службой для связи.
- HAL-сервис
Код, специфичный для оборудования, например, код, который взаимодействует с камерой вашего конкретного устройства. Вы должны реализовать все требуемые HAL, перечисленные в матрице совместимости для целевого выпуска в разделе поставщика. Для получения дополнительной информации о матрицах совместимости см. Матрицы совместимости .
Вы также можете создать новый интерфейс HAL или расширить интерфейс HAL для поддержки уникальных возможностей вашего оборудования.
- Язык определения интерфейса оборудования (HIDL)
Язык, используемый для определения интерфейсов способом, который не зависит от используемого языка программирования. HIDL обеспечивает связь между клиентами HAL и службами HAL.
- Тот же процесс (SP) HAL
Ограниченный набор обернутых HAL. Членство в наборе контролируется Google. SP HAL включают:
- Стабильный C-картограф 5 HAL
- OpenGL
- Вулкан
- android.hidl.memory@1.0 (предоставляется системой Android, всегда упакован)
- android.hardware.renderscript@1.0
- HAL в упаковке
Служба HAL, созданная до Android 8, но заключенная в оболочку AIDL или HIDL для работы с Android 8 и выше.
Что дальше?
- Чтобы узнать, как реализовать службу HAL, обратитесь к AIDL для HAL .
- Чтобы узнать, как создать или расширить существующий HAL, обратитесь к разделу Прикрепленные расширенные интерфейсы .