Konfigurowanie udostępnionej biblioteki

Po utworzeniu zasady dotyczące dźwięku , musisz spakować implementację HAL do zasobów wspólnych. i skopiuj go w odpowiednie miejsce:

  1. Utwórz device/<company>/<device>/audio na pliki źródłowe biblioteki.
  2. Utwórz plik Android.mk, by utworzyć zasoby wspólne. Sprawdź, czy plik Makefile zawiera ten wiersz:
    LOCAL_MODULE := audio.primary.<device>
    

    Biblioteka musi mieć nazwę audio.primary.<device>.so aby Android prawidłowo załadować bibliotekę. Część primary, że ta nazwa pliku wskazuje, że ta udostępniona biblioteka jest przeznaczona do sprzętowy na urządzeniu. Nazwy modułów audio.a2dp.<device> i Urządzenia audio.usb.<device> są również obsługiwane przez Bluetooth i Interfejsy audio USB. Oto przykład atrybutu Android.mk z Sprzęt 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. Jeśli Twój produkt obsługuje dźwięk z małym opóźnieniem, zgodnie z dokumentem CDD dla Androida, skopiuj odpowiedni plik XML funkcji do produktu. Na przykład w pliku device/<company>/<device>/device.mk usługi Plik programu 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. Skopiuj utworzony wcześniej plik konfiguracji zasad audio do Katalog system/etc/ w folderze Twojej usługi device/<company>/<device>/device.mk Plik programu Makefile Na przykład:
    PRODUCT_COPY_FILES += \
            device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
    

  5. Zadeklaruj udostępnione moduły HAL audio, których wymaga produktu w atrybucie device/<company>/<device>/device.mk plik Makefile. Na przykład Galaxy Nexus wymaga głównego interfejsu HAL audio i Bluetootha. moduły:
    PRODUCT_PACKAGES += \
            audio.primary.tuna \
            audio.a2dp.default