Depois de criar um política de áudio , você precisa empacotar a implementação da HAL em uma biblioteca compartilhada e copie-o no local apropriado:
- Criar um
device/<company>/<device>/audio
para conter os arquivos de origem da biblioteca. - Crie um arquivo
Android.mk
para criar a biblioteca compartilhada. Garanta o Makefile contém a seguinte linha:
LOCAL_MODULE := audio.primary.<device>
O nome da sua biblioteca precisa ser
audio.primary.<device>.so
para que o Android possa carregar a biblioteca corretamente. A parteprimary
de esse nome de arquivo indica que esta biblioteca compartilhada é para o áudio principal do hardware localizado no dispositivo. Os nomes dos módulosaudio.a2dp.<device>
eaudio.usb.<device>
também estão disponíveis para Bluetooth e Interfaces de áudio USB. Aqui está um exemplo deAndroid.mk
do Hardware de áudio do 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)
- Caso seu produto seja compatível com áudio de baixa latência, conforme especificado pelo CDD do Android,
copie o arquivo de recurso XML correspondente para seu produto. Por exemplo, no seu
device/<company>/<device>/device.mk
do produto 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 o arquivo de configuração da política de áudio criado anteriormente no
system/etc/
na tabela do seu produto Makefiledevice/<company>/<device>/device.mk
. Exemplo:PRODUCT_COPY_FILES += \ device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
- Declare os módulos compartilhados da HAL de áudio exigidos pelo
produto na
device/<company>/<device>/device.mk
Makefile. Por exemplo, o Galaxy Nexus requer a HAL de áudio principal e Bluetooth módulos:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default