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

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