Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

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

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

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

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

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

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

    Ява

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

    Котлин + KTX

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

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

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

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

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

    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 ) добавьте правила для включения плагина Performance Monitoring.

    buildscript {
    
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
          // Add the Bintray repository
          jcenter()
        }
    
        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.8'  // Google Services plugin
    
          // Add the dependency for the Performance Monitoring plugin
          classpath 'com.google.firebase:perf-plugin:1.4.0'  // Performance Monitoring plugin
        }
    }
    
  3. Перекомпилируйте свое приложение.

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

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

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

  2. Перейти к приборной панели Performance консоли 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.

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

  • Плагин 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.0).

    • Замените строку зависимости плагина 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.

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