اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
ضبط مكتبة مشتركة
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
بعد إنشاء
إعدادات سياسة الصوت، عليك تجميع تنفيذ HAL في مكتبة مشترَكة
ونسخها إلى الموقع المناسب:
- أنشئ
device/<company>/<device>/audio
مجلدًا يحتوي على ملفات مصدر مكتبتك.
- أنشئ ملف
Android.mk
لإنشاء المكتبة المشتركة. تأكَّد من أنّملف Makefile يحتوي على السطر التالي:
LOCAL_MODULE := audio.primary.<device>
يجب أن يكون اسم مكتبتك audio.primary.<device>.so
لكي يتمكّن Android من تحميل المكتبة بشكل صحيح. يشير الجزء primary
من اسم الملف
هذا إلى أنّ هذه المكتبة المشترَكة مخصّصة لجهاز المعالجة المتقدّمة للصوت
الرئيسي على الجهاز. تتوفر أيضًا أسماء الوحدات
audio.a2dp.<device>
و
audio.usb.<device>
لواجهات الصوت عبر البلوتوث
و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)
- إذا كان منتجك يتيح تشغيل الصوت بوقت استجابة منخفض كما هو محدّد في CDD لنظام التشغيل Android،
انسخ ملف ميزة 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 \
- انسخ ملف ضبط سياسة الصوت الذي أنشأته سابقًا إلى الدليل
system/etc/
فيملف Makefile الخاص بملف
device/<company>/<device>/device.mk
المنتج.
مثلاً:
PRODUCT_COPY_FILES += \
device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
- يمكنك تحديد الوحدات المشتركة لواجهة HAL للصوت التي يتطلبها
المنتج فيملف سازنده
device/<company>/<device>/device.mk
الخاص بالمنتج.
على سبيل المثال، يتطلب هاتف Galaxy Nexus وحدتَي HAL
الأساسية وصوت البلوتوث:
PRODUCT_PACKAGES += \
audio.primary.tuna \
audio.a2dp.default
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-03-26 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-03-26 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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 ```"]]