واحد ModuleMetadata حاوی فرادادههایی درباره فهرست واحدهای موجود در یک دستگاه معین است. فراداده بهمحض شروع سرور سیستم تجزیه و ذخیره میشود.
تغییرات در Android 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>