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>