Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Что такое Manifest?
AndroidManifest.xml — это конфигурационный файл каждого Android приложения, который описывает структуру и разрешения приложения для операционной системы. Это один из самых важных файлов в Android проекте, так как без него приложение не может быть запущено. Манифест является первым документом, который анализирует система Android при установке и запуске приложения.
Основная структура
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="1.0"
package="com.example.app">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.MyApp">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name=".MyService" />
<provider android:name=".MyContentProvider" />
<receiver android:name=".MyBroadcastReceiver" />
</application>
</manifest>
Ключевые элементы
- manifest — корневой элемент, содержит package name, version code и version name
- uses-permission — разрешения, необходимые приложению (INTERNET, CAMERA, LOCATION и т.д.)
- application — контейнер для компонентов приложения (activities, services, providers, receivers)
- activity — экраны приложения с intent-фильтром для определения запуска
- service — фоновые сервисы для выполнения операций
- provider — провайдеры контента для обмена данными между приложениями
- receiver — приемники broadcast сообщений
Разрешения
На Android 6.0 (API 23) и выше разрешения делятся на две категории:
<!-- Обычные разрешения (Normal Permissions) -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- Опасные разрешения (Dangerous Permissions) требуют запроса в runtime -->
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.CAMERA" />
Intent-фильтры
Intent-фильтры определяют, как приложение может быть вызвано:
<activity android:name=".MainActivity" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Важные атрибуты
- android:exported — может ли компонент быть вызван другими приложениями (обязателен с API 31+)
- android:allowBackup — разрешить ли резервное копирование данных
- android:debuggable — режим отладки (никогда не используй в продакшене)
- android:targetSdkVersion — целевая версия Android
Зачем нужен Manifest
- Система знает, какие разрешения запросить у пользователя
- Определяются точки входа в приложение
- Регистрируются все компоненты приложения
- Задаются конфигурации и метаданные приложения
- Обеспечивается безопасность и контроль доступа