O módulo ModuleMetadata contém metadados sobre a lista de módulos em um dispositivo. 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 têm o suporte
de metadados XML analisados em um pacote de provedor de metadados do 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 seja uma referência a um recurso XML que contenha metadados sobre a lista
de módulos em um determinado dispositivo.
Formato do pacote
O módulo ModuleMetadata (com.android.modulemetadata
) é enviado
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 elemento filho é um elemento <module>
que contém os seguintes atributos:
name
é uma referência de recurso para um nome de pacote visível para o usuário. Maps paraModuleInfo#getName
.packageName
é o nome do pacote do módulo. É mapeado paraModuleInfo#getPackageName
.isHidden
indica se o módulo está oculto. É mapeado paraModuleInfo#isHidden</code>.
Exemplo:
<module-metadata>
<module name="@string/resource" packageName="package_name" isHidden="false|true">
<module .... >
</module-metadata>