С какого класса или интерфейса стартует сборка

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

Ответ

В Android приложении сборка начинается с класса Application. Это базовый класс, который инициализируется первым при запуске приложения, еще до любых Activity.

Пример объявления в манифесте:

<application
    android:name=".MyApplication"
    ...>
</application>

Класс MyApplication должен наследоваться от android.app.Application:

class MyApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        // Инициализация общих компонентов
    }
}

Здесь можно выполнять глобальную инициализацию (например, DI, аналитики, БД). Однако для простых приложений можно не создавать подкласс, используя стандартный Application.