HAL audio

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.