Nachdem Sie eine Audiorichtlinienkonfiguration erstellt haben, müssen Sie die HAL-Implementierung in eine freigegebene Bibliothek verpacken und an den richtigen Speicherort kopieren:
- Erstellen Sie ein
device/<company>/<device>/audio
-Verzeichnis für die Quelldateien Ihrer Bibliothek. - Erstellen Sie eine
Android.mk
-Datei, um die freigegebene Bibliothek zu erstellen. Das Makefile muss die folgende Zeile enthalten:
LOCAL_MODULE := audio.primary.<device>
Ihre Bibliothek muss den Namen
audio.primary.<device>.so
haben, damit Android sie korrekt laden kann. Der Teilprimary
dieses Dateinamens gibt an, dass diese freigegebene Mediathek für die primäre Audiohardware auf dem Gerät bestimmt ist. Die Modulnamenaudio.a2dp.<device>
undaudio.usb.<device>
sind auch für Bluetooth- und USB-Audioschnittstellen verfügbar. Hier ist ein Beispiel für eineAndroid.mk
aus der Audiohardware des 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)
- Wenn Ihr Produkt Audio mit niedriger Latenz gemäß der Android-CDD unterstützt, kopieren Sie die entsprechende XML-Funktionsdatei in Ihr Produkt. Beispielsweise im
device/<company>/<device>/device.mk
-Makefile 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 Konfigurationsdatei für die Audiorichtlinie in das Verzeichnis
system/etc/
im Makefiledevice/<company>/<device>/device.mk
Ihres Produkts. Beispiel:PRODUCT_COPY_FILES += \ device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
- Deklarieren Sie die freigegebenen Module Ihrer Audio-HAL, die für Ihr Produkt erforderlich sind, im
device/<company>/<device>/device.mk
-Makefile des Produkts. Für das Galaxy Nexus sind beispielsweise die primären und Bluetooth-Audio-HAL-Module erforderlich:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default