Кто обрабатывает AndroidManifest.xml

«Кто обрабатывает AndroidManifest.xml» — вопрос из категории Gradle и сборка, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

AndroidManifest.xml обрабатывается инструментом AAPT (Android Asset Packaging Tool) во время сборки приложения. Он парсит манифест, проверяет его корректность и упаковывает в APK/AAB.

Во время выполнения приложения манифест читается системой Android (PackageManager), которая извлекает из него метаданные: компоненты, разрешения, фичи и т. д.

Пример использования в коде:

val packageInfo = packageManager.getPackageInfo(packageName, PackageManager.GET_ACTIVITIES)
val activities = packageInfo.activities // Список активностей из манифеста

Нюансы:

  • AAPT2 (новая версия) добавляет оптимизации, например, удаление неиспользуемых ресурсов.
  • Некоторые теги (например, <uses-library>) обрабатываются только во время выполнения.