В каком компоненте Android можно запустить сбор аналитики перед запуском приложения

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

Ответ

Лучше всего использовать Application класс, так как он создается до всех других компонентов.

Пример:

class MyApp : Application() {
    override fun onCreate() {
        super.onCreate()
        // Инициализация аналитики
        FirebaseAnalytics.getInstance(this)
        YandexMetrica.activate(applicationContext, "API_KEY")
    }
}

Не забудьте указать его в манифесте:

<application
    android:name=".MyApp"
    ...>

Нюансы:

  1. Не делайте тяжелых операций в onCreate()
  2. Используйте lazy-инициализацию для тяжелых SDK
  3. Учитывайте, что Application создается даже для бродкастов и сервисов