HAL (Hardware-Abstraktionsschicht) – Übersicht

Eine Hardwareabstraktionsschicht (HAL) ist eine Art Abstraktionsschicht mit einer Standardschnittstelle, die Hardwareanbieter implementieren können. Mit einem HAL können Hardwareanbieter untergeordnete, gerätespezifische Funktionen implementieren, ohne den Code auf höheren Ebenen zu beeinträchtigen oder zu ändern.

Erforderliche Begriffe

Im Folgenden finden Sie eine Liste der Definitionen für Begriffe, die in diesem Abschnitt der Dokumentation verwendet werden:

Android Interface Definition Language (AIDL)
Eine Java-ähnliche Sprache, mit der Schnittstellen unabhängig von der verwendeten Programmiersprache definiert werden. AIDL ermöglicht die Kommunikation zwischen HAL-Clients und HAL-Diensten.
Binderisiertes HAL
Ein HAL, der über IPC-Aufrufe (Bindder Inter-Process Communication) mit anderen Prozessen kommuniziert. Gebundene HALs werden in einem anderen Prozess ausgeführt als der Client, der sie verwendet. Gebundene HALs werden bei einem Dienstmanager registriert, damit Clients auf ihre Funktionen zugreifen können. HALs, die für Android 8 und höher geschrieben sind, werden in Bindestriche geschrieben.
HAL-Client
Der Prozess, der auf den HAL-Dienst zugreift.
HAL-Schnittstelle
Die gemeinsame Schnittstelle, über die sowohl der HAL-Client als auch der Dienst kommunizieren.
HAL-Dienst

Der hardwarespezifische Code, z. B. der Code für die Kamera deines Geräts. Sie müssen alle erforderlichen HALs, die in der Kompatibilitätsmatrix für den ausgewählten Release aufgeführt sind, in Ihre Anbieterpartition implementieren. Weitere Informationen zu Kompatibilitätsmatrizes finden Sie unter Kompatibilitätsmatrizen.

Sie können auch eine neue HAL-Schnittstelle erstellen oder die Schnittstelle eines HAL erweitern, um die einzigartigen Funktionen Ihrer Hardware zu unterstützen.

Hardware Interface Definition Language (HIDL)

Eine Sprache, mit der Schnittstellen unabhängig von der verwendeten Programmiersprache definiert werden. HIDL ermöglicht die Kommunikation zwischen HAL-Clients und HAL-Diensten.

HAL (Same Process, SP)

Ein eingeschränkter Satz verpackter HALs. Die Mitgliedschaft in der Gruppe wird von Google gesteuert. Zu den SP HALs gehören:

  • Stable C Mapper 5 HAL
  • OpenGL
  • Vulkan
  • android.hidl.memory@1.0 (vom Android-System bereitgestellt, immer umschlossen)
  • android.hardware.renderscript@1.0
Verpackter HAL

Ein HAL-Dienst, der vor Android 8 erstellt wurde, aber für die Verwendung mit Android 8 und höher in einen AIDL- oder HIDL-Wrapper eingebunden wurde.

Wie geht es weiter?