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

Прежде чем вы начнете

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

Шаг 1. Добавьте SDK для мониторинга производительности в свое приложение.

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

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

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:32.7.4"))
    
        // 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, вы должны указать каждую версию библиотеки 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:20.5.2")
    }
    
    Ищете библиотечный модуль, специфичный для Kotlin? Начиная с октября 2023 года (Firebase BoM 32.5.0) от основного модуля библиотеки могут зависеть как разработчики Kotlin, так и Java (подробнее см. FAQ по этой инициативе ).

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

Шаг 2. Добавьте плагин Gradle для мониторинга производительности в свое приложение.

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

  1. В файле Gradle корневого уровня (уровня проекта) ( <project>/build.gradle.kts или <project>/build.gradle ) добавьте плагин 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.4.1" 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.1' 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. Включите ведение журнала отладки для мониторинга производительности во время сборки, добавив элемент <meta-data> в файл AndroidManifest.xml вашего приложения, например:

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

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

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

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

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

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

Чтобы отслеживать данные о производительности, связанные с конкретным кодом в вашем приложении, вы можете использовать специальные трассировки кода .

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

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

Посетите раздел «Добавить мониторинг для конкретного кода» , чтобы узнать больше об этих функциях и о том, как добавить их в свое приложение.

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

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

Вы можете отслеживать данные о производительности на панели «Производительность» консоли 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'
          }
        }
      }
      
  • Мониторинг производительности сообщает общий размер полезной нагрузки для сетевых запросов HTTP на основе значения, установленного в заголовке длины содержимого HTTP. Это значение не всегда может быть точным.

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

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