Прежде чем вы начнете
Если вы еще этого не сделали, добавьте Firebase в свой проект Android .
Шаг 1. Добавьте пакет SDK для мониторинга производительности в свое приложение.
После того как вы добавите пакет SDK для мониторинга производительности, Firebase автоматически начнет собирать данные для рендеринга экрана вашего приложения и данные, связанные с жизненным циклом вашего приложения (например , время запуска приложения ). Чтобы Firebase мог отслеживать сетевые запросы, вы также должны добавить подключаемый модуль Gradle для мониторинга производительности (следующий шаг).
В файле Gradle вашего модуля (уровня приложения) (обычно
<project>/<app-module>/build.gradle
) добавьте зависимость для библиотеки мониторинга производительности Android. Мы рекомендуем использовать Firebase Android BoM для управления версиями библиотеки.Kotlin+KTX
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.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-ktx' }
Используя 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-ktx:20.3.2' }
Java
dependencies { // Import the BoM for the Firebase platform implementation platform('com.google.firebase:firebase-bom:32.1.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:20.3.2' }
Перекомпилируйте ваше приложение.
Шаг 2. Добавьте плагин Gradle для мониторинга производительности в свое приложение.
После того, как вы добавили подключаемый модуль Gradle для мониторинга производительности, Firebase автоматически начинает собирать данные для сетевых запросов HTTP/S . Плагин также позволяет вам инструментировать пользовательские трассировки кода с помощью аннотации @AddTrace .
В файле Gradle корневого уровня (уровня проекта) (
<project>/build.gradle
) добавьте подключаемый модуль Gradle мониторинга производительности в качестве зависимости buildscript:buildscript { repositories { // Make sure that you have the following two repositories 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:7.2.0' // Make sure that you have the Google services Gradle plugin dependency classpath 'com.google.gms:google-services:4.3.15' // Add the dependency for the Performance Monitoring Gradle plugin classpath 'com.google.firebase:perf-plugin:1.4.2' } }
В файле Gradle вашего модуля (уровня приложения) (обычно
<project>/<app-module>/build.gradle
) добавьте подключаемый модуль Gradle для мониторинга производительности: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. (Необязательно) Просмотр сообщений журнала для событий производительности.
Включите ведение журнала отладки для мониторинга производительности во время сборки, добавив элемент
<meta-data>
в файлAndroidManifest.xml
вашего приложения, например:<application> <meta-data android:name="firebase_performance_logcat_enabled" android:value="true" /> </application>
Проверьте сообщения журнала на наличие сообщений об ошибках.
Мониторинг производительности помечает свои сообщения журнала тегом
FirebasePerformance
. Используя фильтрацию logcat, вы можете специально просмотреть трассировку продолжительности и ведение журнала сетевых запросов HTTP/S, выполнив следующую команду:adb logcat -s FirebasePerformance
Проверьте следующие типы журналов, которые указывают на то, что мониторинг производительности регистрирует события производительности:
-
Logging trace metric: TRACE_NAME , FIREBASE_PERFORMANCE_CONSOLE_URL
-
Logging network request trace: URL
-
Нажмите на 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.2).
Замените строку зависимостей подключаемого модуля мониторинга производительности в файле 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.
Следующие шаги
Просмотрите и запустите пример кода Android для мониторинга производительности на GitHub .
Узнайте больше о данных, автоматически собираемых службой Performance Monitoring:
- Данные, относящиеся к жизненному циклу вашего приложения, например время запуска приложения.
- Данные для рендеринга экрана в вашем приложении
- Данные для сетевых запросов HTTP/S, отправленных вашим приложением
Просматривайте, отслеживайте и фильтруйте данные об эффективности в консоли Firebase.
Добавьте мониторинг определенных задач или рабочих процессов в свое приложение, используя пользовательские трассировки кода .
Используйте атрибуты для фильтрации данных о производительности .