Warstwa abstrakcji sprzętowej (HAL) to typ warstwy abstrakcji ze standardowym interfejsem, który mogą implementować dostawcy 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.
Wymagane warunki
Poniżej znajdziesz listę definicji terminów używanych w tej sekcji dokumentacji:
- język definiowania interfejsu Androida (AIDL),
- Język podobny do Javy, który służy 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.
- Binderized HAL
- HAL, który komunikuje się z innymi procesami za pomocą wywołań komunikacji między procesami (IPC) za pomocą bindera. Powiązane poziomy HAL są uruchamiane w procesie innym niż klient, który ich używa. Powiązane poziomy 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ą tworzone przy użyciu powiązań.
- Klient HAL
- Proces uzyskujący dostęp do usługi HAL.
- Interfejs HAL
- Interfejs wspólny używany przez klienta HAL i usługę do komunikacji.
- Usługa HAL
Kod związany z sprzętem, np. kod, który otwiera aparat konkretnego urządzenia. Musisz wdrożyć wszystkie wymagane HAL wymienione w tablicy zgodności dla wersji, na którą kierujesz swoją partycję dostawcy. Więcej informacji o matrycach zgodności znajdziesz w artykule Matryce 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.
- Same Process (SP) HAL
Ograniczony zestaw opakowanych HAL. Członkowością w zbiorze zarządza Google. HAL-e SP obejmują:
- Stabilny mapper C 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 zapakowana w opakowanie AIDL lub HIDL, aby działać na Androidzie 8 lub nowszym;
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.