ModuleMetadata 模塊包含有關給定設備上的模塊列表的元數據。一旦系統服務器啟動,元數據就會被解析和緩存。
Android 10 的變化
ModuleMetadata APK 包含ModuleInfoProvider
,它實現了 PackageManager API 中的getModuleInfo
和getInstalledModules
方法。這些方法由從模塊元數據提供程序包中解析的 XML 元數據提供支持。模塊元數據包的包名存儲在config_defaultModuleMetadataProvider
配置值中。
模塊元數據提供程序必須為其<application>
標記包含<metadata>
條目。元數據條目必須包含一個鍵 ( android.content.pm.MODULE_METADATA
),其值是對 XML 資源的引用,該資源包含有關給定設備上的模塊列表的元數據。
包裝格式
ModuleMetadata 模塊 ( com.google.android.modulemetadata
) 作為 APK 文件提供。
元數據元素
XML 文檔必須由具有一個或多個子級的單個頂級<module-metadata>
元素組成。每個子元素都是一個<module>
元素,包含以下屬性:
-
name
是對用戶可見包名稱的資源引用。映射到ModuleInfo#getName
。 -
packageName
是模塊的包名。映射到ModuleInfo#getPackageName
。 -
isHidden
指示模塊是否隱藏。映射到ModuleInfo#isHidden
。
例子:
<module-metadata> <module name="@string/resource" packageName="package_name" isHidden="false|true" /> <module .... /> </module-metadata>