Подключение и инициализация

SDK под Android предоставляется в виде библиотеки в форматe AAR. Библиотека доступна в Maven-репозитории.

Шаг 1. Добавьте библиотеку в проект

Если вы используете Gradle для сборки приложения, пропишите следующую зависимость в файле build.gradle в блоке зависимостей:

dependencies {
    // AppMetrica from maven central.
    implementation 'com.yandex.android:mobmetricalib:3.2.1'
    // Optional. Play Install Referrer library for better attribution.
    implementation 'com.android.installreferrer:installreferrer:1.0'
}
Если вы не используете Gradle

Загрузите и добавьте библиотеку в проект.

Шаг 2. Инициализируйте библиотеку

Инициализируйте библиотеку в приложении и настройте отслеживание активности пользователей. Для этого объявите производный класс от базового класса Application и переопределите метод onCreate() следующим образом:
public class MyApp extends Application {
     @Override
     public void onCreate() {
         super.onCreate();
         // Инициализация AppMetrica SDK
         YandexMetricaConfig.Builder configBuilder = YandexMetricaConfig.newConfigBuilder(API_key);
         YandexMetrica.activate(getApplicationContext(), configBuilder.build());
         // Отслеживание активности пользователей
         YandexMetrica.enableActivityAutoTracking(this);
     }
}
Что такое API key?

API key — это уникальный идентификатор приложения, который выдается в веб-интерфейсе AppMetrica при добавлении приложения.

Убедитесь, что он указан верно.

AppMetrica позволяет отслеживать предустановленные приложения. Для использования этой функциональности необходимо произвести инициализацию библиотеки с расширенной конфигурацией.

Шаг 3. (Опционально) Внесите изменения в AndroidManifest.xml

Шаг 3. Опционально: для отслеживания местоположения устройства внесите изменение в файл AndroidManifest.xml перед элементом application:

<manifest>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    <application>...</application>
</manifest>

ACCESS_COARSE_LOCATION позволяет отслеживать местоположение устройства. Подробнее.

Особенности работы библиотеки AppMetrica

Библиотека AppMetrica состоит из двух частей: клиентской и сервисной.

Клиентская часть обеспечивает предварительную валидацию данных и передачу их сервисной части, которая отвечает за хранение и отправку данных на сервер.

Сервис запускается в отдельном процессе. Это сделано для того, чтобы библиотека имела минимальное влияние на работу приложения (по производительности и памяти), а также не зависела от стабильности работы приложения и могла сохранять / доставлять данные даже в случае аварийных отключений и нестабильной работы приложения. Однако это вносит в работу c AppMetrica некоторые особенности.

Если в самом приложении есть несколько процессов, то необходимо обеспечить инициализацию AppMetrica единым образом, одинаковой конфигурацией. В противном случае может сложиться ситуация, когда конфигурация библиотеки AppMetrica зависит от того, какой из процессов будет инициализирован раньше (так как для каждого процесса создается свой экземпляр клиентской части AppMetrica, при этом сервисная часть — одна).

Рекомендуем инициализировать библиотеку AppMetrica в методе Application.onCreate() (так библиотека отработает вызов метода Application.onCreate() в каждом процессе). При этом следует учитывать особенность жизненного цикла ContentProvider, для которого не гарантируется создание экземпляра Application до создания экземпляра ContentProvider. Также следует учитывать, что код, помещенный в метод Application.onCreate() выполнится и для процесса сервиса.

Соответственно, если вы не хотите, чтобы некоторый код исполнялся больше одного раза, не следует помещать его в метод Application.onCreate(). Такой код лучше исполнять при создании других компонентов или вынести в отдельный Service. Также следует избегать выполнения внутри метода Application.onCreate() длительных операций.