模塊元數據

ModuleMetadata 模塊包含有關給定設備上模塊列表的元數據。一旦系統服務器啟動,元數據就會被解析和緩存。

Android 10 中的變化

該ModuleMetadata APK包含ModuleInfoProvider ,它實現了getModuleInfogetInstalledModules從方法PackageManager API。這些方法由從模塊元數據提供程序包解析的 XML 元數據支持。用於模塊的元數據包中的包名稱被存儲在config_defaultModuleMetadataProvider配置值。

模塊的元數據提供者必須包含一個<metadata>為它的條目<application>標記。元數據條目必須包含單個密鑰( android.content.pm.MODULE_METADATA ),其值是到包含關於給定設備上的模塊的列表的元數據的XML資源的引用。

格式和依賴

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>