Định cấu hình thư viện dùng chung

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:

  1. Tạo thư mục device/<company>/<device>/audio để chứa các tệp nguồn thư viện của bạn.
  2. 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ần primary 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>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)
    

  3. 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 \
    

  4. 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/ trong device/<company>/<device>/device.mk Makefile. Ví dụ:
    PRODUCT_COPY_FILES += \
            device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
    

  5. 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