Présentation de la couche d'abstraction matérielle (HAL)

Une couche d'abstraction matérielle (HAL) est un type de couche d'abstraction dotée d'une interface standard que les fournisseurs de matériel peuvent mettre en œuvre. Une 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 dans les couches de niveau supérieur.

Conditions requises

Voici la liste des 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 indépendamment du langage de programmation utilisé. AIDL permet la communication entre les clients HAL et les services HAL.
HAL relié à une liaison
HAL qui communique avec d'autres processus à l'aide d'appels de communication inter-processus (IPC) de liaison. 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 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

Le code spécifique au matériel, tel que le code qui redirige l'appareil photo vers votre appareil. 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 nouvelle interface HAL ou étendre l'interface d'un 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.

Same Process (SP) HAL

Ensemble restreint de HAL encapsulées. L'appartenance à 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é

Service HAL créé avant Android 8, mais encapsulé dans un wrapper AIDL ou HIDL pour fonctionner avec Android 8 et versions ultérieures.

Et maintenant ?