اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
ModuleMetadata
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تحتوي وحدة ModuleMetadata على بيانات وصفية عن قائمة الوحدات على
جهاز معيّن. يتم تحليل البيانات الوصفية وتخزينها مؤقتًا فور بدء تشغيل "خادم النظام".
يحتوي ملف 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>
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# ModuleMetadata\n\nThe ModuleMetadata module contains metadata about the list of modules on a\ngiven device. The metadata is parsed and cached as soon as the system server\nstarts.\n\nChanges in Android 10\n---------------------\n\nThe ModuleMetadata APK contains `ModuleInfoProvider`, which\nimplements the `getModuleInfo` and `getInstalledModules`\nmethods from the PackageManager's API. These methods are backed\nby XML metadata parsed from a module metadata provider package. The package\nname for the module metadata package is stored in the\n`config_defaultModuleMetadataProvider` config value.\n\nThe module metadata provider must contain a `\u003cmetadata\u003e`\nentry for its `\u003capplication\u003e` tag. The metadata entry must\ncontain a single key (`android.content.pm.MODULE_METADATA`) whose\nvalue is a reference to an XML resource that contains metadata about the list\nof modules on a given device.\n\nPackage format\n--------------\n\nThe ModuleMetadata module (`com.android.modulemetadata`) is delivered\nas an APK file.\n\nMetadata elements\n-----------------\n\nThe XML document must consist of a single top level `\u003cmodule-metadata\u003e`\nelement with one or more children. Each child is a `\u003cmodule\u003e`\nelement that contains the following attributes:\n\n- `name` is a resource reference to a user-visible package name. Maps to `ModuleInfo#getName`.\n- `packageName` is the package name of the module. Maps to `ModuleInfo#getPackageName`.\n- `isHidden` indicates whether the module is hidden. Maps to `ModuleInfo#isHidden\u003c/code\u003e.`\n\nExample: \n\n \u003cmodule-metadata\u003e\n \u003cmodule name=\"@string/resource\" packageName=\"package_name\" isHidden=\"false|true\"\u003e\n \u003cmodule .... \u003e\n \u003c/module-metadata\u003e"]]