Po utworzeniu konfiguracji zasad dźwięku należy spakować implementację warstwy HAL do biblioteki współdzielonej i skopiować ją do odpowiedniej lokalizacji:
- Utwórz katalog
device/<company>/<device>/audio
, który będzie zawierał pliki źródłowe biblioteki. - Utwórz plik
Android.mk
, aby zbudować bibliotekę współdzieloną. Upewnij się, że plik Makefile zawiera następujący wiersz:LOCAL_MODULE := audio.primary.<device>
Twoja biblioteka musi mieć nazwę
audio.primary.<device>.so
Android mógł poprawnie załadować bibliotekę.primary
część tej nazwy pliku wskazuje, że ta współdzielona biblioteka jest przeznaczona dla podstawowego sprzętu audio znajdującego się na urządzeniu. Nazwy modułówaudio.a2dp.<device>
iaudio.usb.<device>
są również dostępne dla interfejsów audio Bluetooth i USB. Oto przykładAndroid.mk
ze sprzętu audio Galaxy Nexus:LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := audio.primary.tuna LOCAL_MODULE_RELATIVE_PATH := hw LOCAL_SRC_FILES := audio_hw.c ril_interface.c LOCAL_C_INCLUDES += \ external/tinyalsa/include \ $(call include-path-for, audio-utils) \ $(call include-path-for, audio-effects) LOCAL_SHARED_LIBRARIES := liblog libcutils libtinyalsa libaudioutils libdl LOCAL_MODULE_TAGS := optional include $(BUILD_SHARED_LIBRARY)
- Jeśli Twój produkt obsługuje dźwięk o niskim opóźnieniu, zgodnie z wymaganiami Android CDD, skopiuj odpowiedni plik funkcji XML do swojego produktu. Na przykład w
device/<company>/<device>/device.mk
Makefile produktu:PRODUCT_COPY_FILES := ... PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.audio.low_latency.xml:system/etc/permissions/android.hardware.audio.low_latency.xml \
- Skopiuj utworzony wcześniej plik konfiguracyjny zasad audio do katalogu
system/etc/
wdevice/<company>/<device>/device.mk
Makefile. Na przykład:PRODUCT_COPY_FILES += \ device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
- Zadeklaruj współużytkowane moduły audio HAL, które są wymagane przez produkt, w
device/<company>/<device>/device.mk
Makefile produktu. Na przykład Galaxy Nexus wymaga podstawowego modułu audio HAL i modułu audio Bluetooth:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default