Omówienie warstwy abstrakcji sprzętowej (HAL)

Warstwa abstrakcji sprzętowej (HAL) to typ warstwy abstrakcji ze standardowym interfejsem do wdrożenia przez dostawców sprzętu. HAL pozwala dostawcom sprzętu wdrażać funkcje zależne od urządzenia niższego poziomu bez wpływu i modyfikowania kodu na warstwach wyższego poziomu.

Warunki wymagane

Poniżej znajdziesz listę definicji terminów używanych w tej sekcji dokumentacji:

Język definiowania interfejsu Androida (AIDL)
Język podobny do języka Java używany do definiowania interfejsów w sposób niezależny od używanego języka programowania. AIDL umożliwia komunikację między klientami HAL a usługami HAL.
Przypisany kod HAL
Interfejs HAL, który komunikuje się z innymi procesami za pomocą wywołań komunikacji między procesami (binder). Powiązane poziomy HAL są uruchamiane w procesie innym niż klient, który ich używa. Powiązane konta HAL są rejestrowane przez menedżera usługi, aby klienty miały dostęp do swoich możliwości. Listy HAL napisane na Androida 8 i nowsze wersje są powiązane.
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 sprzętowy, np. kod łączący się z kamerą danego urządzenia. Musisz wdrożyć wszystkie wymagane listy HAL wymienione w tablicy zgodności wersji, na którą kierujesz reklamy na partycji dostawcy. Więcej informacji o tablicach zgodności znajdziesz na stronie Tablice zgodności.

Możesz też utworzyć nowy interfejs HAL lub rozszerzyć go, aby wykorzystać 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 używanego języka programowania. HIDL umożliwia komunikację między klientami HAL a usługami 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 opakowana w opakowaniu AIDL lub HIDL w Androidzie 8 i nowszych.

Co dalej?