Después de crear un política de audio , debes empaquetar la implementación de HAL en una biblioteca compartida. y cópialo en la ubicación correspondiente:
- Crea un
device/<company>/<device>/audio
para que contenga los archivos de origen de la biblioteca. - Crea un archivo
Android.mk
para compilar la biblioteca compartida. Asegúrate de que el Makefile contiene la siguiente línea:
LOCAL_MODULE := audio.primary.<device>
El nombre de tu biblioteca debe ser
audio.primary.<device>.so
. para que Android pueda cargar correctamente la biblioteca. La porciónprimary
de este nombre de archivo indica que esta biblioteca compartida es para el audio principal hardware ubicado en el dispositivo. Los nombres de los módulosaudio.a2dp.<device>
yaudio.usb.<device>
también están disponibles para Bluetooth y Interfaces de audio USB Este es un ejemplo de unAndroid.mk
del Hardware de audio de 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 tu producto admite audio de baja latencia según lo especificado en el CDD de Android,
copia el archivo XML de funciones correspondiente en tu producto. Por ejemplo, en tu
device/<company>/<device>/device.mk
del producto Archivo 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 \
- Copia el archivo de configuración de la política de audio que creaste anteriormente en el
system/etc/
en el directorio de tu producto Archivo makefile dedevice/<company>/<device>/device.mk
. Por ejemplo:PRODUCT_COPY_FILES += \ device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
- Declara los módulos compartidos de la HAL de audio que requiere tu
producto en la lista
Archivo Make
device/<company>/<device>/device.mk
. Por ejemplo, el Galaxy Nexus requiere la HAL de audio principal y la de Bluetooth módulos:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default