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

Zanim zaczniesz

Dodaj Firebase do swojego projektu Android, chyba że masz to już za sobą.

Krok 1. Dodaj do aplikacji pakiet SDK Performance Monitoring

Gdy dodasz pakiet SDK Performance Monitoring, Firebase zacznie automatycznie zbierać dane dotyczące renderowania ekranu Twojej aplikacji oraz dane związane z jej cyklem życia (np. godzina uruchomienia aplikacji). Aby umożliwić Firebase monitorowanie żądań sieciowych, musisz również dodać wtyczkę Gradle monitorowania wydajności (następny krok).

  1. W pliku Gradle (na poziomie modułu) modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle) dodaj zależność z biblioteką monitorowania wydajności na Androida. Do kontrolowania obsługi wersji biblioteki zalecamy używanie funkcji Firebase Android BoM.

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

    Dzięki użyciu BoM Firebase Android BoM Twoja aplikacja zawsze używa zgodnych wersji bibliotek Firebase na Androida.

    (Alternatywnie) Dodawanie zależności bibliotek Firebase bez korzystania z BM

    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 swojej aplikacji używasz wielu bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek. Dzięki temu będziesz mieć pewność, że wszystkie wersje są zgodne.

    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:21.0.0")
    }
    
    Szukasz modułu biblioteki korzystającego z usługi Kotlin? Od października 2023 r. (Firebase BoM 32.5.0) zarówno deweloperzy aplikacji Kotlin, jak i języki Java mogą korzystać z modułu biblioteki głównej (więcej informacji znajdziesz w odpowiedziach na najczęstsze pytania o tę inicjatywę).

  2. Ponownie skompiluj aplikację.

Krok 2. Dodaj do aplikacji wtyczkę do monitorowania wydajności

Gdy dodasz wtyczkę do monitorowania wydajności do monitorowania wydajności, Firebase zacznie automatycznie zbierać dane z żądań sieciowych HTTP/S. Wtyczka umożliwia też instrumentowanie logów czasu niestandardowego za pomocą adnotacji@AddTrace.

  1. Do pliku Gradle na poziomie głównym (na poziomie projektu) (<project>/build.gradle.kts lub <project>/build.gradle) dodaj wtyczkę do Gradle monitorowania wydajności:

    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.1" apply false
    
        // Add the dependency for the Performance Monitoring Gradle plugin
        id("com.google.firebase.firebase-perf") version "1.4.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.1' apply false
    
        // Add the dependency for the Performance Monitoring Gradle plugin
        id 'com.google.firebase.firebase-perf' version '1.4.2' apply false
    }
    
  2. Do pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle) dodaj wtyczkę Gradle do monitorowania wydajności:

    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. Wygeneruj zdarzenia dotyczące skuteczności na potrzeby początkowego wyświetlania danych

Firebase rozpocznie przetwarzanie zdarzeń, gdy dodasz pakiet SDK do aplikacji. Jeśli nadal tworzysz aplikację lokalnie, użyj jej, aby wygenerować zdarzenia do wstępnego zbierania i przetwarzania danych.

  1. Aby generować zdarzenia, kilka razy przełączaj aplikację między tłem a pierwszym planem, wchodzij w interakcję z aplikacją za pomocą przechodzenia między ekranami lub uruchamiaj żądania sieciowe.

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

    Jeśli nie widzisz swoich danych początkowych, przeczytaj wskazówki dotyczące rozwiązywania problemów.

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

  1. Włącz logowanie debugowania w ramach monitorowania wydajności w czasie kompilacji, dodając element <meta-data> do pliku AndroidManifest.xml aplikacji w następujący sposób:

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

  3. Monitorowanie wydajności oznacza komunikaty logu tagiem 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ź następujące typy logów, które wskazują, że Monitorowanie wydajności rejestruje zdarzenia dotyczące 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 chwilę potrwać.

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

Krok 5. (Opcjonalnie) Dodaj niestandardowe monitorowanie dla określonego kodu

Aby monitorować dane o wydajności powiązane z określonym kodem w aplikacji, możesz skorzystać z niestandardowych logów czasu.

Niestandardowy ślad kodu pozwala sprawdzić, ile czasu zajmuje aplikacji wykonanie określonego zadania lub zestawu zadań, takich jak wczytanie zestawu obrazów czy wysłanie zapytania do bazy danych. Domyślnym wskaźnikiem niestandardowego śledzenia kodu jest jego czas trwania, ale możesz też dodać wskaźniki niestandardowe, takie jak trafienia w pamięci podręcznej i ostrzeżenia dotyczące pamięci.

W swoim kodzie definiujesz początek i koniec niestandardowego logu czasu (oraz dodajesz dowolne odpowiednie dane niestandardowe) za pomocą interfejsu API dostępnego w pakiecie SDK Performance Monitoring. W przypadku aplikacji na Androida możesz też sprawdzać czas trwania poszczególnych metod, korzystając z adnotacji@AddTrace.

Więcej informacji o tych funkcjach i dodawaniu ich do aplikacji znajdziesz w artykule Dodawanie monitorowania na potrzeby określonego kodu.

Krok 6. Wdróż aplikację i sprawdź jej wyniki

Po sprawdzeniu monitorowania wydajności za pomocą co najmniej jednego urządzenia testowego możesz wdrożyć zaktualizowaną wersję aplikacji na urządzeniach użytkowników.

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

Znane problemy

  • Wtyczka do monitorowania wydajności w wersji 1.1.0 może powodować niezgodność zależności Guawy, co może doprowadzić do tego błędu:

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

    Jeśli widzisz ten błąd:

    • Uaktualnij wtyczkę Monitorowanie wydajności do wersji 1.1.1 lub nowszej (najnowsza wersja to 1.4.2).

    • Zastąp wiersz zależności wtyczki Performance Monitoring w pliku Gradle na poziomie głównym (na poziomie 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'
          }
        }
      }
      
  • Monitorowanie wydajności raportuje łączny rozmiar ładunku dla żądań sieciowych HTTP na podstawie wartości ustawionej w nagłówku HTTP content-length. Ta wartość może nie zawsze być dokładna.

  • Monitorowanie wydajności obsługuje tylko główny proces w wieloprocesowych aplikacjach na Androida.

Dalsze kroki