AIDL HAL-এ কনফিগারযোগ্য অডিও নীতি সমর্থন

Android 16 দিয়ে শুরু করে, AIDL অডিও HAL ইন্টারফেস সম্পূর্ণরূপে কনফিগারযোগ্য অডিও নীতি (CAP) সমর্থন করে।

এই পৃষ্ঠাটি তাদের অডিও নীতি কনফিগারেশনের স্থানান্তর করতে অংশীদার এবং SoC বিক্রেতাদের সহায়তা করার জন্য প্রয়োজনীয় প্রযুক্তিগত পটভূমি প্রদান করে।

প্যারামিটার ফ্রেমওয়ার্ক

CAP এর বাস্তবায়ন ইন্টেল প্যারামিটার ফ্রেমওয়ার্কের উপর ভিত্তি করে। CAP অ্যান্ড্রয়েড 6 এ চালু করা হয়েছিল। প্যারামিটার ফ্রেমওয়ার্ক (PfW) প্যারামিটারের পরিপ্রেক্ষিতে একটি সিস্টেমকে বর্ণনা করতে দেয়। কনফিগারেশন XML ফাইল ব্যবহার করে, PfW প্লাগইন ব্যবহার করে প্যারামিটারগুলিকে অ্যাকশনের সাথে আবদ্ধ করে এবং বর্তমান মানদণ্ড অনুযায়ী প্যারামিটারগুলি পরিবর্তন করার নিয়ম প্রদান করে।

HIDL এ CAP এর গঠন

HIDL-এ, CAP-এর জন্য সমস্ত কনফিগারেশন XML-এ নির্দিষ্ট করা হয়েছিল। আরও তথ্যের জন্য প্যারামিটার ফ্রেমওয়ার্ক এবং প্যারামিটার ফ্রেমওয়ার্ক ব্যবহার করে কনফিগারেশন দেখুন। XML ফাইলগুলি নিম্নলিখিতগুলি নির্দিষ্ট করতে ব্যবহৃত হয়েছিল:

  • পরামিতিগুলির গঠনের বর্ণনা (অর্থাৎ, PfW-এর জন্য অডিও ডোমেনের বিবরণ)
  • মানদণ্ডের সংজ্ঞা
  • রাউটিং কৌশলগুলির জন্য নিয়ম (ইনপুট এবং আউটপুট ডিভাইস নির্বাচন)
  • ভলিউম টেবিল স্পেসিফিকেশন

HIDL এর সাথে, Android ফ্রেমওয়ার্ক এই XML ফাইলগুলিকে সরাসরি বিক্রেতা পার্টিশন থেকে লোড করতে সক্ষম হয়েছিল। এটি অনুমোদিত ছিল কারণ এই XML ফাইলগুলির জন্য HAL API-এর অংশ হিসাবে একটি XSD স্কিমা সংজ্ঞায়িত করা হয়েছিল। HIDL HAL-এর প্রতিটি বড় রিলিজের একটি সংশ্লিষ্ট XSD স্কিমা ছিল। বড় রিলিজের পেছনের সামঞ্জস্যের প্রয়োজন হয় না।

AIDL-এ CAP এর গঠন

এআইডিএল-এ স্থানান্তরিত হওয়ার সাথে সাথে, এইচএএল এপিআই রিলিজগুলি অবশ্যই পিছিয়ে-সামঞ্জস্যপূর্ণ থাকতে হবে (এইচআইডিএল পদে, এআইডিএল এইচএএল-এর প্রতিটি রিলিজ একটি "ছোট" আপডেট)। XSD স্কিমাগুলি আর HAL API-এর অংশ হিসাবে ব্যবহার করা যাবে না কারণ স্কিমাগুলিতে পশ্চাদগামী-সামঞ্জস্যপূর্ণ আপডেটগুলি সংজ্ঞায়িত করার কোনও প্রতিষ্ঠিত উপায় নেই। তাই, কনফিগারেশন যা পূর্বে XML ফাইলে সংজ্ঞায়িত করা হয়েছিল এখন HAL-এর দ্বারা AIDL API ব্যবহার করে প্রদান করা প্রয়োজন। এটি সহজতর করার জন্য, CAP কনফিগারেশনের কাঠামো AIDL-এ রূপান্তরিত হয়, Android 15-এর জন্য AIDL অডিও HAL- এর অডিও পলিসি কনফিগারেশন XML-এর মতো।

CAP-এর জন্য ডেটা স্ট্রাকচারগুলি সাধারণ স্থিতিশীল ডেটা প্রকারগুলিতে যোগ করা হয় এবং নিম্নলিখিত পার্সেলেবলগুলি অন্তর্ভুক্ত করে:

CAP কনফিগারেশনের এন্ট্রি পয়েন্ট হল AudioHalEngineConfig.CapSpecificConfig কাঠামোতে। CAP ডেটা স্ট্রাকচারের একটি চিত্রের জন্য AudioHalCapConfiguration.aidl এ মন্তব্যগুলি দেখুন।

এআইডিএল এইচএএল-এর ডিফল্ট বাস্তবায়নে একটি সহায়ক শ্রেণী রয়েছে যা অংশীদারদের জন্য স্থানান্তর সহজ করার জন্য লিগ্যাসি CAP XML ফাইলগুলির বিষয়বস্তুর উপর ভিত্তি করে AIDL পার্সেবলগুলি পূরণ করে।

মাইগ্রেশন পরিস্থিতি

অংশীদাররা এই বিভাগে তালিকাভুক্ত বিকল্পগুলি বিবেচনা করতে পারে, এটি একটি পণ্যের প্রথম লঞ্চ যা আগে CAP ব্যবহার করেনি, বা একটি বিদ্যমান পণ্যের স্থানান্তর।

নতুন পণ্য

একটি নতুন পণ্যের জন্য যা অডিও নীতি বাস্তবায়নের জন্য CAP ব্যবহার শুরু করে, OEM বিক্রেতার দিকে CAP কনফিগারেশন সংরক্ষণের জন্য XML ব্যবহার করতে বেছে নিতে পারে।

এক্সএমএল ব্যবহার করার সুবিধা হল স্ক্রিপ্টিং সরঞ্জামগুলির একটি সেট রয়েছে যা একটি উচ্চ স্তরের বর্ণনা থেকে কনফিগারেশন তৈরি করতে সহায়তা করে।

যদি OEM বিক্রেতা পার্টিশনে CAP কনফিগারেশন সংরক্ষণের জন্য XML ব্যবহার করার সিদ্ধান্ত নেয়, তাহলে কনফিগারেশনটিকে AIDL-এ রূপান্তর করার জন্য XML পার্সারের ডিফল্ট বাস্তবায়ন ব্যবহার করার সুপারিশ করা হয়।

বিদ্যমান পণ্যের জন্য আপডেট

যদি পণ্যটি ইতিমধ্যেই CAP ব্যবহার করে এবং এইভাবে XML কনফিগারেশন থাকে, তাহলে আপনি HAL-এর AIDL সংস্করণের সাথে বিদ্যমান CAP ব্যবহার চালিয়ে যেতে পারেন।

CAP কনফিগারেশনের HIDL এবং AIDL সংস্করণে পণ্য কৌশলগুলির নামকরণের নিয়ম আলাদা। HIDL-এ অন্তর্নির্মিত ("উত্তরাধিকার") কৌশলগুলি media মতো ছোট হাতের ছোট নাম ব্যবহার করে যেখানে AIDL-এ, অন্তর্নির্মিত কৌশলগুলি STRATEGY_ সাথে উপসর্গযুক্ত সমস্ত-ক্যাপ নাম ব্যবহার করে, উদাহরণস্বরূপ STRATEGY_MEDIACapProductStrategies.xml এ অন্তর্নির্মিত কৌশলগুলির তালিকা দেখুন। একই ফাইলটি OEM-নির্দিষ্ট কৌশলগুলির জন্য "প্রাক-বরাদ্দকৃত" আইডিগুলিকে সংজ্ঞায়িত করে যা 1000 থেকে 1039 পর্যন্ত সংখ্যা সহ vx_10xx এর নামকরণ প্যাটার্ন অনুসরণ করে৷

উত্তরাধিকার পণ্য

যে পণ্যটি CAP-এর উপর নির্ভর করে সেটি যদি তার বিক্রেতা পার্টিশন আপডেট না করে এবং HIDL-এ থেকে যায়, তাহলে আপনি সিস্টেম পার্টিশনটিকে Android 16-এ আপডেট করতে পারেন। ফ্রেমওয়ার্কটি লিগ্যাসি CAP কনফিগারেশনের সাথে সামঞ্জস্যপূর্ণ থাকে।

উদাহরণ বাস্তবায়ন

অংশীদারদের তাদের প্ল্যাটফর্মের জন্য CAP বাস্তবায়নে সাহায্য করার জন্য, AOSP-এর কাছে Cuttlefish ভার্চুয়াল ডিভাইসের "অটোমোটিভ" স্বাদের একটি উদাহরণ রয়েছে যা AIDL HAL-এর সাথে CAP ব্যবহার করে। ডিভাইস-নির্দিষ্ট কনফিগারেশনটি aosp_cf_x86_64_auto এর lunch টার্গেট নাম সহ device/google/cuttlefish/shared/auto/audio/policy/engine এ অবস্থিত। Android.bp ফাইলটি CAP ভেন্ডর ফাইলের সম্পূর্ণ সেট তৈরি করার জন্য একটি রেফারেন্স হিসাবে ব্যবহার করা যেতে পারে।