Warstwa abstrakcji sprzętowej (HAL) to rodzaj warstwy abstrakcji ze standardowym interfejsem, który dostawcy sprzętu mogą wdrażać. Warstwa HAL umożliwia dostawcom sprzętu wdrażanie funkcji niższego poziomu, które są specyficzne dla danego urządzenia, bez wpływu na kod w warstwach wyższego poziomu i bez jego modyfikowania.
Wymagane warunki
Poniżej znajduje się lista 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
- Warstwa HAL, która komunikuje się z innymi procesami za pomocą wywołań komunikacji międzyprocesowej (IPC). Interfejsy HAL z Binderem działają w procesie oddzielnym od klienta, który ich używa. Interfejsy HAL w trybie Binder są rejestrowane w menedżerze usług, aby klienci mogli korzystać z ich funkcji. HAL-e napisane dla Androida 8 i nowszych wersji są związane z binderem .
- Klient HAL
- Proces, który uzyskuje dostęp do usługi HAL.
- Interfejs HAL
- Wspólny interfejs używany przez klienta i usługę HAL do komunikacji.
- Usługa HAL
Kod specyficzny dla sprzętu, np. kod, który komunikuje się z kamerą konkretnego urządzenia. W przypadku wersji, na którą kierujesz reklamy w swojej partycji dostawcy, musisz wdrożyć wszystkie wymagane interfejsy HAL wymienione w macierzy zgodności. Więcej informacji o macierzach zgodności znajdziesz w artykule Macierze zgodności.
Możesz też utworzyć nowy interfejs HAL lub rozszerzyć interfejs HAL, aby obsługiwać unikalne funkcje 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 tego samego procesu (SP)
Ograniczony zestaw opakowanych HAL-i. Członkostwem w tym zbiorze zarządza Google. SP HAL obejmują:
- Stabilny interfejs HAL mapowania C 5
- OpenGL
- Vulkan
- android.hidl.memory@1.0 (dostarczany przez system Android, zawsze opakowany)
- android.hardware.renderscript@1.0
- HAL w otoczce
Usługa HAL utworzona przed Androidem 8, ale opakowana w AIDL lub HIDL, aby działać w Androidzie 8 i nowszych wersjach.
Co dalej?
- Aby dowiedzieć się, jak wdrożyć usługę HAL, zapoznaj się z artykułem AIDL dla HAL.
- Aby dowiedzieć się, jak utworzyć lub rozszerzyć istniejący HAL, zapoznaj się z sekcją Dołączone rozszerzone interfejsy.