O módulo ModuleMetadata contém metadados sobre a lista de módulos em um dispositivo específico. Os metadados são analisados e armazenados em cache assim que o servidor do sistema é iniciado.
Mudanças no Android 10
O APK ModuleMetadata contém ModuleInfoProvider, que
implementa os métodos getModuleInfo e getInstalledModules
da API do PackageManager. Esses métodos são apoiados
por metadados XML analisados de um pacote de provedor de metadados de módulo. O nome
do pacote de metadados do módulo é armazenado no valor de configuração
config_defaultModuleMetadataProvider.
O provedor de metadados do módulo precisa conter uma entrada <metadata> para a tag <application>. A entrada de metadados precisa conter uma única chave (android.content.pm.MODULE_METADATA) cujo valor é uma referência a um recurso XML que contém metadados sobre a lista de módulos em um determinado dispositivo.
Formato do pacote
O módulo ModuleMetadata (com.android.modulemetadata) é entregue
como um arquivo APK.
Elementos de metadados
O documento XML precisa consistir em um único elemento <module-metadata> de nível superior com um ou mais filhos. Cada filho é um elemento <module>
que contém os seguintes atributos:
nameé uma referência de recurso a um nome de pacote visível ao usuário. Se relaciona comModuleInfo#getName.packageNameé o nome do pacote do módulo. Corresponde aModuleInfo#getPackageName.isHiddenindica se o módulo está oculto. Mapeia paraModuleInfo#isHidden</code>.
Exemplo:
<module-metadata>
<module name="@string/resource" packageName="package_name" isHidden="false|true">
<module .... >
</module-metadata>