В каком месте разместишь код для логирования самой ранней точки старта в приложении

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

Ответ

Лучшее место для логирования самой ранней точки старта — это кастомный Application класс, переопределив метод attachBaseContext(). Это самый ранний метод, вызываемый в жизненном цикле приложения.

class MyApp : Application() {
    override fun attachBaseContext(base: Context) {
        super.attachBaseContext(base)
        Log.d("AppStart", "attachBaseContext() - earliest point")
    }
}

Важно:

  • Не забудьте указать кастомный класс в манифесте (android:name=".MyApp")
  • attachBaseContext() вызывается даже раньше onCreate()
  • Учтите, что на этом этапе контекст может быть не полностью инициализирован