Il livello di astrazione hardware audio di Android (HAL) collega le API del framework audio specifico di livello superiore in 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 affinché l'hardware audio funzioni correttamente.
Questa pagina fornisce una panoramica dell'HAL audio e fornisce dettagli sulla sua API e sui requisiti di implementazione.
Interfaccia HAL audio
A partire da Android 14, l'interfaccia Audio HAL viene definita utilizzando AIDL . Per le versioni precedenti, l'interfaccia Audio HAL viene definita utilizzando HIDL . I partner e i fornitori di SoC sono incoraggiati 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 deprecazione e la rimozione del supporto per le versioni principali precedenti di HAL audio liberano spazio su disco e RAM sui dispositivi. Ciò porta a una UX più fluida e consente nuove funzionalità visibili all'utente per gli utenti finali.
Vedere Confronto HAL audio AIDL e HIDL per ulteriori informazioni sulle differenze tra HAL audio AIDL e HIDL.
API HAL audio
L'HAL audio contiene le seguenti API:
- Core HAL è l'API principale utilizzata da AudioFlinger per riprodurre l'audio e controllare il routing audio.
L'API HAL degli effetti viene utilizzata dal framework degli effetti per controllare gli effetti audio. È inoltre possibile configurare effetti di preelaborazione come il controllo automatico del guadagno e la soppressione del rumore tramite l'API HAL degli effetti.
L'API HAL comune è una libreria di tipi di dati comuni utilizzati dalle API HAL Core ed Effects. Il Common HAL non ha interfacce né test VTS associati poiché definisce solo strutture di dati.
Vedere 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 dei criteri audio, è necessario rispettare i seguenti requisiti HAL:
Se l'acquisizione per Sound Trigger (acquisizione dal buffer DSP hotword) è supportata da un profilo di input, l'implementazione deve supportare il numero di flussi attivi su questo profilo corrispondente al numero di sessioni simultanee supportate da Sound Trigger HAL.
Concomitanza della trasmissione delle chiamate vocali e dell'acquisizione dal processore dell'app come descritto in dettaglio nella pagina Acquisizione simultanea .