Модуль ModuleMetadata содержит метаданные о списке модулей на данном устройстве. Метаданные анализируются и кэшируются сразу после запуска системного сервера.
Изменения в Android 10
APK ModuleMetadata содержит ModuleInfoProvider
, который реализует методы getModuleInfo
и getInstalledModules
из API PackageManager. Эти методы поддерживаются метаданными XML, проанализированными из пакета поставщика метаданных модуля. Имя пакета для пакета метаданных модуля хранится в значении конфигурации config_defaultModuleMetadataProvider
.
Поставщик метаданных модуля должен содержать запись <metadata>
для своего <application>
. Запись метаданных должна содержать один ключ ( android.content.pm.MODULE_METADATA
), значение которого является ссылкой на ресурс XML, содержащий метаданные о списке модулей на данном устройстве.
Формат пакета
Модуль ModuleMetadata ( com.google.android.modulemetadata
) поставляется в виде файла APK.
Элементы метаданных
XML-документ должен состоять из одного элемента <module-metadata>
верхнего уровня с одним или несколькими дочерними элементами. Каждый дочерний элемент — это элемент <module>
, который содержит следующие атрибуты:
-
name
является ссылкой на ресурс для видимого пользователем имени пакета. Сопоставляется сModuleInfo#getName
. -
packageName
— это имя пакета модуля. Сопоставляется сModuleInfo#getPackageName
. -
isHidden
указывает, скрыт ли модуль. Сопоставляется сModuleInfo#isHidden
.
Пример:
<module-metadata> <module name="@string/resource" packageName="package_name" isHidden="false|true" /> <module .... /> </module-metadata>