После создания конфигурации правил аудио необходимо упаковать реализацию HAL в общую библиотеку и скопировать ее в соответствующее место:
- Создайте каталог
device/<company>/<device>/audio, в котором будут храниться исходные файлы библиотеки. - Создайте файл
Android.mk, чтобы создать общую библиотеку. Убедитесь, что файл Makefile содержит следующую строку:
LOCAL_MODULE := audio.primary.<device>
Библиотека должна называться
audio.primary.<device>.so, чтобы Android мог правильно ее загрузить. Частьprimaryв названии файла указывает, что эта общая библиотека предназначена для основного аудиооборудования, расположенного на устройстве. Названия модулейaudio.a2dp.<device>иaudio.usb.<device>также доступны для аудиоинтерфейсов Bluetooth и USB. Вот примерAndroid.mkиз аудиооборудования 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) - Если ваше устройство поддерживает аудио с низкой задержкой, как указано в документе CDD для Android, скопируйте соответствующий XML-файл в продукт. Например, в файле
device/<company>/<device>/device.mkMakefile продукта: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 \
- Скопируйте файл конфигурации правил для аудио, созданный ранее, в каталог
system/etc/в файле Makefile продуктаdevice/<company>/<device>/device.mk. Пример:PRODUCT_COPY_FILES += \ device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf - Задекларируйте общие модули HAL аудио, необходимые для вашего продукта, в файле Makefile
device/<company>/<device>/device.mkпродукта. Например, для Galaxy Nexus требуются основной и Bluetooth-модули HAL аудио:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default