Wprowadzenie do Monitorowania wydajności na urządzeniach z Androidem

Zanim zaczniesz

Jeśli jeszcze tego nie zrobiono, dodaj Firebase do projektu na Androida.

Krok 1. Dodaj do aplikacji pakiet SDK Performance Monitoring

Po dodaniu Performance Monitoringpakietu SDK Firebase automatycznie rozpocznie zbieranie danych o renderowaniu ekranu aplikacji oraz danych związanych z cyklem życia aplikacji (np. czasu uruchomienia aplikacji). Aby umożliwić Firebase monitorowanie żądań sieciowych, musisz też dodać Performance Monitoringwtyczkę Gradle (następny krok).

  1. pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle) dodaj zależność z biblioteką Performance Monitoring na Androida. Zalecamy używanie Firebase Android BoM do kontrolowania wersji biblioteki.

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

    Gdy korzystamy z Firebase Android BoM, aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.

    (Alternatywnie)  Dodaj zależności biblioteki Firebase bez użycia BoM

    Jeśli nie chcesz używać Firebase BoM, musisz określić każdą wersję biblioteki Firebase w wierszu zależności.

    Pamiętaj, że jeśli w aplikacji używasz wielu bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek, co zapewnia zgodność wszystkich wersji.

    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.0")
    }

  2. Ponownie skompiluj aplikację.

Krok 2. Dodaj do aplikacji Performance Monitoring wtyczkę Gradle

Po dodaniu Performance Monitoringwtyczki Gradle Firebase automatycznie rozpocznie zbieranie danych o żądaniach sieciowych HTTP/S. Wtyczka umożliwia też instrumentowanie niestandardowych logów czasu za pomocą adnotacji@AddTrace.

  1. W pliku Gradle na poziomie głównym (projektu) (<project>/build.gradle.kts lub <project>/build.gradle) dodaj Performance Monitoringwtyczkę 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.4.3" apply false
    
        // Add the dependency for the Performance Monitoring Gradle plugin
        id("com.google.firebase.firebase-perf") version "2.0.0" 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.3' apply false
    
        // Add the dependency for the Performance Monitoring Gradle plugin
        id 'com.google.firebase.firebase-perf' version '2.0.0' apply false
    }
  2. W pliku Gradle modułu (na poziomie aplikacji) (zazwyczaj <project>/<app-module>/build.gradle.kts lub<project>/<app-module>/build.gradle) dodaj Performance Monitoringwtyczkę Gradle:

    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. Ponownie skompiluj aplikację.

Krok 3. Generowanie zdarzeń dotyczących skuteczności na potrzeby wstępnego wyświetlania danych

Firebase rozpoczyna przetwarzanie zdarzeń po dodaniu pakietu SDK do aplikacji. Jeśli nadal pracujesz nad aplikacją lokalnie, wchodź z nią w interakcje, aby generować zdarzenia na potrzeby wstępnego zbierania i przetwarzania danych.

  1. Wygeneruj zdarzenia, przełączając aplikację między tłem a pierwszym planem kilka razy, wchodząc z nią w interakcję przez poruszanie się po ekranach lub wywołując żądania sieciowe.

  2. Otwórz panel Skuteczność w konsoli Firebase. Pierwsze dane powinny pojawić się w ciągu kilku minut.

    Jeśli nie widzisz wyświetlonych danych początkowych, zapoznaj się z wskazówkami dotyczącymi rozwiązywania problemów.

Krok 4. (Opcjonalnie) Wyświetl wiadomości dziennika dotyczące zdarzeń związanych z wydajnością

  1. Włącz logowanie debugowania dla Performance Monitoring w momencie kompilacji, dodając element <meta-data> do pliku AndroidManifest.xml aplikacji w ten sposób:

    <application>
        <meta-data
          android:name="firebase_performance_logcat_enabled"
          android:value="true" />
    </application>
  2. Sprawdź, czy w komunikatach dziennika nie ma żadnych błędów.

  3. Performance Monitoring oznacza swoje wiadomości w logach symbolem FirebasePerformance. Korzystając z filtrowania logcat, możesz wyświetlić śledzenie czasu trwania i logowanie żądań sieciowych HTTP/S, uruchamiając to polecenie:

    adb logcat -s FirebasePerformance
  4. Sprawdź, czy występują te typy dzienników, które wskazują, że Performance Monitoring rejestruje zdarzenia związane z wydajnością:

    • Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
    • Logging network request trace: URL
  5. Kliknij adres URL, aby wyświetlić dane w konsoli Firebase. Aktualizacja danych w panelu może potrwać kilka chwil.

Jeśli Twoja aplikacja nie rejestruje zdarzeń związanych z wydajnością, zapoznaj się z wskazówkami dotyczącymi rozwiązywania problemów.

Krok 5. (Opcjonalnie) Dodaj niestandardowe monitorowanie konkretnego kodu

Aby monitorować dane o skuteczności powiązane z określonym kodem w aplikacji, możesz instrumentować niestandardowe logi czasu.

Dzięki śledzeniu kodu niestandardowego możesz mierzyć, ile czasu zajmuje aplikacji wykonanie określonego zadania lub zestawu zadań, np. wczytanie zestawu obrazów lub wysłanie zapytania do bazy danych. Domyślne dane śledzenia kodu niestandardowego to jego czas trwania, ale możesz też dodać dane niestandardowe, takie jak trafienia w pamięci podręcznej i ostrzeżenia o pamięci.

W kodzie definiujesz początek i koniec niestandardowego logu czasu (i dodajesz dowolne niestandardowe wskaźniki) za pomocą interfejsu API udostępnianego przez pakiet SDK Performance Monitoring. W przypadku aplikacji na Androida możesz też monitorować czas trwania określonych metod za pomocą adnotacji@AddTrace.

Więcej informacji o tych funkcjach i sposobie dodawania ich do aplikacji znajdziesz w artykule Dodawanie monitorowania konkretnego kodu.

Krok 6. Wdróż aplikację, a potem sprawdź wyniki.

Po sprawdzeniu Performance Monitoring na co najmniej jednym urządzeniu testowym możesz wdrożyć zaktualizowaną wersję aplikacji dla użytkowników.

Dane o skuteczności możesz monitorować w panelu Skuteczność w Firebase konsoli.

Znane problemy

  • Wtyczka Gradle Performance Monitoring w wersji 1.1.0 może powodować niezgodność zależności Guava, co skutkuje następującym błędem:

    Error:Execution failed for task ':app:packageInstantRunResourcesDebug'.
    > com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;

    Jeśli widzisz ten błąd, możesz:

    • Zaktualizuj wtyczkę Performance Monitoring do wersji 1.1.1 lub nowszej (najnowsza to v2.0.0).

    • Zastąp wiersz zależności wtyczki Performance Monitoringpliku Gradle na poziomie głównym (projektu) (<project>/build.gradle.kts lub <project>/build.gradle) w ten sposób:

      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 raportuje łączny rozmiar ładunku w przypadku żądań sieciowych HTTP na podstawie wartości ustawionej w nagłówku HTTP content-length. Ta wartość może nie zawsze być dokładna.

  • Performance Monitoring obsługuje tylko główny proces w wieloprocesowych aplikacjach na Androida.

Dalsze kroki