Google si impegna a promuovere l'equità razziale per le comunità nere. Vedi come.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Audio

Icona Android Audio HAL

L'HAL (Hardware Abstraction Layer) audio di Android collega le API framework di livello superiore e specifiche per l'audio in android.media al driver audio e all'hardware sottostanti. Questa sezione include istruzioni di implementazione e suggerimenti per migliorare le prestazioni.

L'architettura audio Android definisce come viene implementata la funzionalità audio e indica il codice sorgente pertinente coinvolto nell'implementazione.

Architettura audio

Figura 1. Architettura audio Android

Quadro applicativo
Il framework dell'applicazione include il codice dell'app, che utilizza le API android.media per interagire con l'hardware audio. Internamente, questo codice chiama le classi di colla JNI corrispondenti per accedere al codice nativo che interagisce con l'hardware audio.
JNI
Il codice JNI associato a android.media chiama il codice nativo di livello inferiore per accedere all'hardware audio. JNI si trova in frameworks/base/core/jni/ e frameworks/base/media/jni .
Quadro nativo
Il framework nativo fornisce un equivalente nativo al pacchetto android.media , chiamando i proxy IPC di Binder per accedere ai servizi audio specifici del media server. Il codice framework nativo si trova in frameworks/av/media/libmedia .
Binder IPC
I proxy IPC di Binder facilitano la comunicazione oltre i limiti del processo. I proxy si trovano in frameworks/av/media/libmedia e iniziano con la lettera "I".
Media server
Il media server contiene servizi audio, ovvero il codice effettivo che interagisce con le implementazioni HAL. Il media server si trova in frameworks/av/services/audioflinger .
HAL
L'HAL definisce l'interfaccia standard che i servizi audio chiamano e che è necessario implementare affinché l'hardware audio funzioni correttamente. Le interfacce audio HAL si trovano in hardware/libhardware/include/hardware . Per i dettagli, vedere audio.h .
Driver del kernel
Il driver audio interagisce con l'hardware e l'implementazione HAL. È possibile utilizzare Advanced Linux Sound Architecture (ALSA), Open Sound System (OSS) o un driver personalizzato (HAL è indipendente dal driver).

Nota : se si utilizza ALSA, si consiglia di utilizzare external/tinyalsa per la parte dell'utente del driver a causa della sua licenza compatibile (la libreria in modalità utente standard è concessa in licenza GPL).

Audio nativo Android basato su Open SL ES (non mostrato)
Questa API è esposta come parte di Android NDK ed è allo stesso livello di architettura di android.media .