মডিউল মেটাডেটা

ModuleMetadata মডিউলটিতে একটি নির্দিষ্ট ডিভাইসের মডিউলগুলোর তালিকা সম্পর্কিত মেটাডেটা থাকে। সিস্টেম সার্ভার চালু হওয়ার সাথে সাথেই এই মেটাডেটা পার্স এবং ক্যাশ করা হয়।

অ্যান্ড্রয়েড ১০-এর পরিবর্তনসমূহ

ModuleMetadata APK-তে ModuleInfoProvider রয়েছে, যা PackageManager-এর API থেকে getModuleInfo এবং getInstalledModules মেথডগুলো ইমপ্লিমেন্ট করে। এই মেথডগুলো একটি মডিউল মেটাডেটা প্রোভাইডার প্যাকেজ থেকে পার্স করা XML মেটাডেটা দ্বারা সমর্থিত। মডিউল মেটাডেটা প্যাকেজের প্যাকেজের নামটি config_defaultModuleMetadataProvider কনফিগ ভ্যালুতে সংরক্ষিত থাকে।

মডিউল মেটাডেটা প্রোভাইডারের <application> ট্যাগে অবশ্যই একটি <metadata> এন্ট্রি থাকতে হবে। মেটাডেটা এন্ট্রিতে অবশ্যই একটিমাত্র কী ( android.content.pm.MODULE_METADATA ) থাকতে হবে, যার ভ্যালু হবে একটি XML রিসোর্সের রেফারেন্স। এই রিসোর্সটিতে একটি নির্দিষ্ট ডিভাইসের মডিউলগুলোর তালিকা সম্পর্কিত মেটাডেটা থাকে।

প্যাকেজ ফরম্যাট

ModuleMetadata মডিউলটি ( com.android.modulemetadata ) একটি APK ফাইল হিসেবে সরবরাহ করা হয়।

মেটাডেটা উপাদান

XML ডকুমেন্টটিতে অবশ্যই একটিমাত্র শীর্ষ-স্তরের <module-metadata> এলিমেন্ট এবং তার এক বা একাধিক চাইল্ড থাকতে হবে। প্রতিটি চাইল্ড হলো একটি <module> এলিমেন্ট, যাতে নিম্নলিখিত অ্যাট্রিবিউটগুলো থাকে:

  • name হলো ব্যবহারকারীর কাছে দৃশ্যমান একটি প্যাকেজ নামের রিসোর্স রেফারেন্স। এটি ModuleInfo#getName সাথে ম্যাপ করা হয়।
  • packageName হলো মডিউলটির প্যাকেজ নাম। এটি ModuleInfo#getPackageName এর সাথে ম্যাপ করা হয়।
  • isHidden নির্দেশ করে মডিউলটি লুকানো আছে কিনা। এটি ModuleInfo#isHidden</code>.

উদাহরণ:

<module-metadata>
<module name="@string/resource" packageName="package_name" isHidden="false|true">
<module .... >
</module-metadata>