Od 27 marca 2025 r. zalecamy używanie android-latest-release zamiast aosp-main do kompilowania i wspołtworzenia AOSP. Więcej informacji znajdziesz w artykule o zmianach w AOSP.
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Warstwę abstrakcji sprzętu audio (HAL) Androida łączy interfejsy API frameworku dotyczące dźwięku o wyższym poziomie z android.mediapodstawowymi sterownikami dźwięku i sprzętem. Interfejs Audio HAL definiuje standardowy interfejs, do którego wywołują usługi audio. Aby sprzęt audio działał prawidłowo, musisz zaimplementować interfejs Audio HAL.
Na tej stronie znajdziesz omówienie interfejsu Audio HAL oraz szczegółowe informacje o wymaganiach dotyczących interfejsu API i wdrażania.
Interfejs HAL dźwięku
Począwszy od Androida 14 interfejs Audio HAL jest definiowany za pomocą AIDL. W poprzednich wersjach interfejs Audio HAL jest definiowany za pomocą HIDL.
Partnerów i dostawców układów SoC zachęcamy do ponownego zaimplementowania interfejsu Audio HAL, aby udostępnić interfejs AIDL.
Nowe interfejsy HAL do obsługi funkcji dodanych w Androidzie 14 i wyższych są obsługiwane tylko w przypadku implementacji interfejsu AIDL.
Od Androida 14 w implementacji HIDL nie są dodawane żadne nowe interfejsy API.
Przejście na interfejs AIDL oraz wycofanie i usunięcie obsługi poprzednich głównych wersji interfejsu Audio HAL powoduje zwolnienie miejsca na dysku i pamięci RAM na urządzeniach. Spowoduje to płynniejsze działanie interfejsu i umożliwi dodanie nowych funkcji widocznych dla użytkowników.
Core HAL to główny interfejs API używany przez AudioFlinger do odtwarzania dźwięku i sterowania kierowaniem dźwięku.
Interfejs Effects HAL API jest używany przez framework efektów do sterowania efektami dźwiękowymi.
Możesz też skonfigurować efekty wstępnej obróbki, takie jak automatyczna kontrola wzmocnienia i redukcja szumów, za pomocą interfejsu API Effects HAL.
Interfejs Common HAL API to biblioteka typów danych używanych przez interfejsy HAL API Core i Effects HAL API. Wspólny interfejs HAL nie ma interfejsów ani powiązanych testów VTS, ponieważ definiuje tylko struktury danych.
Oprócz implementowania interfejsu HAL Audio i tworzenia pliku konfiguracji zasad dotyczących audio musisz też przestrzegać tych wymagań dotyczących interfejsu HAL:
Jeśli przechwytywanie dla Sound Trigger (przechwytywanie z bufora DSP słów kluczowych) jest obsługiwane przez jeden profil wejściowy, implementacja musi obsługiwać liczbę aktywnych strumieni na tym profilu odpowiadającą liczbie jednoczesnych sesji obsługiwanych przez interfejs Sound Trigger HAL.
Równoczesne przesyłanie i przechwytywanie połączeń głosowych przez procesor aplikacji, jak opisano na stronie Równoczesne przechwytywanie.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-07-26 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-07-26 UTC."],[],[],null,["# Audio HAL\n\nAndroid's Audio hardware abstraction layer (HAL) connects the higher-level,\naudio-specific framework APIs into\n[`android.media`](http://developer.android.com/reference/android/media/package-summary.html)\nthe underlying audio drivers and hardware. The Audio HAL defines the standard\ninterface that audio services call in to. The Audio HAL must be implemented for\nthe audio hardware to function correctly.\n\nThis page gives an overview of the Audio HAL and provides details of its API and\nimplementation requirements.\n\nAudio HAL interface\n-------------------\n\nStarting with Android 14, the Audio HAL interface is\ndefined using [AIDL](/docs/core/audio/aidl-implement). For past versions, the\nAudio HAL interface is defined using [HIDL](/docs/core/audio/hidl-implement).\nPartners and SoC vendors are encouraged to reimplement their\nAudio HAL to provide an AIDL interface.\n\nNew HAL APIs for features added in Android 14 and\nhigher are supported **only** with the implementation of the AIDL interface.\nStarting with Android 14, no new API is added to the\nHIDL implementation.\n\nSwitching to AIDL and deprecating and removing support for previous\nmajor Audio HAL versions frees up disk space and RAM on devices. This\nleads to a smoother UX and allows for newer user-visible features for end users.\n\nSee [AIDL and HIDL Audio HAL comparison](/docs/core/audio/aidl-hidl-comp)\nfor more information about the differences between the AIDL and HIDL Audio HAL.\n\n### Audio HAL API\n\nThe Audio HAL contains the following APIs:\n\n- The Core HAL is the main API used by AudioFlinger to play audio and control the audio routing.\n- The Effects HAL API is used by the effects framework to control audio effects.\n You can also configure [preprocessing effects](/devices/audio/implement-pre-processing)\n such as automatic gain control and noise suppression through the Effects HAL\n API.\n\n | **Note:** The Audio Effects HAL API is similar to the [framework effects APIs](https://developer.android.com/reference/android/media/audiofx/AudioEffect).\n- The Common HAL API is a library of common data types used by the Core and\n Effects HAL APIs. The Common HAL has no interfaces and no associated VTS\n tests as it defines only data structures.\n\nSee [AIDL Audio HAL](/docs/core/audio/aidl-implement) and\n[HIDL Audio HAL](/docs/core/audio/hidl-implement) for specific details\nrelated to AIDL and HIDL respectively.\n| **Note:** Starting with Android 13, Audio HAL is updated to version 7.1.\n\nRequirements\n------------\n\nIn addition to implementing the Audio HAL and creating the audio policy\nconfiguration file, you must adhere to the following HAL requirements:\n\n- If capture for Sound Trigger (capture from hotword DSP buffer) is supported\n by one input profile, the implementation must support the number of active\n streams on this profile corresponding to the number of concurrent sessions\n supported by Sound Trigger HAL.\n\n | **Note:** The implementation of the [Sound trigger HAL](/docs/core/audio/sound-trigger) is located at `/hardware/interfaces/soundtrigger` and is coupled with the Audio HAL.\n- Concurrency of voice call TX and capture from the app processor as\n detailed on the [Concurrent capture](/docs/core/audio/concurrent) page."]]