ModuleMetadata

واحد 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>