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

Прежде чем начать

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

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

После добавления Performance Monitoring SDK 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:33.14.0"))
    
        // 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:21.0.5")
    }
    Ищете модуль библиотеки, специфичный для Kotlin? Начиная с октября 2023 года ( Firebase BoM 32.5.0) разработчики Kotlin и Java смогут полагаться на основной модуль библиотеки (подробности см. в разделе часто задаваемых вопросов об этой инициативе ).

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

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

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

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

    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.4.2" apply false
    
        // Add the dependency for the Performance Monitoring Gradle plugin
        id("com.google.firebase.firebase-perf") version "1.4.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.4.2' apply false
    
        // Add the dependency for the Performance Monitoring Gradle plugin
        id 'com.google.firebase.firebase-perf' version '1.4.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 .

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

  • Плагин Performance Monitoring Gradle v1.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 или более поздней (самая последняя версия — v1.4.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 на основе значения, установленного в заголовке HTTP content-length. Это значение не всегда может быть точным.

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

Следующие шаги