Android 16 থেকে শুরু করে, AIDL Audio HAL ইন্টারফেস কনফিগারযোগ্য অডিও নীতি (CAP) সম্পূর্ণভাবে সাপোর্ট করে।
এই পৃষ্ঠায় পার্টনার ও SoC ভেন্ডরদের অডিও নীতি কনফিগারেশন মাইগ্রেট করার ব্যাপারে সাহায্য করার জন্য প্রয়োজনীয় টেকনিক্যাল ব্যাকগ্রাউন্ড প্রদান করা হয়েছে।
প্যারামিটার ফ্রেমওয়ার্ক
CAP-এর প্রয়োগ Intel প্যারামিটার ফ্রেমওয়ার্ক-এর উপর ভিত্তি করে করা হয়। Android 6-এ CAP চালু করা হয়েছে। প্যারামিটার ফ্রেমওয়ার্ক (PfW) প্যারামিটার-এর মাধ্যমে কোনও সিস্টেমকে বর্ণনা করার অনুমতি দেয়। কনফিগারেশন XML ফাইল ব্যবহার করে, PfW প্লাগ-ইন ব্যবহার করে অ্যাকশনের সাথে প্যারামিটার বাইন্ড করে এবং বর্তমান মানদণ্ড অনুযায়ী প্যারামিটার পরিবর্তন করার জন্য নিয়ম প্রদান করে।
HIDL-এ CAP-এর স্ট্রাকচার
HIDL-এ, CAP-এর সব কনফিগারেশন XML-এ উল্লেখ করা ছিল। আরও তথ্যের জন্য প্যারামিটার ফ্রেমওয়ার্ক এবং প্যারামিটার ফ্রেমওয়ার্ক ব্যবহার করে কনফিগারেশন দেখুন। XML ফাইলগুলি নিম্নলিখিতগুলি নির্দিষ্ট করতে ব্যবহৃত হয়েছিল:
- প্যারামিটারের গঠন সংক্রান্ত বিবরণ (অর্থাৎ, PfW-এর জন্য অডিও ডোমেনের বিবরণ)
- মাপকাঠির সংজ্ঞা
- রাউটিং স্ট্র্যাটেজি সংক্রান্ত নিয়ম (ইনপুট ও আউটপুট ডিভাইস বেছে নেওয়া)
- ভলিউম টেবিলের স্পেসিফিকেশন
HIDL-এর মাধ্যমে, Android ফ্রেমওয়ার্ক এইসব XML ফাইল সরাসরি ভেন্ডর পার্টিশন থেকে লোড করতে পারে। এটি অনুমোদিত ছিল কারণ এই XML ফাইলের জন্য HAL API-এর অংশ হিসেবে একটি XSD স্কিমা সংজ্ঞায়িত করা হয়েছিল। HIDL HAL-এর প্রতিটি প্রধান রিলিজে একটি সংশ্লিষ্ট XSD স্কিমা ছিল। মেজর রিলিজের ক্ষেত্রে ব্যাকওয়ার্ড কম্প্যাটিবিলিটির প্রয়োজন নেই।
AIDL-এ CAP-এর স্ট্রাকচার
AIDL-এ ট্রানজিশনের সাথে, HAL API রিলিজগুলিকে অবশ্যই ব্যাকওয়ার্ড-কম্প্যাটিবল থাকতে হবে (HIDL-এর শর্তাবলী অনুসারে, AIDL HAL-এর প্রতিটি রিলিজ হল একটি "মাইনর" আপডেট)। XSD স্কিমা আর HAL API-এর অংশ হিসেবে ব্যবহার করা যাবে না কারণ স্কিমার ব্যাকওয়ার্ড কম্প্যাটিবল আপডেট সংজ্ঞায়িত করার কোনও প্রতিষ্ঠিত উপায় নেই। তাই, XML ফাইলে আগে থেকে সংজ্ঞায়িত কনফিগারেশন এখন AIDL API ব্যবহার করে HAL-কে প্রদান করতে হবে। এটি সহজ করতে, CAP কনফিগারেশনের স্ট্রাকচারকে Android 15-এর জন্য AIDL অডিও HAL-এর অডিও নীতি কনফিগারেশন XML-এর মতো AIDL-এ কনভার্ট করা হয়।
সাধারণ স্থিতিশীল ডেটার ধরন এবং নিম্নলিখিত পার্সেলযোগ্য আইটেমগুলিতে CAP-এর জন্য ডেটা স্ট্রাকচার যোগ করা হয়:
AudioHalCapConfiguration.aidlAudioHalCapCriterionV2.aidlAudioHalCapDomain.aidlAudioHalCapParameter.aidlAudioHalCapRule.aidl
CAP কনফিগারেশনের এন্ট্রি পয়েন্ট
AudioHalEngineConfig.CapSpecificConfig
স্ট্রাকচারে আছে। CAP ডেটা স্ট্রাকচারের ডায়াগ্রামের জন্য
AudioHalCapConfiguration.aidl
-এ কমেন্ট দেখুন।
AIDL HAL-এর ডিফল্ট ইমপ্লিমেন্টেশনে একটি হেল্পার ক্লাস থাকে যা পার্টনারদের মাইগ্রেশন সহজ করার জন্য লেগ্যাসি CAP XML ফাইলের কন্টেন্টের উপর ভিত্তি করে AIDL পার্সেলযোগ্য ডেটা পূরণ করে।
মাইগ্রেশন সংক্রান্ত পরিস্থিতি
পার্টনাররা এই বিভাগে তালিকাভুক্ত বিকল্পগুলি বিবেচনা করতে পারেন, এটি আগে CAP ব্যবহার করেনি এমন কোনও প্রোডাক্টের প্রথম লঞ্চ নাকি আগে থেকেই থাকা প্রোডাক্টের মাইগ্রেশন, তার উপর ভিত্তি করে।
নতুন প্রোডাক্ট
নতুন প্রোডাক্টের ক্ষেত্রে, অডিও নীতি প্রয়োগের জন্য CAP ব্যবহার করা শুরু করলে, OEM, ভেন্ডর সাইডে CAP কনফিগারেশন স্টোর করার জন্য XML ব্যবহার করার বিকল্প বেছে নিতে পারে।
XML ব্যবহারের সুবিধা হল, স্ক্রিপ্টিং টুল এর একটি সেট আছে যা উচ্চ-স্তরের বিবরণ থেকে কনফিগারেশন তৈরি করতে সাহায্য করে।
OEM যদি ভেন্ডর পার্টিশনে CAP কনফিগারেশন স্টোর করার জন্য XML ব্যবহার করার সিদ্ধান্ত নেয়, তাহলে কনফিগারেশনকে AIDL-এ কনভার্ট করার জন্য XML পার্সারের ডিফল্ট ইমপ্লিমেন্টেশন ব্যবহার করার সাজেশন দেওয়া হয়।
আগে থেকে থাকা প্রোডাক্টের জন্য আপডেট করুন
প্রোডাক্টে আগে থেকেই CAP ব্যবহার করা হলে এবং সেই কারণে XML কনফিগারেশন থাকলে, আপনি HAL-এর AIDL ভার্সনের সাথে আগে থেকে থাকা CAP ব্যবহার করা চালিয়ে যেতে পারবেন।
CAP কনফিগারেশনের HIDL এবং AIDL
ভার্সনে প্রোডাক্ট স্ট্র্যাটেজির নামকরণের কনভেনশন আলাদা হয়। HIDL-এ বিল্ট-ইন ("লেগ্যাসি") স্ট্র্যাটেজি
media-এর মতো ছোট হাতের অক্ষর দিয়ে লেখা সংক্ষিপ্ত নাম ব্যবহার করে, যেখানে AIDL-এ বিল্ট-ইন স্ট্র্যাটেজি
STRATEGY_ দিয়ে প্রিফিক্স করা সম্পূর্ণ বড় হাতের অক্ষর দিয়ে লেখা নাম ব্যবহার করে, যেমন STRATEGY_MEDIA। CapProductStrategies.xml-এ
বিল্ট-ইন স্ট্র্যাটেজির
তালিকা দেখুন।
একই ফাইলে OEM-নির্দিষ্ট স্ট্র্যাটেজির জন্য "প্রি-অ্যালোকেট করা" আইডি সংজ্ঞায়িত করা হয়, যা
vx_10xx-এর নামকরণের প্যাটার্ন অনুসরণ করে এবং এতে 1000 থেকে 1039 পর্যন্ত সংখ্যা থাকে।
পুরনো প্রোডাক্ট
CAP-এর উপর নির্ভর করে এমন প্রোডাক্ট যদি তার ভেন্ডর পার্টিশন আপডেট না করে এবং HIDL-এ থেকে যায়, তাহলে আপনি সিস্টেম পার্টিশন Android 16-এ আপডেট করতে পারবেন। ফ্রেমওয়ার্কটি লেগ্যাসি CAP কনফিগারেশনের সাথে মানানসই থাকে।
প্রয়োগের উদাহরণ
পার্টনারদের প্ল্যাটফর্মে CAP প্রয়োগ করতে সাহায্য করার জন্য, AOSP-তে AIDL
HAL-এর সাথে CAP ব্যবহার করে এমন Cuttlefish ভার্চুয়াল ডিভাইসের "অটোমোটিভ" ফ্লেভারের
উদাহরণ আছে। ডিভাইস-নির্দিষ্ট কনফিগারেশন
device/google/cuttlefish/shared/auto/audio/policy/engine-এ অবস্থিত,
যার lunch টার্গেট নাম হল aosp_cf_x86_64_auto। Android.bp ফাইলটি CAP ভেন্ডর ফাইলের সম্পূর্ণ সেট জেনারেট করার জন্য রেফারেন্স হিসেবে
ব্যবহার করা যেতে পারে।