Зачем объявлять основные компоненты Android в Manifest

«Зачем объявлять основные компоненты Android в Manifest» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Объявление компонентов (Activity, Service, BroadcastReceiver, ContentProvider) в AndroidManifest.xml необходимо, потому что:

  1. Система идентифицирует компоненты – без регистрации система не узнает об их существовании и не сможет запустить.

  2. Определение возможностей – например, для Activity указываются intent-фильтры, разрешения, конфигурации (theme, launchMode).

  3. Безопасность – явное объявление позволяет контролировать доступ к компонентам через permissions.

Пример Activity в манифесте:

<activity
    android:name=".MainActivity"
    android:label="My App"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>