Une couche d'abstraction matérielle (HAL) est un type de couche d'abstraction avec un une interface standard à mettre en œuvre par les fournisseurs de matériel. Un HAL permet au matériel de mettre en œuvre des fonctionnalités de niveau inférieur spécifiques à chaque appareil, sans affecter ni modifier le code dans 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 documentation:
- Langage de définition d'interface Android (AIDL)
- Langage de type Java utilisé pour définir des interfaces de manière indépendante le langage de programmation utilisé. AIDL permet la communication entre Clients HAL et services HAL
- HAL relié à une liaison
- Un HAL qui communique avec d'autres processus avec communication inter-processus (IPC) de liaison appels. Les HAL avec liaison s'exécutent dans un processus distinct de celui du client qui les utilise. Les HAL avec liaison sont enregistrées auprès d'un gestionnaire de services afin que les clients puissent à accéder à leurs capacités. Les HAL écrites pour Android 8 et versions ultérieures sont liés.
- 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
Le code spécifique au matériel, tel que le code qui mène à votre propre l'appareil photo de votre appareil. Vous devez implémenter toutes les HAL requises répertoriées dans de compatibilité de la version que vous ciblez dans votre partition de fournisseur. Pour en savoir plus sur les matrices de compatibilité, consultez Matrices de compatibilité.
Vous pouvez également créer une nouvelle interface HAL ou étendre l'interface d'un HAL pour pour prendre en charge les capacité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 de programmation utilisé. HIDL permet la communication entre Clients HAL et services HAL.
- Same Process (SP) HAL
Ensemble restreint de HAL encapsulées. L'adhésion à l'ensemble est contrôlée par Google Les HAL des SP incluent les éléments suivants:
- Stable C Mapper 5 HAL
- OpenGL
- Vulkan
- android.hidl.memory@1.0 (fourni par le système Android, toujours encapsulé)
- android.hardware.renderscript@1.0
- HAL encapsulé
Un 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 découvrir comment implémenter un service HAL, consultez AIDL pour les HAL
- Pour savoir comment créer ou étendre une HAL existante, consultez à Interfaces étendues associées.