Định cấu hình thư viện chia sẻ

Sau khi tạo một chính sách về âm thanh cấu hình, bạn phải đóng gói triển khai HAL vào một thư viện dùng chung và sao chép nó vào vị trí thích hợp:

  1. Tạo một device/<company>/<device>/audio để chứa tệp nguồn của thư viện.
  2. Tạo tệp Android.mk để xây dựng thư viện dùng chung. Đả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 để Android có thể tải thư viện chính xác. Phần primary của tên tệp này cho biết thư viện dùng chung này là dành cho âm thanh chính đặt trên thiết bị. Tên mô-đun audio.a2dp.<device>audio.usb.<device> cũng hỗ trợ Bluetooth và Giao diện âm thanh 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)
    

  3. Nếu sản phẩm của bạn hỗ trợ âm thanh có độ trễ thấp theo quy định của Android CDD, 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 của sản phẩm Tệp tạo tệp:
    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 mà bạn đã tạo trước đó vào Thư mục system/etc/ trong thư mục của sản phẩm Tệp Makefile device/<company>/<device>/device.mk. 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 mà bạn yêu cầu của sản phẩm Tệp Makefile device/<company>/<device>/device.mk. Ví dụ: Galaxy Nexus yêu cầu HAL (Lớp trừu tượng phần cứng) cho âm thanh chính và âm thanh Bluetooth mô-đun:
    PRODUCT_PACKAGES += \
            audio.primary.tuna \
            audio.a2dp.default