Sau khi tạo cấu hình chính sách âm thanh, bạn phải đóng gói quá trình triển khai HAL vào một thư viện dùng chung và sao chép thư viện đó vào vị trí thích hợp:
- Tạo thư mục
device/<company>/<device>/audio
để chứa các tệp nguồn của thư viện. - Tạo tệp
Android.mk
để tạo thư viện dùng chung. Đảm bảo Makefile chứa dòng sau:
LOCAL_MODULE := audio.primary.<device>
Bạn phải đặt tên thư viện là
audio.primary.<device>.so
để Android có thể tải thư viện một cách chính xác. Phầnprimary
của tên tệp này cho biết thư viện dùng chung này dành cho phần cứng âm thanh chính nằm trên thiết bị. Tên mô-đunaudio.a2dp.<device>
vàaudio.usb.<device>
cũng có sẵn cho giao diện âm thanh Bluetooth và USB. Dưới đây là ví dụ vềAndroid.mk
từ phần cứng âm thanh 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)
- Nếu sản phẩm của bạn hỗ trợ âm thanh có độ trễ thấp như quy định của Android CDD, hãy sao chép tệp tính năng XML tương ứng vào sản phẩm của bạn. Ví dụ: trong Makefile
device/<company>/<device>/device.mk
của sản phẩm: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 \
- Sao chép tệp cấu hình chính sách âm thanh mà bạn đã tạo trước đó vào thư mục
system/etc/
trong Makefiledevice/<company>/<device>/device.mk
của sản phẩm. Ví dụ:PRODUCT_COPY_FILES += \ device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
- Khai báo các mô-đun dùng chung của HAL âm thanh mà sản phẩm của bạn yêu cầu trong Makefile
device/<company>/<device>/device.mk
của sản phẩm. Ví dụ: Galaxy Nexus yêu cầu các mô-đun HAL âm thanh chính và Bluetooth:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default