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>