HAL audio

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.