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:
name
es una referencia de recurso a un nombre de paquete visible para el usuario. Se asigna aModuleInfo#getName
.packageName
es el nombre del paquete del módulo. Se asigna aModuleInfo#getPackageName
.isHidden
indica 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>