Особенности библиотеки AppMetrica
Библиотека AppMetrica состоит из двух частей: клиентской и сервисной. При этом в них есть особенности, которые необходимо учитывать при инициализации:
Клиентская часть
Обеспечивает предварительную валидацию данных и передачу их сервисной части.
Экземпляр клиентской части создается для каждого процесса в приложении.
Сервисная часть
Отвечает за хранение и отправку данных на сервер.
Запускается в отдельном процессе. Поэтому AppMetrica:
- Минимально влияет на производительность и количество занимаемой памяти.
- Не зависит от стабильности работы приложения. Это позволяет сохранять данные и отправлять их на сервер в случае крэша и нестабильной работы приложения.
Рекомендации по инициализации
-
Если в приложении есть несколько процессов, инициализируйте библиотеку с одинаковой конфигурацией для каждого процесса. Иначе конфигурация может зависеть от того, какой из процессов запустится раньше.
Для отправки данных можно использовать репортеры. Их можно инициализировать с разной конфигурацией. Подробнее в разделе Отправка статистики на дополнительный API key.
-
Инициализируйте библиотеку AppMetrica в методе Application.onCreate(). Так библиотека будет инициализирована в каждом процессе.
Код, который добавлен в метод
Application.onCreate()
, выполняется для всех процессов. Если после интеграции сторонней библиотеки (например, Firebase Cloud Messaging) возникает ошибка инициализации, убедитесь, что сторонняя библиотека инициализируется только в главном процессе. Подробнее в разделе Описание ошибок. -
Учитывайте, что экземпляр ContentProvider создается до экземпляра Application. Если вы инициализируете библиотеку в методе
Application.onCreate()
, отправить данные из методаContentProvider.onCreate()
не получится. -
Не добавляйте в метод
Application.onCreate()
код, который не должен выполняться больше одного раза. Такой код выполняйте при создании других компонентов или вынесите в отдельный Service. -
Избегайте длительных операций в методе
Application.onCreate()
и не инициализируйте в нем другие библиотеки. Время выполнения этого метода напрямую влияет на скорость запуска первогоActivity
,Service
илиReceiver
.
Узнайте больше
- Ошибка инициализации AppMetrica со сторонними библиотеками
- Как включить отправку данных о местоположении пользователей?
- Как проверить, что у меня установлены последние версии Android-библиотек?
- Почему в отчетах не отображаются новые установки?
Если вы не нашли ответ на свой вопрос, то вы можете задать его через форму обратной связи. Пожалуйста, опишите возникшую проблему как можно подробнее. Если возможно, приложите скриншот.