Omówienie warstwy abstrakcji sprzętowej (HAL)

Warstwa abstrakcji sprzętowej (HAL) to typ warstwy abstrakcji z tagiem za pomocą standardowego interfejsu dla dostawców sprzętu. HAL zezwala na korzystanie ze sprzętu którzy dostawcy wdrożyli funkcje niższego poziomu specyficzne dla danego urządzenia, bez wpływu i modyfikowanie kodu w warstwach wyższego poziomu.

Warunki wymagane

Poniżej znajduje się lista definicji terminów używanych w tej sekcji dokumentacja:

Język definiowania interfejsu Androida (AIDL)
Język podobny do Javy używany do definiowania interfejsów w sposób niezależny od w używanym języku programowania. AIDL umożliwia komunikację między klienci HAL i usługi HAL.
Przypisany kod HAL
HAL, która komunikuje się z innymi procesami za pomocą komunikacja między procesami binarnymi (IPC) połączeń. Powiązane poziomy HAL są uruchamiane w procesie innym niż klient, który ich używa. Powiązane wartości HAL są rejestrowane przez menedżera usługi, dzięki czemu klienci mogą na dostęp do ich funkcji. Listy HAL utworzone na Androida w wersji 8 i nowszych
Klient HAL
Proces uzyskujący dostęp do usługi HAL.
Interfejs HAL
Wspólny interfejs używany do komunikacji klienta i usługi HAL.
Usługa HAL

Kod związany ze sprzętem, np. uruchamiający z aparatu w telefonie. Musisz wdrożyć wszystkie wymagane listy HAL wymienione w dla wersji docelowej na partycji dostawcy. Więcej informacji o tablicach zgodności znajdziesz na stronie Macierze zgodności.

Można również utworzyć nowy interfejs HAL lub rozszerzyć go, aby obsługiwać unikalne możliwości Twojego sprzętu.

Język definiowania interfejsu sprzętowego (HIDL)

Język używany do definiowania interfejsów w sposób niezależny od języka programowania. HIDL umożliwia komunikację między klienci HAL i usługi HAL.

HAL w ramach tego samego procesu (SP)

Ograniczony zestaw opakowanych HAL. Członkostwo w zestawie jest określane przez Google. Domen SP HAL należą:

  • Stable C mapper 5 HAL
  • OpenGL
  • Wulkan
  • android.hidl.memory@1.0 (dostarczany przez system Android, zawsze zapakowany)
  • android.hardware.renderscript@1.0,
Opakowany kod HAL

Usługa HAL utworzona przed Androidem 8, ale zawarta w Kod AIDL lub HIDL do współpracy z Androidem 8 i nowszym.

Co dalej?