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