自 2025 年 3 月 27 日起,我們建議您使用 android-latest-release
而非 aosp-main
建構及貢獻 AOSP。詳情請參閱「Android 開放原始碼計畫變更」。
ModuleMetadata
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
ModuleMetadata 模組包含特定裝置上模組清單的中繼資料。系統伺服器一啟動,就會立即剖析及快取中繼資料。
ModuleMetadata APK 包含 ModuleInfoProvider
,可實作 PackageManager API 中的 getModuleInfo
和 getInstalledModules
方法。這些方法由從模組中繼資料提供者套件解析的 XML 中繼資料支援。模組中繼資料套件的套件名稱會儲存在 config_defaultModuleMetadataProvider
設定值中。
模組中繼資料供應器必須包含其 <application>
標記的 <metadata>
項目。中繼資料項目必須包含單一鍵 (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"]]