ماژول 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>