ماژول ModuleMetadata حاوی ابرداده در مورد لیست ماژول ها در یک دستگاه خاص است. به محض راه اندازی سرور سیستم، متادیتا تجزیه و ذخیره می شود.
تغییرات اندروید 10
APK ModuleMetadata حاوی ModuleInfoProvider است که متدهای getModuleInfo و getInstalledModules از API PackageManager پیادهسازی میکند. این روش ها توسط فراداده XML تجزیه شده از بسته ارائه دهنده ابرداده ماژول پشتیبانی می شوند. نام بسته برای بسته ابرداده ماژول در مقدار config_defaultModuleMetadataProvider ذخیره می شود.
ارائهدهنده ابرداده ماژول باید دارای ورودی <metadata> برای تگ <application> خود باشد. ورودی فراداده باید حاوی یک کلید واحد ( 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>