ModuleMetadata

ModuleMetadata 模块包含给定设备上模块列表的元数据。元数据会在系统服务器启动后立即完成解析和缓存。

Android 10 中的变更

ModuleMetadata APK 包含 ModuleInfoProvider,后者实现了 PackageManager API 中的 getModuleInfogetInstalledModules 方法。这些方法由从模块元数据提供程序软件包解析的 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>