Después de crear una configuración de política de audio , debe empaquetar la implementación de HAL en una biblioteca compartida y copiarla en la ubicación adecuada:
- Cree un directorio
device/<company>/<device>/audio
para contener los archivos fuente de su biblioteca. - Cree un archivo
Android.mk
para construir la biblioteca compartida. Asegúrese de que Makefile contenga la siguiente línea:
LOCAL_MODULE := audio.primary.<device>
Su biblioteca debe llamarse
audio.primary.<device>.so
que Android pueda cargar correctamente la biblioteca. La parteprimary
de este nombre de archivo indica que esta biblioteca compartida es para el hardware de audio principal ubicado en el dispositivo. Los nombres de móduloaudio.a2dp.<device>
yaudio.usb.<device>
también están disponibles para interfaces de audio Bluetooth y USB. A continuación, se muestra un ejemplo de unAndroid.mk
del hardware de 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)
- Si su producto admite audio de baja latencia según lo especificado por el CDD de Android, copie el archivo de características XML correspondiente en su producto. Por ejemplo, en el
device/<company>/<device>/device.mk
su productodevice/<company>/<device>/device.mk
Makefile: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 \
- Copie el archivo de configuración de la política de audio que creó anteriormente en el directorio del
system/etc/
en eldevice/<company>/<device>/device.mk
Makefile de su producto. Por ejemplo:PRODUCT_COPY_FILES += \ device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
- Declare los módulos compartidos de su HAL de audio que su producto requiere en el
device/<company>/<device>/device.mk
Makefile del producto. Por ejemplo, el Galaxy Nexus requiere los módulos HAL de audio principal y Bluetooth:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default