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>