Ответ
Объявление компонентов (Activity, Service, BroadcastReceiver, ContentProvider) в AndroidManifest.xml необходимо, потому что система Android использует манифест для:
- Идентификации компонентов - без регистрации система не узнает об их существовании
- Управления правами - например, для объявления требуемых разрешений
- Конфигурации компонентов - задание launchMode для Activity, экспорта ContentProvider и т.д.
Пример объявления Activity:
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
Исключение - динамические BroadcastReceiver, которые можно регистрировать в коде через registerReceiver().