ModuleMetadata 模塊包含有關給定設備上模塊列表的元數據。系統服務器一啟動就解析並緩存元數據。
Android 10 的變化
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>