Прежде чем начать
Если вы еще этого не сделали, добавьте Firebase в свой Android-проект .
Шаг 1 : Добавьте SDK Performance Monitoring в ваше приложение.
После добавления SDK Performance Monitoring Firebase автоматически начнет собирать данные о рендеринге экрана вашего приложения и данные, связанные с жизненным циклом приложения (например, время запуска приложения ). Чтобы Firebase мог отслеживать сетевые запросы, необходимо также добавить плагин Gradle Performance Monitoring (следующий шаг).
В файле 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:34.7.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:22.0.4") }
Перекомпилируйте приложение.
Шаг 2 : Добавьте плагин Performance Monitoring Gradle в ваше приложение.
После добавления плагина Performance Monitoring Gradle, Firebase автоматически начинает сбор данных для сетевых HTTP/S-запросов . Плагин также позволяет инструментировать пользовательские трассировки кода с помощью аннотации @AddTrace .
В корневой (проектный) файл 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.4" 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.4.4' 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_URL -
Logging network request trace: URL
-
Нажмите на URL-адрес, чтобы просмотреть данные в консоли Firebase. Обновление данных на панели мониторинга может занять несколько секунд.
Если ваше приложение не регистрирует события, связанные с производительностью, ознакомьтесь с советами по устранению неполадок .
Шаг 5 : (Необязательно) Добавьте пользовательский мониторинг для конкретного кода.
Для мониторинга данных о производительности, связанных с конкретным кодом в вашем приложении, вы можете использовать инструментарий трассировки пользовательского кода .
С помощью трассировки пользовательского кода вы можете измерить, сколько времени требуется вашему приложению для выполнения определенной задачи или набора задач, например, загрузки набора изображений или запроса к базе данных. По умолчанию для трассировки пользовательского кода используется показатель длительности, но вы также можете добавить собственные метрики, такие как попадания в кэш и предупреждения о нехватке памяти.
В своем коде вы определяете начало и конец пользовательской трассировки кода (и добавляете любые необходимые пользовательские метрики), используя API, предоставляемый SDK Performance Monitoring . Для приложений Android вы также можете отслеживать продолжительность выполнения определенных методов с помощью аннотации @AddTrace .
Посетите раздел «Добавление мониторинга для конкретного кода», чтобы узнать больше об этих функциях и о том, как добавить их в ваше приложение.
Шаг 6 : Разверните приложение, затем просмотрите результаты.
После проверки работоспособности Performance Monitoring с помощью одного или нескольких тестовых устройств вы можете развернуть обновленную версию приложения для пользователей.
Отслеживать данные о производительности можно на панели мониторинга «Производительность» в консоли Firebase .
Известные проблемы
Плагин Performance Monitoring Gradle версии 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-запросов на основе значения, установленного в заголовке HTTP content-length. Это значение может быть не всегда точным.
В многопроцессных приложениях Android Performance Monitoring поддерживает только основной процесс.
Следующие шаги
Ознакомьтесь и запустите пример кода Performance Monitoring Android на GitHub .
Узнайте больше о данных, автоматически собираемых системой Performance Monitoring :
- Данные, относящиеся к жизненному циклу вашего приложения, такие как время запуска приложения.
- Данные для отрисовки экрана в вашем приложении.
- Данные для сетевых запросов HTTP/S, отправляемых вашим приложением.
Просматривайте, отслеживайте и фильтруйте данные о производительности в консоли Firebase .
Добавьте мониторинг для конкретных задач или рабочих процессов в вашем приложении, используя инструментарий для трассировки пользовательского кода .
Используйте атрибуты для фильтрации данных о производительности .