L'HAL (Hardware Abstraction Layer) audio di Android collega le API del framework di livello superiore,
specifiche per l'audio in
android.media ai
driver audio e all'hardware sottostanti. L'HAL audio definisce l'interfaccia standard a cui chiamano i servizi audio. L'HAL audio deve essere implementato per il corretto funzionamento dell'hardware audio.
Questa pagina fornisce una panoramica dell'HAL audio e dettagli sui requisiti di implementazione e API.
Interfaccia HAL audio
In Android 14 e versioni successive, l'interfaccia HAL audio è definita utilizzando AIDL. Per le versioni precedenti, l' interfaccia HAL audio è definita utilizzando HIDL. I partner e i fornitori di SoC sono invitati a reimplementare l'HAL audio per fornire un'interfaccia AIDL.
Le nuove API HAL per le funzionalità aggiunte in Android 14 e versioni successive sono supportate solo con l'implementazione dell'interfaccia AIDL. In Android 14 e versioni successive, non viene aggiunta alcuna nuova API all'implementazione HIDL.
Il passaggio ad AIDL e la rimozione del supporto per le versioni principali precedenti di HAL audio liberano spazio su disco e RAM sui dispositivi. Ciò comporta un'esperienza utente più fluida e consente di aggiungere nuove funzionalità visibili agli utenti finali.
Per ulteriori informazioni sulle differenze tra l'HAL audio AIDL e HIDL, consulta Confronto tra HAL audio AIDL e HIDL.
API HAL audio
L'HAL audio contiene le seguenti API:
- L'HAL principale è l'API principale utilizzata da AudioFlinger per riprodurre l'audio e controllare il routing audio.
L'API HAL effetti viene utilizzata dal framework degli effetti per controllare gli effetti audio. Puoi anche configurare gli effetti di pre-elaborazione come il controllo automatico del guadagno e l'eliminazione dei rumori, tramite l'API HAL effetti.
L'API HAL comune è una libreria di tipi di dati comuni utilizzati dalle API HAL principali e degli effetti. L'HAL comune non ha interfacce né test VTS associati, in quanto definisce solo le strutture di dati.
Per dettagli specifici relativi ad AIDL e HIDL, consulta HAL audio AIDL e HAL audio HIDL.
Requisiti
Oltre a implementare l'HAL audio e creare il file di configurazione della policy audio, devi rispettare i seguenti requisiti HAL:
Se l'acquisizione per Sound Trigger (acquisizione dal buffer DSP della hotword) è supportata da un profilo di input, l'implementazione deve supportare il numero di stream attivi su questo profilo corrispondente al numero di sessioni simultanee supportate da Sound Trigger HAL.
Concorrenza della trasmissione delle chiamate vocali e dell'acquisizione dal processore dell'app, come descritto nella pagina Acquisizione simultanea.