Ответ
Файл AndroidManifest.xml — это обязательный конфигурационный файл в Android-приложении. Он содержит метаданные, необходимые системе и Google Play, такие как:
- Компоненты приложения (активити, сервисы, провайдеры, ресиверы)
- Разрешения (permissions)
- Минимальная и целевая версия SDK
- Иконка и название приложения
- Intent-фильтры (например, для дефолтной активити)
Пример объявления активити в манифесте:
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Манифест компилируется в бинарный формат при сборке. Без него приложение не может быть установлено.
Ответ 18+ 🔞
А, ну этот файлик, про который все вспоминают, когда приложение наотрез отказывается запускаться! AndroidManifest.xml — это, блядь, типа паспорта и медицинской карты твоего приложения в одном флаконе. Без этой бумажки тебя, чувак, ни в систему не пустят, ни в Google Play не пропустят, нихуя.
Там у него овердохуища всякой обязательной хуйни записано, которую система должна знать ещё до того, как твой код хоть строчку выполнит. Например:
- Кто внутри живёт: все твои активити, сервисы, провайдеры и прочие компоненты — как будто список жильцов в подъезде.
- Что ему можно: разрешения (permissions) — типа «можно читать контакты» или «включать камеру». Без этого — хуй с горы, доступ закроют.
- На кого оно рассчитано: минимальная и целевая версия андроида. Чтоб не пыталось запуститься на холодильнике десятилетней давности, ёпта.
- Как оно выглядит: иконка, название — понятное дело.
- И самое главное — какая активити будет первой, когда юзер тыкнет по иконке. Это делается через intent-фильтры, смотри:
Вот пример, как объявляется главная активити. Это, можно сказать, парадная дверь в твоё приложение:
<activity
android:name=".MainActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Видишь этот <intent-filter>? Это и есть указание системе: «Эй, это главная дверь (MAIN), и она должна быть в списке приложений (LAUNCHER), чтобы по ней можно было тыкнуть и зайти».
Потом, при сборке, этот человекочитаемый XML компилируется в бинарный формат — система так быстрее работает. И запомни раз и навсегда: если этого файла нет или в нём какая-то, блядь, критическая ошибка — можешь даже не пытаться собрать APK. Приложение просто не установится, терпения ноль ебать. Так что следи за ним, этот манифест — основа основ, хитрая жопа всего проекта.