החל מ-27 במרץ 2025, מומלץ להשתמש ב-android-latest-release
במקום ב-aosp-main
כדי ליצור תרומות ל-AOSP. מידע נוסף זמין במאמר שינויים ב-AOSP.
ModuleMetadata
קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
המודול ModuleMetadata מכיל מטא-נתונים לגבי רשימת המודולים במכשיר נתון. המטא-נתונים מנותחים ונשמרים במטמון ברגע שהשרת של המערכת מתחיל לפעול.
קובץ ה-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>
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[[["התוכן קל להבנה","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 (שעון UTC)."],[],[],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"]]