हमारा सुझाव है कि 27 मार्च, 2025 से AOSP को बनाने और उसमें योगदान देने के लिए, aosp-main
के बजाय android-latest-release
का इस्तेमाल करें. ज़्यादा जानकारी के लिए, AOSP में हुए बदलाव लेख पढ़ें.
शेयर की जा सकने वाली लाइब्रेरी कॉन्फ़िगर करना
संग्रह की मदद से व्यवस्थित रहें
अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.
ऑडियो नीति का कॉन्फ़िगरेशन बनाने के बाद, आपको एचएएल लागू करने की प्रोसेस को शेयर की गई लाइब्रेरी में पैकेज करना होगा और उसे सही जगह पर कॉपी करना होगा:
- अपनी लाइब्रेरी की सोर्स फ़ाइलों को शामिल करने के लिए,
device/<company>/<device>/audio
डायरेक्ट्री बनाएं.
- शेयर की जाने वाली लाइब्रेरी बनाने के लिए,
Android.mk
फ़ाइल बनाएं. पक्का करें कि Makefile में यह लाइन मौजूद हो:
LOCAL_MODULE := audio.primary.<device>
आपकी लाइब्रेरी का नाम audio.primary.<device>.so
होना चाहिए, ताकि Android उसे सही तरीके से लोड कर सके. फ़ाइल के नाम के primary
हिस्से से पता चलता है कि यह शेयर की गई लाइब्रेरी, डिवाइस पर मौजूद मुख्य ऑडियो हार्डवेयर के लिए है. मॉड्यूल के नाम audio.a2dp.<device>
और audio.usb.<device>
, ब्लूटूथ और यूएसबी ऑडियो इंटरफ़ेस के लिए भी उपलब्ध हैं. यहां Galaxy Nexus के ऑडियो हार्डवेयर से मिले Android.mk
का उदाहरण दिया गया है:
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 में बताए गए तरीके से कम इंतज़ार वाले ऑडियो की सुविधा देता है, तो उससे जुड़ी एक्सएमएल फ़ाइल को अपने प्रॉडक्ट में कॉपी करें. उदाहरण के लिए, आपके प्रॉडक्ट के
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
फ़ाइल में मौजूद system/etc/
डायरेक्ट्री में कॉपी करें.
उदाहरण के लिए:
PRODUCT_COPY_FILES += \
device/samsung/tuna/audio/audio_policy.conf:system/etc/audio_policy.conf
- अपने ऑडियो एचएएल के उन शेयर किए गए मॉड्यूल के बारे में बताएं जो आपके प्रॉडक्ट के लिए ज़रूरी हैं. इसके लिए, प्रॉडक्ट के
device/<company>/<device>/device.mk
Makefile में जाएं.
उदाहरण के लिए, Galaxy Nexus को प्राइमरी और ब्लूटूथ ऑडियो एचएएल मॉड्यूल की ज़रूरत होती है:
PRODUCT_PACKAGES += \
audio.primary.tuna \
audio.a2dp.default
इस पेज पर मौजूद कॉन्टेंट और कोड सैंपल कॉन्टेंट के लाइसेंस में बताए गए लाइसेंस के हिसाब से हैं. Java और OpenJDK, Oracle और/या इससे जुड़ी हुई कंपनियों के ट्रेडमार्क या रजिस्टर किए हुए ट्रेडमार्क हैं.
आखिरी बार 2025-03-26 (UTC) को अपडेट किया गया.
[[["समझने में आसान है","easyToUnderstand","thumb-up"],["मेरी समस्या हल हो गई","solvedMyProblem","thumb-up"],["अन्य","otherUp","thumb-up"]],[["वह जानकारी मौजूद नहीं है जो मुझे चाहिए","missingTheInformationINeed","thumb-down"],["बहुत मुश्किल है / बहुत सारे चरण हैं","tooComplicatedTooManySteps","thumb-down"],["पुराना","outOfDate","thumb-down"],["अनुवाद से जुड़ी समस्या","translationIssue","thumb-down"],["सैंपल / कोड से जुड़ी समस्या","samplesCodeIssue","thumb-down"],["अन्य","otherDown","thumb-down"]],["आखिरी बार 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 ```"]]