Panoramica dell'HAL (Hardware Astrazione Layer)

Un livello di astrazione hardware (HAL) è un tipo di livello di astrazione con un'interfaccia standard da implementare per i fornitori di hardware. Un HAL consente ai fornitori di hardware di implementare funzionalità specifiche del dispositivo di livello inferiore senza influire o modificare il codice nei livelli superiori.

Termini richiesti

Di seguito è riportato un elenco di definizioni dei termini utilizzati in questa sezione della documentazione:

Android Interface Definition Language (AIDL)
Un linguaggio simile a Java utilizzato per definire le interfacce in modo indipendente dal linguaggio di programmazione utilizzato. AIDL consente la comunicazione tra i client HAL e i servizi HAL.
HAL con binder
Un HAL che comunica con altri processi utilizzando chiamate di comunicazione tra processi (IPC) Binder. Le HAL Binderized vengono eseguite in un processo separato dal client che le utilizza. Le HAL binderizzate vengono registrate presso un service manager in modo che i client possano accedere alle loro funzionalità. Gli HAL scritti per Android 8 e versioni successive sono binderizzati.
Client HAL
Il processo che accede al servizio HAL.
Interfaccia HAL
L'interfaccia comune utilizzata sia dal client HAL sia dal servizio per comunicare.
Servizio HAL

Il codice specifico dell'hardware, ad esempio il codice che comunica con la fotocamera del tuo dispositivo specifico. Devi implementare tutti gli HAL richiesti elencati nella matrice di compatibilità per la release di destinazione nella partizione del fornitore. Per ulteriori informazioni sulle matrici di compatibilità, consulta Matrici di compatibilità.

Puoi anche creare una nuova interfaccia HAL o estendere l'interfaccia di un HAL per supportare le funzionalità uniche del tuo hardware.

Hardware Interface Definition Language (HIDL)

Un linguaggio utilizzato per definire le interfacce in modo indipendente dal linguaggio di programmazione utilizzato. HIDL consente la comunicazione tra i client HAL e i servizi HAL.

Same Process (SP) HAL

Un insieme limitato di HAL wrapper. L'appartenenza al set è controllata da Google. Gli HAL dei service provider includono:

  • HAL Stable C mapper 5
  • OpenGL
  • Vulkan
  • android.hidl.memory@1.0 (fornito dal sistema Android, sempre sottoposto a wrapping)
  • android.hardware.renderscript@1.0
HAL wrapper

Un servizio HAL creato prima di Android 8, ma racchiuso in un wrapper AIDL o HIDL per funzionare con Android 8 e versioni successive.

Passaggi successivi