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?
- Więcej informacji o wdrażaniu usługi HAL znajdziesz w artykule AIDL dla HAL.
- Informacje o tym, jak utworzyć lub rozszerzyć istniejącą listę HAL, znajdziesz w artykule Dołączone rozszerzone interfejsy.