Une couche d'abstraction matérielle (HAL) est un type de couche d'abstraction avec une interface standard que les fournisseurs de matériel peuvent implémenter. Une HAL permet aux fournisseurs de matériel d'implémenter des fonctionnalités de bas niveau spécifiques à l'appareil sans affecter ni modifier le code dans les couches de niveau supérieur.
Termes obligatoires
Vous trouverez ci-dessous une liste de définitions des termes utilisés dans cette section de la documentation :
- Langage de définition d'interface Android (AIDL)
- Langage de type Java utilisé pour définir des interfaces de manière indépendante du langage de programmation utilisé. AIDL permet la communication entre les clients HAL et les services HAL.
- HAL Binderisée
- HAL qui communique avec d'autres processus à l'aide d'appels de communication interprocessus (IPC) Binder. Les HAL Binderisées s'exécutent dans un processus distinct du client qui les utilise. Les HAL Binderisées sont enregistrées auprès d'un gestionnaire de services afin que les clients puissent accéder à leurs fonctionnalités. Les HAL écrites pour Android 8 et versions ultérieures sont Binderisées.
- Client HAL
- Processus qui accède au service HAL.
- Interface HAL
- Interface commune utilisée par le client et le service HAL pour communiquer.
- Service HAL
Code spécifique au matériel, tel que le code qui communique avec l'appareil photo de votre appareil. Vous devez implémenter toutes les HAL requises listées dans la matrice de compatibilité pour la version que vous ciblez dans votre partition fournisseur. Pour en savoir plus sur les matrices de compatibilité, consultez Matrices de compatibilité.
Vous pouvez également créer une interface HAL ou étendre l'interface d'une HAL pour prendre en charge les fonctionnalités uniques de votre matériel.
- Langage de définition d'interface matérielle (HIDL)
Langage utilisé pour définir des interfaces de manière indépendante du langage de programmation utilisé. HIDL permet la communication entre les clients HAL et les services HAL.
- HAL de même processus (SP)
Ensemble limité de HAL encapsulées. L'appartenance à l'ensemble est contrôlée par Google. Les HAL SP incluent les éléments suivants :
- HAL de mappeur C stable 5
- OpenGL
- Vulkan
- android.hidl.memory@1.0 (fourni par le système Android, toujours encapsulé)
- android.hardware.renderscript@1.0
- HAL encapsulée
Service HAL créé avant Android 8, mais encapsulé dans un wrapper AIDL ou HIDL pour fonctionner avec Android 8 et versions ultérieures.
Étape suivante
- Pour savoir comment implémenter un service HAL, consultez AIDL pour les HAL.
- Pour savoir comment créer ou étendre une HAL existante, consultez les interfaces étendues jointes.