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

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

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

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

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

  1. Используя Firebase Android BoM , объявите зависимость для библиотеки мониторинга производительности Android в файле Gradle вашего модуля (на уровне приложения) (обычно app/build.gradle ).

    Java

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:30.1.0')
    
        // Declare 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 {
        // Declare 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.1.0'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:30.1.0')
    
        // Declare 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-ktx'
    }
    

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

    (Альтернатива) Объявите зависимости библиотеки Firebase без использования BoM

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

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

    dependencies {
        // Declare 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-ktx:20.1.0'
    }
    

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

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

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

  1. В файле Gradle вашего модуля (уровня приложения) (обычно app/build.gradle ) примените плагин мониторинга производительности:

    apply plugin: 'com.android.application'
    apply plugin: 'com.google.gms.google-services'
    // Apply the Performance Monitoring plugin
    apply plugin: 'com.google.firebase.firebase-perf'
    
    android {
      // ...
    }
    
  2. В файле Gradle корневого уровня (уровня проекта) ( build.gradle ) добавьте правила для включения подключаемого модуля мониторинга производительности.

    buildscript {
    
        repositories {
          // Check that you have the following lines (if not, add them):
          google()  // Google's Maven repository
          mavenCentral()  // Maven Central repository
        }
    
        dependencies {
          // ...
    
          // To benefit from the latest Performance Monitoring plugin features,
          // update your Android Gradle Plugin dependency to at least v3.4.0
          classpath 'com.android.tools.build:gradle:3.4.0'
    
          classpath 'com.google.gms:google-services:4.3.12'  // Google Services plugin
    
          // Add the dependency for the Performance Monitoring plugin
          classpath 'com.google.firebase:perf-plugin:1.4.1'  // Performance Monitoring plugin
        }
    }
    
  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;

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

    • Обновите подключаемый модуль мониторинга производительности до версии 1.1.1 или более поздней (последняя версия — 1.4.1).

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

      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.

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