تحتوي وحدة ModuleMetadata على بيانات وصفية حول قائمة الوحدات على جهاز معيّن. تتم معالجة بيانات التعريف وتخزينها مؤقتًا فور بدء تشغيل خادم النظام.
التغييرات في Android 10
يحتوي ملف ModuleMetadata APK على ModuleInfoProvider
، الذي ينفّذ الطريقتَين getModuleInfo
وgetInstalledModules
من واجهة برمجة التطبيقات الخاصة بـ 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>