27 মার্চ, 2025 থেকে, আমরা AOSP তৈরি করতে এবং অবদান রাখতে aosp-main
এর পরিবর্তে android-latest-release
ব্যবহার করার পরামর্শ দিচ্ছি। আরও তথ্যের জন্য, AOSP-তে পরিবর্তনগুলি দেখুন।
একটি ভাগ করা লাইব্রেরি কনফিগার করুন
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
একটি অডিও নীতি কনফিগারেশন তৈরি করার পরে, আপনাকে অবশ্যই একটি শেয়ার্ড লাইব্রেরিতে এইচএএল বাস্তবায়ন প্যাকেজ করতে হবে এবং উপযুক্ত অবস্থানে অনুলিপি করতে হবে:
- আপনার লাইব্রেরির সোর্স ফাইল ধারণ করার জন্য একটি
device/<company>/<device>/audio
ডিরেক্টরি তৈরি করুন - ভাগ করা লাইব্রেরি তৈরি করতে একটি
Android.mk
ফাইল তৈরি করুন৷ নিশ্চিত করুন যে মেকফাইলে নিম্নলিখিত লাইন রয়েছে:
LOCAL_MODULE := audio.primary.<device>
আপনার লাইব্রেরির নাম হতে হবে audio.primary.<device>.so
তাই Android সঠিকভাবে লাইব্রেরি লোড করতে পারে৷ এই ফাইলের নামের primary
অংশটি নির্দেশ করে যে এই ভাগ করা লাইব্রেরিটি ডিভাইসে অবস্থিত প্রাথমিক অডিও হার্ডওয়্যারের জন্য। মডিউলটির নাম audio.a2dp.<device>
এবং audio.usb.<device>
এছাড়াও Bluetooth এবং USB অডিও ইন্টারফেসের জন্য উপলব্ধ। এখানে গ্যালাক্সি নেক্সাস অডিও হার্ডওয়্যার থেকে 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 দ্বারা নির্দিষ্ট করা কম লেটেন্সি অডিও সমর্থন করে, তাহলে আপনার পণ্যে সংশ্লিষ্ট 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-এর শেয়ার করা মডিউলগুলি ঘোষণা করুন যা আপনার পণ্যের জন্য প্রয়োজনীয়। উদাহরণস্বরূপ, গ্যালাক্সি নেক্সাসের প্রাথমিক এবং ব্লুটুথ অডিও HAL মডিউল প্রয়োজন:
PRODUCT_PACKAGES += \
audio.primary.tuna \
audio.a2dp.default
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। 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 ```"]]