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 compilar la biblioteca compartida. Asegúrese de que el Makefile contenga la siguiente línea:LOCAL_MODULE := audio.primary.<device>
Su biblioteca debe llamarse
audio.primary.<device>.so
que Android pueda cargar la biblioteca correctamente. 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 las interfaces de audio Bluetooth y USB. Aquí hay 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 la CDD de Android, copie el archivo de función XML correspondiente en su producto. Por ejemplo, en el
device/<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
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 requiere su producto en el
device/<company>/<device>/device.mk
Makefile. Por ejemplo, el Galaxy Nexus requiere los módulos HAL de audio principal y Bluetooth:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default