Une couche d'abstraction matérielle (HAL) est un type de couche d'abstraction avec une interface standard que les fournisseurs de matériel doivent implémenter. Un HAL permet aux fournisseurs de matériel d'implémenter des fonctionnalités de niveau inférieur spécifiques à l'appareil sans affecter ni modifier le code des couches de niveau supérieur.
Conditions requises
Vous trouverez ci-dessous la liste des définitions des termes utilisés dans cette section de la documentation:
- Langage de définition d'interface Android (AIDL)
- Langage semblable à 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 lié
- HAL qui communique avec d'autres processus à l'aide d'appels de communication inter-processus (IPC) de liaison. Les HAL liés s'exécutent dans un processus distinct du client qui les utilise. Les HAL lié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 lié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 permet d'accéder à la caméra de votre appareil spécifique. Vous devez mettre en œuvre toutes les HAL requises, répertoriées dans la matrice de compatibilité de la version que vous ciblez dans votre partition de fournisseur. Pour en savoir plus sur les matrices de compatibilité, consultez la section Matrices de compatibilité.
Vous pouvez également créer une interface HAL ou étendre l'interface d'un HAL pour prendre en charge les fonctionnalités uniques de votre matériel.
- Hardware Interface Definition Language (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 Same Process (SP)
Ensemble restreint de HAL encapsulés. L'appartenance à l'ensemble est contrôlée par Google. Les HAL SP incluent:
- 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é
Service HAL créé avant Android 8, mais encapsulé dans un wrapper AIDL ou HIDL pour fonctionner avec Android 8 ou version ultérieure.
Et maintenant ?
- Pour savoir comment implémenter un service HAL, consultez la section AIDL pour les HAL.
- Pour savoir comment créer ou étendre un HAL existant, consultez la section Interfaces étendues associées.