Уровень абстракции оборудования (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. HAL SP включают в себя:
- Стабильный преобразователь 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, обратитесь к разделу «Прикрепленные расширенные интерфейсы» .