27 Mart 2025'ten itibaren AOSP'yi derlemek ve AOSP'ye katkıda bulunmak için aosp-main
yerine android-latest-release
kullanmanızı öneririz. Daha fazla bilgi için AOSP'de yapılan değişiklikler başlıklı makaleyi inceleyin.
Paylaşılan kitaplığı yapılandırma
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Bir ses politikası yapılandırması oluşturduktan sonra HAL uygulamasını bir paylaşılan kitaplığa paketlemeniz ve uygun konuma kopyalamanız gerekir:
- Kitaplığınızın kaynak dosyalarını içerecek bir
device/<company>/<device>/audio
dizin oluşturun.
- Paylaşılan kitaplığı oluşturmak için bir
Android.mk
dosyası oluşturun. Makefile'in aşağıdaki satırı içerdiğinden emin olun:
LOCAL_MODULE := audio.primary.<device>
Android'in kitaplığı doğru şekilde yükleyebilmesi için kitaplığınızın adı audio.primary.<device>.so
olmalıdır. Bu dosya adının primary
kısmı, bu paylaşılan kitaplığın cihazdaki birincil ses donanımı için olduğunu gösterir. audio.a2dp.<device>
ve audio.usb.<device>
modül adları Bluetooth ve USB ses arabirimleri için de kullanılabilir. Galaxy Nexus ses donanımındaki bir Android.mk
örneğini aşağıda görebilirsiniz:
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)
- Ürününüz, Android CDD tarafından belirtildiği gibi düşük gecikmeli sesi destekliyorsa ilgili XML özellik dosyasını ürününüze kopyalayın. Örneğin, ürününüzün
device/<company>/<device>/device.mk
makefile'inde:
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 \
- Daha önce oluşturduğunuz ses politikası yapılandırma dosyasını ürününüzün
device/<company>/<device>/device.mk
Makefile'indeki system/etc/
dizinine kopyalayın.
Örnek:
PRODUCT_COPY_FILES += \
device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
- Ürününüzün ihtiyaç duyduğu ses HAL'inizin paylaşılan modüllerini ürünün
device/<company>/<device>/device.mk
Makefile dosyasında tanımlayın.
Örneğin, Galaxy Nexus için birincil ve Bluetooth ses HAL modülleri gerekir:
PRODUCT_PACKAGES += \
audio.primary.tuna \
audio.a2dp.default
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-03-26 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-03-26 UTC."],[],[],null,["# Configure a shared library\n\nAfter creating an\n[audio policy\nconfiguration](/docs/core/audio/implement-policy), you must package the HAL implementation into a shared library\nand copy it to the appropriate location:\n\n1. Create a `device/\u003ccompany\u003e/\u003cdevice\u003e/audio` directory to contain your library's source files.\n2. Create an `Android.mk` file to build the shared library. Ensure the Makefile contains the following line: \n\n ```\n LOCAL_MODULE := audio.primary.\u003cdevice\u003e\n ```\n\n Your library must be named `audio.primary.\u003cdevice\u003e.so`\n so Android can correctly load the library. The `primary` portion of\n this filename indicates that this shared library is for the primary audio\n hardware located on the device. The module names\n `audio.a2dp.\u003cdevice\u003e` and\n `audio.usb.\u003cdevice\u003e` are also available for Bluetooth and\n USB audio interfaces. Here is an example of an `Android.mk` from the\n Galaxy Nexus audio hardware: \n\n ```\n LOCAL_PATH := $(call my-dir)\n\n include $(CLEAR_VARS)\n\n LOCAL_MODULE := audio.primary.tuna\n LOCAL_MODULE_RELATIVE_PATH := hw\n LOCAL_SRC_FILES := audio_hw.c ril_interface.c\n LOCAL_C_INCLUDES += \\\n external/tinyalsa/include \\\n $(call include-path-for, audio-utils) \\\n $(call include-path-for, audio-effects)\n LOCAL_SHARED_LIBRARIES := liblog libcutils libtinyalsa libaudioutils libdl\n LOCAL_MODULE_TAGS := optional\n\n include $(BUILD_SHARED_LIBRARY)\n ```\n\n3. If your product supports low latency audio as specified by the Android CDD, copy the corresponding XML feature file into your product. For example, in your product's `device/\u003ccompany\u003e/\u003cdevice\u003e/device.mk` Makefile: \n\n ```\n PRODUCT_COPY_FILES := ...\n\n PRODUCT_COPY_FILES += \\\n frameworks/native/data/etc/android.hardware.audio.low_latency.xml:system/etc/permissions/android.hardware.audio.low_latency.xml \\\n ```\n\n4. Copy the audio policy configuration file you created earlier to the `system/etc/` directory in your product's `device/\u003ccompany\u003e/\u003cdevice\u003e/device.mk` Makefile. For example: \n\n ```\n PRODUCT_COPY_FILES += \\\n device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf\n ```\n\n5. Declare the shared modules of your audio HAL that are required by your product in the product's `device/\u003ccompany\u003e/\u003cdevice\u003e/device.mk` Makefile. For example, the Galaxy Nexus requires the primary and Bluetooth audio HAL modules: \n\n ```\n PRODUCT_PACKAGES += \\\n audio.primary.tuna \\\n audio.a2dp.default\n ```"]]