← Назад к вопросам

Что такое Manifest?

1.3 Junior🔥 161 комментариев
#Android компоненты

Комментарии (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

  • Система знает, какие разрешения запросить у пользователя
  • Определяются точки входа в приложение
  • Регистрируются все компоненты приложения
  • Задаются конфигурации и метаданные приложения
  • Обеспечивается безопасность и контроль доступа