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