ModuleMetadata মডিউলে কোনও নির্দিষ্ট ডিভাইসে মডিউলের তালিকা সম্পর্কিত মেটাডেটা থাকে। সিস্টেম সার্ভার চালু হওয়ার সাথে সাথেই মেটাডেটা পার্স ও ক্যাশে করা হয়।
Android 10-এ পরিবর্তন
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হল মডিউলের প্যাকেজের নাম। Maps-এModuleInfo#getPackageName.isHiddenমডিউল লুকানো আছে কিনা তা নির্দেশ করে। Maps-এModuleInfo#isHidden</code>.
উদাহরণ:
<module-metadata>
<module name="@string/resource" packageName="package_name" isHidden="false|true">
<module .... >
</module-metadata>