Audio HAL

Die Audio-Hardwareabstraktionsschicht (HAL) von Android verbindet die Framework-APIs für Audio auf höherer Ebene in android.media mit den zugrunde liegenden Audiotreibern und der Audiohardware. Die Audio-HAL definiert die Standardschnittstelle, die von Audiodiensten aufgerufen wird. Die Audio-HAL muss implementiert werden, damit die Audiohardware ordnungsgemäß funktioniert.

Auf dieser Seite finden Sie eine Übersicht über die Audio-HAL sowie Details zu den API- und Implementierungsanforderungen.

Audio-HAL-Schnittstelle

In Android 14 und höher wird die Audio-HAL-Schnittstelle mit AIDLdefiniert. In früheren Versionen wird die Audio-HAL-Schnittstelle mit HIDL definiert. Partner und SoC-Anbieter werden aufgefordert, ihre Audio-HAL neu zu implementieren, um eine AIDL-Schnittstelle bereitzustellen.

Neue HAL-APIs für Funktionen, die in Android 14 und höher hinzugefügt wurden, werden nur mit der Implementierung der AIDL-Schnittstelle unterstützt. In Android 14 und höher wird der HIDL-Implementierung keine neue API hinzugefügt.

Durch den Wechsel zu AIDL und die Einstellung und Entfernung der Unterstützung für frühere Hauptversionen der Audio-HAL wird Speicherplatz und RAM auf Geräten freigegeben. Dies führt zu einer reibungsloseren Nutzererfahrung und ermöglicht neue, für Endnutzer sichtbare Funktionen.

Weitere Informationen zu den Unterschieden zwischen der AIDL- und der HIDL-Audio-HAL finden Sie unter Vergleich von AIDL- und HIDL-Audio-HAL.

Audio-HAL-API

Die Audio-HAL enthält die folgenden APIs:

  • Die Core-HAL ist die Haupt-API, die von AudioFlinger verwendet wird, um Audio abzuspielen und das Audio-Routing zu steuern.
  • Die Effects-HAL-API wird vom Effects-Framework verwendet, um Audioeffekte zu steuern. Sie können auch Vorverarbeitungseffekte wie die automatische Verstärkungsregelung und die Rauschunterdrückung über die Effects-HAL API konfigurieren.

  • Die Common-HAL-API ist eine Bibliothek mit allgemeinen Datentypen, die von den Core- und Effects-HAL-APIs verwendet werden. Die Common-HAL hat keine Schnittstellen und keine zugehörigen VTS-Tests, da sie nur Datenstrukturen definiert.

Spezifische Details zu AIDL und HIDL finden Sie unter AIDL-Audio-HAL und HIDL-Audio-HAL.

Voraussetzungen

Neben der Implementierung der Audio-HAL und der Erstellung der Konfigurationsdatei für die Audiopolicies müssen Sie die folgenden HAL-Anforderungen erfüllen:

  • Wenn die Erfassung für Sound Trigger (Erfassung aus dem DSP-Puffer für Hotwords) von einem Eingabeprofil unterstützt wird, muss die Implementierung die Anzahl der aktiven Streams in diesem Profil unterstützen, die der Anzahl der gleichzeitigen Sitzungen entspricht, die von der Sound Trigger-HAL unterstützt werden.

  • Gleichzeitigkeit von TX-Sprachanrufen und Erfassung vom App-Prozessor, wie auf der Seite Gleichzeitige Erfassung beschrieben.