Un HAL (Hardware Astrazione Layer) è un tipo di livello di astrazione con un un'interfaccia standard che i fornitori di hardware possono implementare. Un HAL consente ai fornitori di implementare funzionalità di livello inferiore specifiche per i dispositivi senza influire o modificando il codice nei livelli di livello superiore.
Termini obbligatori
Di seguito è riportato un elenco delle definizioni dei termini utilizzati in questa sezione documentazione:
- AIDL (Android Interface Definition Language)
- Un linguaggio simile a Java utilizzato per definire le interfacce in modo indipendente il linguaggio di programmazione utilizzato. AIDL consente la comunicazione tra Client HAL e servizi HAL.
- HAL vincolato
- Un HAL che comunica con altri processi utilizzando binder Inter-Process Communication (IPC) chiamate. Gli HAL Binderizzati vengono eseguiti in un processo separato da quello del client che li utilizza. Gli HAL Binderizzati sono registrati con un gestore del servizio in modo che i clienti 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 per l'hardware, ad esempio il codice che prende il tuo fotocamera del dispositivo. Devi implementare tutti gli HAL richiesti elencati nel di compatibilità per la release che scegli come target 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 per supportare le capacità specifiche del tuo hardware.
- HIDL (Hardware Interface Definition Language)
Linguaggio utilizzato per definire le interfacce in modo indipendente dal linguaggio di programmazione usato. HIDL consente la comunicazione tra Client HAL e servizi HAL.
- HAL per la stessa procedura (SP)
Un insieme limitato di HAL con wrapping. L'appartenenza al set è controllata in tutti i canali Google. Gli HAL SP includono:
- C Mapper stabile 5 HAL
- OpenGL
- Vulkan
- android.hidl.memory@1.0 (fornita dal sistema Android, sempre con wrapping)
- android.hardware.renderscript@1.0
- HAL avvolto
Un servizio HAL creato prima di Android 8, ma che è stato aggregato in Wrapper AIDL o HIDL per funzionare con Android 8 e versioni successive.
Passaggi successivi
- Per informazioni su come implementare un servizio HAL, consulta: AIDL per HAL.
- Per scoprire come creare o estendere un HAL esistente, consulta a Interfacce estese collegate.