Метаданные модуля

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