El módulo ModuleMetadata contiene metadatos sobre la lista de módulos en un dispositivo determinado. Los metadatos se analizan y almacenan en caché en cuanto se inicia el servidor del sistema.
Cambios en Android 10
El APK de ModuleMetadata contiene ModuleInfoProvider, que implementa los métodos getModuleInfo y getInstalledModules de la API de PackageManager. Estos métodos se basan en metadatos XML analizados a partir de un paquete de proveedor de metadatos del módulo. El nombre del paquete de metadatos del módulo se almacena en el valor de configuración config_defaultModuleMetadataProvider.
El proveedor de metadatos del módulo debe contener una entrada <metadata> para su etiqueta <application>. La entrada de metadatos debe contener una sola clave (android.content.pm.MODULE_METADATA) cuyo valor sea una referencia a un recurso XML que contenga metadatos sobre la lista de módulos en un dispositivo determinado.
Formato del paquete
El módulo ModuleMetadata (com.android.modulemetadata) se entrega como un archivo APK.
Elementos de metadatos
El documento XML debe constar de un solo elemento <module-metadata> de nivel superior con uno o más elementos secundarios. Cada hijo es un elemento <module> que contiene los siguientes atributos:
namees una referencia de recurso a un nombre de paquete visible para el usuario. Se asigna aModuleInfo#getName.packageNamees el nombre del paquete del módulo. Se asigna aModuleInfo#getPackageName.isHiddenindica si el módulo está oculto. Se asigna aModuleInfo#isHidden</code>.
Ejemplo:
<module-metadata>
<module name="@string/resource" packageName="package_name" isHidden="false|true">
<module .... >
</module-metadata>