ModuleMetadata

Модуль 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>