A partire da Android 14, l'interfaccia Audio HAL definita utilizzando Stable AIDL. Partner e SoC sono invitati a reimplementare il loro HAL audio per fornire AIDL.
L'estensione della libreria libaudiohal
aggiunge il supporto del framework per AIDL HAL.
Con l'implementazione AIDL, la specifica di configurazione dei criteri audio
trasferito ad AIDL HAL. Con questa modifica, il Gestore norme audio (APM) riceve
dell'HAL anziché consumarla dal file XML fornito dal fornitore
.
API Audio AIDL HAL
Questa sezione descrive le API Core, Effects e Common HAL per AIDL.
Usa l'implementazione predefinita dell'API AIDL in
/hardware/interfaces/audio/aidl/default/
come riferimento durante l'implementazione di nuove versioni degli HAL audio che
interagire con i driver del kernel.
Consulta le File audio HAL README per la struttura di directory Audio HAL per AIDL.
HAL principale
Alcune delle interfacce chiave di Core HAL, utilizzando AIDL, sono i seguenti:
IModule.aidl
è il punto di accesso all'API.- Gli stream sono unidirezionali e vengono utilizzati da AudioFlinger per inviare o ricevere
audio da e verso l'HAL tramite
IStreamOut.aidl
eIStreamIn.aidl
. ITelephony.aidl
fornisce controlli specifici per le funzioni di telefonia.IBluetooth.aidl
fornisce i controlli BT SCO e HFP che erano il giornoIPrimaryModule
disponibili nell'API HIDL.IConfig.aidl
fornisce parametri di configurazione a livello di sistema.ISoundDose.aidl
supporta la dose audio. Per ulteriori informazioni, vedi Dose audio.- L'ultima versione dell'API Core HAL in fase di sviluppo è in
/hardware/interfaces/audio/aidl/android/hardware/audio/core/
. - L'ultima versione rilasciata dell'API Core HAL è disponibile in
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.core/
.
Effetti HAL
Ecco alcune delle interfacce chiave di Effects HAL, che utilizza AIDL:
IFactory.aidl
è il punto di accesso all'API.Descriptor.aidl
contiene tutte le informazioni, come funzionalità e gli attributi per un'implementazione dell'effetto.Capability.aidl
definisce le funzionalità degli effetti che non cambiano in fase di runtime.Parameter.aidl
definisce tutti i parametri supportati dall'istanza dell'effetto.IEffect.aidl
viene utilizzato per configurare e controllare determinate istanze di effetti.I pacchetti specifici dell'effetto prendono il nome dall'effetto.
L'ultima versione dell'API Effects HAL in fase di sviluppo è disponibile in
/hardware/interfaces/audio/aidl/android/hardware/audio/effect/
.L'ultima versione rilasciata dell'API Effects HAL è disponibile
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.effect
Per saperne di più, visita la pagina Effetti audio. informazioni.
HAL comune
Strutture di dati e interfacce condivise tra vari HAL come BT HAL, ed effetti Gli HAL audio si trovano nel comune HAL.
L'ultima versione del Common AIDL HAL in fase di sviluppo è in
/hardware/interfaces/audio/aidl/android/hardware/audio/common/
L'ultima versione rilasciata dell'API Common HAL è in
/hardware/interfaces/audio/aidl/aidl_api/android.hardware.audio.common/current/android/hardware/audio/common/
Tipi di dati stabili comuni
Le definizioni di strutture di dati stabili vengono utilizzate sia dagli HAL sia dal framework.
L'ultima versione dei tipi di dati stabili in fase di sviluppo è in
/system/hardware/interfaces/media/aidl/android/media/audio/common/
L'ultima versione rilasciata dei tipi di dati stabili è in
/system/hardware/interfaces/media/aidl_api/android.media.audio.common.types/
Test dell'API Audio AIDL HAL
Nuovo VTS vengono forniti test per l'interfaccia AIDL.
Nessuna modifica della nuova versione dell'HAL che possa influire sulla sicurezza.