Mengonfigurasi Pustaka Bersama

Setelah membuat konfigurasi kebijakan audio , Anda harus mengemas implementasi HAL ke dalam pustaka bersama dan menyalinnya ke lokasi yang sesuai:

  1. Buat direktori device/<company>/<device>/audio untuk menampung file sumber perpustakaan Anda.
  2. Buat file Android.mk untuk membangun perpustakaan bersama. Pastikan Makefile berisi baris berikut:
    LOCAL_MODULE := audio.primary.<device>
    

    Pustaka Anda harus diberi nama audio.primary.<device>.so Android dapat memuat pustaka dengan benar. Bagian primary dari nama file ini menunjukkan bahwa pustaka bersama ini adalah untuk perangkat keras audio utama yang terletak di perangkat. Nama modul audio.a2dp.<device> dan audio.usb.<device> juga tersedia untuk antarmuka audio Bluetooth dan USB. Berikut adalah contoh Android.mk dari perangkat keras audio 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. Jika produk Anda mendukung audio latensi rendah seperti yang ditentukan oleh CDD Android, salin file fitur XML yang sesuai ke dalam produk Anda. Misalnya, di device/<company>/<device>/device.mk Anda Makefile: l10n
    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. Salin file konfigurasi kebijakan audio yang Anda buat sebelumnya ke direktori system/etc/ di device/<company>/<device>/device.mk Makefile produk Anda. Misalnya:
    PRODUCT_COPY_FILES += \
            device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
    

  5. Deklarasikan modul bersama HAL audio Anda yang diperlukan oleh produk Anda di device/<company>/<device>/device.mk Makefile produk produk. Misalnya, Galaxy Nexus memerlukan modul HAL audio utama dan Bluetooth:
    PRODUCT_PACKAGES += \
            audio.primary.tuna \
            audio.a2dp.default