Sau khi tạo cấu hình chính sách âm thanh , bạn phải đóng gói việc triển khai HAL vào một thư viện được chia sẻ và sao chép 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 thư viện của bạn. - Tạo tệp
Android.mk
để xây dựng thư viện được chia sẻ. Đảm bảo Makefile chứa dòng sau:LOCAL_MODULE := audio.primary.<device>
Thư viện của bạn phải được đặt tên là
audio.primary.<device>.so
Vì vậy, 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 rằng thư viện được chia sẻ này dành cho phần cứng âm thanh chính nằm trên thiết bị. Tên mô-đun làaudio.a2dp.<device>
vàaudio.usb.<device>
cũng khả dụng cho các giao diện âm thanh Bluetooth và USB. Dưới đây là một 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 theo chỉ đị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
device/<company>/<device>/device.mk
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 \
- Sao chép tệp cấu hình chính sách âm thanh bạn đã tạo trước đó vào thư mục
system/etc/
trongdevice/<company>/<device>/device.mk
Makefile. 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 được sản phẩm của bạn yêu cầu trong
device/<company>/<device>/device.mk
Makefile. Ví dụ: Galaxy Nexus yêu cầu mô-đun HAL âm thanh chính và Bluetooth:PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default