Depois de criar uma configuração de política de áudio , você deve empacotar a implementação de HAL em uma biblioteca compartilhada e copiá-la para o local apropriado:
- Crie um diretório
device/<company>/<device>/audio
para conter os arquivos de origem da sua biblioteca. - Crie um arquivo
Android.mk
para criar a biblioteca compartilhada. Certifique-se de que o Makefile contenha a seguinte linha:LOCAL_MODULE := audio.primary.<device>
Sua biblioteca deve ser denominada
audio.primary.<device>.so
que o Android possa carregar a biblioteca corretamente. A parteprimary
deste nome de arquivo indica que esta biblioteca compartilhada é para o hardware de áudio principal localizado no dispositivo. Os nomes dos módulosaudio.a2dp.<device>
eaudio.usb.<device>
também estão disponíveis para interfaces de áudio Bluetooth e USB. Aqui está um exemplo de umAndroid.mk
do hardware de áudio 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)
- Se o seu produto for compatível com áudio de baixa latência conforme especificado pelo CDD do Android, copie o arquivo de recurso XML correspondente em seu produto. Por exemplo, em
device/<company>/<device>/device.mk
Makefile do seu produto: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 de política de áudio que você criou anteriormente para o diretório
system/etc/
emdevice/<company>/<device>/device.mk
Makefile do seu produto. Por exemplo:PRODUCT_COPY_FILES += \ device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
- Declare os módulos compartilhados do seu HAL de áudio que são exigidos pelo seu produto no
device/<company>/<device>/device.mk
Makefile do produto. Por exemplo, o Galaxy Nexus requer os módulos HAL de áudio primário e Bluetooth:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default