Начало работы с Мониторингом производительности для Android

Подготовка

Если вы ещё этого не сделали, добавьте Firebase в проект для Android.

Шаг 1. Добавьте SDK Performance Monitoring в приложение

После добавления SDK Performance Monitoring Firebase автоматически начинает собирать данные об отрисовке экранов и жизненном цикле приложения (например, время начала работы приложения). Чтобы Firebase мог отслеживать сетевые запросы, вам также нужно добавить плагин Performance Monitoring Gradle (следующий шаг).

  1. В файле Gradle на уровне модуля (приложения) (обычно это <project>/<app-module>/build.gradle.kts или <project>/<app-module>/build.gradle) добавьте зависимость для библиотеки Performance Monitoring для Android. Для управления версиями библиотек рекомендуем использовать Firebase Android BoM.

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:35.0.1"))
    
        // Add the dependency for the Performance Monitoring library
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-perf")
    }

    Благодаря Firebase Android BoM в вашем приложении всегда будут использоваться совместимые версии библиотек Firebase Android.

    (Альтернативный вариант) Добавьте зависимости библиотеки Firebase без использования BoM.

    Если вы не хотите использовать Firebase BoM, то должны указать версию каждой библиотеки Firebase в строке зависимости.

    Если вы используете в приложении несколько библиотек Firebase, настоятельно рекомендуем управлять их версиями с помощью BoM. Это обеспечит совместимость всех версий.

    dependencies {
        // Add the dependency for the Performance Monitoring library
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation("com.google.firebase:firebase-perf:23.0.1")
    }

  2. Перекомпилируйте приложение.

Шаг 2. Добавьте плагин Performance Monitoring Gradle в приложение

После добавления плагина Gradle Performance Monitoring Firebase автоматически начнет собирать данные о сетевых запросах HTTP/S. Плагин также позволяет отслеживать собственный код с помощью аннотации@AddTrace.

  1. В файл Gradle корневого уровня (на уровне проекта) (<project>/build.gradle.kts или <project>/build.gradle) добавьте плагин Performance Monitoring Gradle:

    Kotlin

    plugins {
        // To benefit from the latest Performance Monitoring plugin features,
        // update your Android Gradle plugin dependency to at least v3.4.0
        id("com.android.application") version "7.3.0" apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id("com.google.gms.google-services") version "4.5.0" apply false
    
        // Add the dependency for the Performance Monitoring Gradle plugin
        id("com.google.firebase.firebase-perf") version "2.0.2" apply false
    }

    Groovy

    plugins {
        // To benefit from the latest Performance Monitoring plugin features,
        // update your Android Gradle plugin dependency to at least v3.4.0
        id 'com.android.application' version '7.3.0' apply false
    
        // Make sure that you have the Google services Gradle plugin dependency
        id 'com.google.gms.google-services' version '4.5.0' apply false
    
        // Add the dependency for the Performance Monitoring Gradle plugin
        id 'com.google.firebase.firebase-perf' version '2.0.2' apply false
    }
  2. В файл Gradle модуля (на уровне приложения) (обычно <project>/<app-module>/build.gradle.kts или <project>/<app-module>/build.gradle) добавьте плагин Gradle Performance Monitoring:

    Kotlin

    plugins {
        id("com.android.application")
    
        // Make sure that you have the Google services Gradle plugin
        id("com.google.gms.google-services")
    
        // Add the Performance Monitoring Gradle plugin
        id("com.google.firebase.firebase-perf")
        ...
    }

    Groovy

    plugins {
        id 'com.android.application'
    
        // Make sure that you have the Google services Gradle plugin
        id 'com.google.gms.google-services'
    
        // Add the Performance Monitoring Gradle plugin
        id 'com.google.firebase.firebase-perf'
        ...
    }
  3. Перекомпилируйте приложение.

Шаг 3. Сгенерируйте события производительности для первоначального отображения данных

Firebase начнет обрабатывать события, когда вы добавите SDK в приложение. Если вы все ещё разрабатываете приложение локально, взаимодействуйте с ним, чтобы генерировать события для первоначального сбора и обработки данных.

  1. Сгенерируйте события, несколько раз переключив приложение между фоновым и активным режимами, взаимодействуя с приложением, перемещаясь по экранам и/или запуская сетевые запросы.

  2. Перейдите на панель управления Эффективность в консоли Firebase. Первые данные должны появиться в течение нескольких минут.

    Если вы не видите свои данные, ознакомьтесь с советами по устранению неполадок.

Шаг 4. (Необязательно.) Просмотрите сообщения в журнале о событиях производительности

  1. Чтобы включить ведение журнала отладки для Performance Monitoring во время сборки, добавьте элемент <meta-data> в файл AndroidManifest.xml приложения, как показано ниже.

    <application>
        <meta-data
          android:name="firebase_performance_logcat_enabled"
          android:value="true" />
    </application>
  2. Проверьте сообщения в журнале на наличие сообщений об ошибках.

  3. Performance Monitoring помечает сообщения в журнале тегом FirebasePerformance. Используя фильтрацию logcat, вы можете просматривать трассировку продолжительности просмотра и журналы сетевых запросов HTTP/S, выполнив следующую команду:

    adb logcat -s FirebasePerformance
  4. Проверьте, есть ли в журнале следующие типы записей, которые указывают на то, что Performance Monitoring регистрирует события производительности:

    • Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
    • Logging network request trace: URL
  5. Нажмите на URL, чтобы посмотреть данные в консоли Firebase. Обновление данных на панели управления может занять несколько минут.

Если ваше приложение не регистрирует события производительности, ознакомьтесь с советами по устранению неполадок.

Шаг 5. (Необязательно.) Добавьте специальный мониторинг для определенного кода

Чтобы отслеживать данные об эффективности, связанные с определенным кодом в приложении, можно использовать трассировку пользовательского кода.

С помощью трассировки пользовательского кода можно измерить, сколько времени требуется приложению для выполнения определенной задачи или набора задач, например загрузки набора изображений или запроса к базе данных. По умолчанию для трассировки пользовательского кода используется показатель длительности, но вы также можете добавить специальные показатели, например совпадения в кеше и предупреждения о памяти.

В коде вы определяете начало и конец трассировки пользовательского кода (и добавляете любые нужные пользовательские показатели), используя API, предоставляемый Performance Monitoring SDK. Для приложений Android вы также можете отслеживать длительность определенных методов с помощью аннотации@AddTrace.

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

Шаг 6. Разверните приложение и проверьте результаты

После проверки Performance Monitoring на одном или нескольких тестовых устройствах вы можете развернуть обновленную версию приложения для пользователей.

Данные об эффективности можно отслеживать на панели Эффективность в консоли Firebase.

Известные проблемы

  • Плагин Gradle Performance Monitoring версии 1.1.0 может вызвать несоответствие в зависимостях Guava, что приведет к следующей ошибке:

    Error:Execution failed for task ':app:packageInstantRunResourcesDebug'.
    > com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;

    Если вы видите эту ошибку, вы можете:

    • Обновите плагин Performance Monitoring до версии 1.1.1 или более поздней (последняя версия – 2.0.2).

    • Замените строку зависимости плагина Performance Monitoring в файле Gradle корневого уровня (на уровне проекта) (<project>/build.gradle.kts или <project>/build.gradle) следующим образом:

      Kotlin

      buildscript {
        // ...
      
        dependencies {
          // ...
      
          // Replace the standard Performance Monitoring plugin dependency line, as follows:
          classpath("com.google.firebase:perf-plugin:1.1.0") {
              exclude(group = "com.google.guava", module = "guava-jdk5")
          }
        }
      }

      Groovy

      buildscript {
        // ...
      
        dependencies {
          // ...
      
          // Replace the standard Performance Monitoring plugin dependency line, as follows:
          classpath('com.google.firebase:perf-plugin:1.1.0') {
              exclude group: 'com.google.guava', module: 'guava-jdk5'
          }
        }
      }
  • Performance Monitoring сообщает общий размер полезной нагрузки для сетевых HTTP-запросов на основе значения, заданного в заголовке content-length. Это значение не всегда может быть точным.

  • Performance Monitoring поддерживает только основной процесс в многопроцессных приложениях Android.

Дальнейшие действия