Подготовка
Если вы ещё этого не сделали, добавьте Firebase в проект для Android.
Шаг 1. Добавьте SDK Performance Monitoring в приложение
После добавления SDK Performance Monitoring Firebase автоматически начинает собирать данные об отрисовке экранов и жизненном цикле приложения (например, время начала работы приложения). Чтобы Firebase мог отслеживать сетевые запросы, вам также нужно добавить плагин Performance Monitoring Gradle (следующий шаг).
В файле 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. Добавьте плагин Performance Monitoring Gradle в приложение
После добавления плагина Gradle Performance Monitoring Firebase автоматически начнет собирать данные о сетевых запросах HTTP/S. Плагин также позволяет отслеживать собственный код с помощью аннотации@AddTrace.
В файл 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 }
В файл 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. Сгенерируйте события производительности для первоначального отображения данных
Firebase начнет обрабатывать события, когда вы добавите SDK в приложение. Если вы все ещё разрабатываете приложение локально, взаимодействуйте с ним, чтобы генерировать события для первоначального сбора и обработки данных.
Сгенерируйте события, несколько раз переключив приложение между фоновым и активным режимами, взаимодействуя с приложением, перемещаясь по экранам и/или запуская сетевые запросы.
Перейдите на панель управления Эффективность в консоли Firebase. Первые данные должны появиться в течение нескольких минут.
Если вы не видите свои данные, ознакомьтесь с советами по устранению неполадок.
Шаг 4. (Необязательно.) Просмотрите сообщения в журнале о событиях производительности
Чтобы включить ведение журнала отладки для Performance Monitoring во время сборки, добавьте элемент
<meta-data>в файлAndroidManifest.xmlприложения, как показано ниже.<application> <meta-data android:name="firebase_performance_logcat_enabled" android:value="true" /> </application>Проверьте сообщения в журнале на наличие сообщений об ошибках.
Performance Monitoring помечает сообщения в журнале тегом
FirebasePerformance. Используя фильтрацию logcat, вы можете просматривать трассировку продолжительности просмотра и журналы сетевых запросов HTTP/S, выполнив следующую команду:adb logcat -s FirebasePerformance
Проверьте, есть ли в журнале следующие типы записей, которые указывают на то, что Performance Monitoring регистрирует события производительности:
Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URLLogging network request trace: URL
Нажмите на 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.
Дальнейшие действия
Изучите и запустите пример кода Performance Monitoring для Android на GitHub.
Подробнее о данных, которые автоматически собирает Performance Monitoring:
- Данные, связанные с жизненным циклом приложения, например время запуска.
- Данные для отрисовки экрана в приложении.
- Данные о сетевых запросах HTTP/S, отправленных вашим приложением.
Просматривайте, отслеживайте и фильтруйте данные об эффективности в консоли Firebase.
Добавьте мониторинг определенных задач или рабочих процессов в приложении, настроив трассировку собственного кода.