Nachdem Sie eine Audiorichtlinienkonfiguration erstellt haben, müssen Sie die HAL-Implementierung in eine gemeinsam genutzte Bibliothek packen und an den entsprechenden Speicherort kopieren:
- Erstellen Sie ein Verzeichnis
device/<company>/<device>/audio
“, das die Quelldateien Ihrer Bibliothek enthält. - Erstellen Sie eine
Android.mk
-Datei, um die gemeinsam genutzte Bibliothek zu erstellen. Stellen Sie sicher, dass das Makefile die folgende Zeile enthält:LOCAL_MODULE := audio.primary.<device>
Ihre Bibliothek muss den Namen
audio.primary.<device>.so
, damit Android die Bibliothek korrekt laden kann. Derprimary
Teil dieses Dateinamens gibt an, dass diese gemeinsam genutzte Bibliothek für die primäre Audiohardware auf dem Gerät bestimmt ist. Dieaudio.a2dp.<device>
undaudio.usb.<device>
sind auch für Bluetooth- und USB-Audiointerfaces verfügbar. Hier ist ein Beispiel für eineAndroid.mk
von der Galaxy Nexus-Audiohardware: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)
- Wenn Ihr Produkt Audio mit niedriger Latenz unterstützt, wie von der Android CDD angegeben, kopieren Sie die entsprechende XML-Funktionsdatei in Ihr Produkt. Zum Beispiel in der
device/<company>/<device>/device.mk
Ihres Produkts: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 \
- Kopieren Sie die zuvor erstellte Audiorichtlinien-Konfigurationsdatei in das Verzeichnis
system/etc/
im Makefile Ihres Produkts „device/<company>/<device>/device.mk
. Zum Beispiel:PRODUCT_COPY_FILES += \ device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
- Deklarieren Sie die gemeinsam genutzten Module Ihrer Audio-HAL, die von Ihrem Produkt benötigt werden, im makefile des Produkts
device/<company>/<device>/device.mk
. Zum Beispiel erfordert das Galaxy Nexus die primären und Bluetooth-Audio-HAL-Module:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default