Из чего состоит AndroidManifest
Что проверяют
Знаете ли вы, что система узнаёт о приложении из манифеста до запуска кода: какие есть компоненты, что им разрешено и кто может их вызвать. Следом обычно спрашивают про android:exported, про разрешения во время работы и про слияние манифестов.
Как отвечать
Идите от корня вниз:
<manifest>: корневой элемент с пространством имёнandroid. Атрибутpackageв исходном манифесте больше не пишут:namespaceиapplicationIdзадаются вbuild.gradle.kts, как иminSdkсtargetSdkвместо устаревшего<uses-sdk>;<uses-permission>: объявление нужных разрешений. Опасные (камера, геолокация, контакты) с Android 6 ещё и запрашивают во время работы;<uses-feature>: требования к железу, по ним Google Play фильтрует устройства.android:required="false"оставляет приложение доступным и без этой функции;<queries>: приложения и интенты, которые вы хотите видеть. При targetSdk 30 и выше без негоPackageManagerне видит большую часть установленных пакетов;<application>: иконка, тема, свой классApplicationчерезandroid:name,networkSecurityConfig,allowBackup;- компоненты:
<activity>,<service>,<receiver>,<provider>. Активити, сервисы и провайдеры обязаны быть объявлены, ресиверы можно регистрировать и из кода.<intent-filter>описывает интенты, на которые компонент отвечает, параMAINиLAUNCHERделает активити точкой входа;
Добавьте требования новых версий: при targetSdk 31 и выше компонент с <intent-filter> обязан явно указать android:exported, а для foreground service при targetSdk 34 нужен android:foregroundServiceType и разрешение под этот тип.
Где спотыкаются
Думают, что строки в манифесте достаточно для опасного разрешения. Без запроса во время работы вызов API закончится SecurityException.
Не знают про слияние манифестов. Итоговый файл собирается из манифестов всех библиотек, и чужое разрешение может приехать само. Смотрите его во вкладке Merged Manifest, лишнее убирают через tools:node="remove".
Регистрируют в манифесте BroadcastReceiver на неявные системные события. С Android 8 большинство таких рассылок до него не дойдут.