L'HAL (Hardware Abstraction Layer) audio di Android collega le API framework specifiche per l'audio di livello superiore a
android.media
i driver audio e l'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 sulla sua API e sui requisiti di implementazione.
Interfaccia HAL audio
A partire da Android 14, l'interfaccia Audio HAL è definita utilizzando AIDL. Per le versioni precedenti, l'interfaccia Audio HAL è definita utilizzando HIDL. I partner e i fornitori di SoC sono invitati a reimplementare il proprio 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. A partire da Android 14, non viene aggiunta alcuna nuova API all'implementazione HIDL.
Il passaggio ad AIDL e la rimozione del supporto per le versioni precedenti della HAL audio libera spazio su disco e RAM sui dispositivi. Ciò consente un'esperienza utente più fluida e nuove funzionalità visibili agli utenti finali.
Per ulteriori informazioni sulle differenze tra AIDL e HIDL Audio HAL, consulta Confronto tra AIDL e HIDL Audio HAL.
API HAL audio
L'HAL audio contiene le seguenti API:
- L'HAL principale è l'API principale utilizzata da AudioFlinger per riprodurre audio e controllare il routing audio.
L'API Effects HAL viene utilizzata dal framework degli effetti per controllare gli effetti audio. Puoi anche configurare effetti di pre-elaborazione come il controllo automatico del guadagno e la soppressione del rumore tramite l'API Effects HAL.
L'API Common HAL è una libreria di tipi di dati comuni utilizzati dalle API Core e Effects HAL. La Common HAL non ha interfacce né test VTS associati, in quanto definisce solo le strutture di dati.
Consulta AIDL Audio HAL e HIDL Audio HAL per dettagli specifici relativi rispettivamente ad AIDL e 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 e dell'acquisizione delle chiamate vocali dal processore dell'app come descritto nella pagina Acquisizione simultanea.