オーディオ ポリシー構成の作成後は、HAL 実装を共有ライブラリにパッケージ化し、次のように適切な場所にコピーする必要があります。
- ライブラリのソースファイルを含む
device/<company>/<device>/audio
ディレクトリを作成します。 Android.mk
ファイルを作成して、共有ライブラリをビルドします。Makefile に次の記述が含まれていることを確認します。
LOCAL_MODULE := audio.primary.<device>
Android でライブラリを正しくロードできるように、ライブラリの名前は
audio.primary.<device>.so
とします。ファイル名のprimary
という部分は、この共有ライブラリがデバイスのプライマリ オーディオ ハードウェア用であることを示します。モジュール名audio.a2dp.<device>
とaudio.usb.<device>
は、Bluetooth および USB オーディオ インターフェースでも使用されます。Android.mk
に関する 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)
- Android CDD で指定される低遅延オーディオをデバイスがサポートしている場合、対応する XML 機能ファイルをデバイスにコピーします。たとえば、デバイスの
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 \
- 作成済みのオーディオ ポリシー構成ファイルを、デバイスの
device/<company>/<device>/device.mk
Makefile のsystem/etc/
ディレクトリにコピーします。次に例を示します。PRODUCT_COPY_FILES += \ device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
- デバイスの
device/<company>/<device>/device.mk
Makefile で、必要となるオーディオ HAL の共有モジュールを宣言します。たとえば、Galaxy Nexus では、次のようにプライマリおよび Bluetooth オーディオ HAL モジュールが必要となります。PRODUCT_PACKAGES += \ audio.primary.tuna \ audio.a2dp.default