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