Check out what’s new from Firebase at Google I/O 2022. Learn more

Zacznij korzystać z monitorowania wydajności dla systemu Android

Zanim zaczniesz

Jeśli jeszcze tego nie zrobiłeś, dodaj Firebase do swojego projektu na Androida .

Krok 1 : Dodaj pakiet SDK do monitorowania wydajności do swojej aplikacji

Po dodaniu pakietu SDK monitorowania wydajności Firebase automatycznie rozpocznie zbieranie danych do renderowania ekranu aplikacji oraz danych związanych z cyklem życia aplikacji (np. czas uruchomienia aplikacji ). Aby umożliwić Firebase monitorowanie żądań sieciowych, musisz również dodać wtyczkę Performance Monitoring Gradle (następny krok).

  1. Za pomocą Firebase Android BoM zadeklaruj zależność dla biblioteki Performance Monitoring Android w pliku Gradle modułu (na poziomie aplikacji) (zwykle app/build.gradle ).

    Java

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

    Korzystając z Firebase Android BoM , Twoja aplikacja będzie zawsze używać zgodnych wersji bibliotek Firebase Android.

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

    Jeśli zdecydujesz się nie korzystać z BoM Firebase, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.

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

    dependencies {
        // Declare 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.0.6'
    }
    

    Kotlin+KTX

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

    Korzystając z Firebase Android BoM , Twoja aplikacja będzie zawsze używać zgodnych wersji bibliotek Firebase Android.

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

    Jeśli zdecydujesz się nie korzystać z BoM Firebase, musisz określić każdą wersję biblioteki Firebase w jej wierszu zależności.

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

    dependencies {
        // Declare 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.0.6'
    }
    

  2. Ponownie skompiluj swoją aplikację.

Krok 2 : Dodaj wtyczkę Performance Monitoring do swojej aplikacji

Po dodaniu wtyczki Performance Monitoring Gradle Firebase automatycznie rozpocznie zbieranie danych dla żądań sieciowych HTTP/S . Wtyczka umożliwia również instrumentację niestandardowych śladów kodu za pomocą adnotacji @AddTrace .

  1. W pliku Gradle modułu (na poziomie aplikacji) (zwykle app/build.gradle ) zastosuj wtyczkę Performance Monitoring:

    apply plugin: 'com.android.application'
    apply plugin: 'com.google.gms.google-services'
    // Apply the Performance Monitoring plugin
    apply plugin: 'com.google.firebase.firebase-perf'
    
    android {
      // ...
    }
    
  2. W pliku Gradle na poziomie głównym (na poziomie projektu) ( build.gradle ) dodaj reguły, aby uwzględnić wtyczkę Performance Monitoring.

    buildscript {
    
        repositories {
          // Check that you have the following lines (if not, add them):
          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:3.4.0'
    
          classpath 'com.google.gms:google-services:4.3.10'  // Google Services plugin
    
          // Add the dependency for the Performance Monitoring plugin
          classpath 'com.google.firebase:perf-plugin:1.4.1'  // Performance Monitoring plugin
        }
    }
    
  3. Ponownie skompiluj swoją aplikację.

Krok 3 : Wygeneruj zdarzenia dotyczące wydajności w celu wstępnego wyświetlenia danych

Firebase rozpocznie przetwarzanie zdarzeń, gdy pomyślnie dodasz pakiet SDK do swojej aplikacji. Jeśli nadal programujesz lokalnie, wejdź w interakcję z aplikacją, aby wygenerować zdarzenia do wstępnego gromadzenia i przetwarzania danych.

  1. Generuj zdarzenia, kilkakrotnie przełączając aplikację między tłem a pierwszym planem, wchodząc w interakcję z aplikacją poprzez nawigowanie po ekranach i/lub wyzwalając żądania sieciowe.

  2. Przejdź do panelu wydajności konsoli Firebase. Powinieneś zobaczyć swoje początkowe dane w ciągu kilku minut.

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

Krok 4 : (Opcjonalnie) Wyświetl komunikaty dziennika dotyczące zdarzeń dotyczących wydajności

  1. Włącz rejestrowanie debugowania dla monitorowania wydajności w czasie kompilacji, dodając element <meta-data> do pliku AndroidManifest.xml aplikacji, na przykład:

    <application>
        <meta-data
          android:name="firebase_performance_logcat_enabled"
          android:value="true" />
    </application>
    
  2. Sprawdź komunikaty dziennika pod kątem komunikatów o błędach.

  3. Monitorowanie wydajności taguje swoje komunikaty dziennika za pomocą FirebasePerformance . Korzystając z filtrowania logcat, można w szczególności wyświetlić śledzenie czasu trwania i rejestrowanie żądań sieciowych HTTP/S, uruchamiając następujące polecenie:

    adb logcat -s FirebasePerformance
  4. Sprawdź następujące typy dzienników, które wskazują, że funkcja Performance Monitoring 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ć swoje dane w konsoli Firebase. Aktualizacja danych w panelu może zająć kilka chwil.

Jeśli Twoja 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 Twojej aplikacji, możesz instrumentować niestandardowe ślady kodu .

Dzięki niestandardowemu śledzeniu kodu możesz zmierzyć, ile czasu zajmuje Twojej aplikacji wykonanie określonego zadania lub zestawu zadań, takich jak ładowanie zestawu obrazów lub wysyłanie zapytań do bazy danych. Domyślną metryką niestandardowego śledzenia kodu jest jego czas trwania, ale można również dodać niestandardowe metryki, takie jak trafienia w pamięci podręcznej i ostrzeżenia dotyczące pamięci.

W swoim kodzie definiujesz początek i koniec niestandardowego śledzenia kodu (i dodajesz dowolne żądane niestandardowe metryki) za pomocą interfejsu API dostarczanego przez pakiet Performance Monitoring SDK. W przypadku aplikacji na Androida możesz również monitorować czas trwania określonych metod za pomocą adnotacji @AddTrace .

Odwiedź Dodaj monitorowanie, aby uzyskać konkretny kod, aby dowiedzieć się więcej o tych funkcjach i sposobach ich dodawania do aplikacji.

Krok 6 : Wdróż aplikację, a następnie sprawdź wyniki

Po sprawdzeniu poprawności monitorowania wydajności przy użyciu co najmniej jednego urządzenia testowego możesz wdrożyć zaktualizowaną wersję aplikacji dla użytkowników.

Możesz monitorować dane dotyczące wydajności w panelu Wydajność konsoli Firebase.

Znane problemy

  • Wtyczka Performance Monitoring Gradle v1.1.0 może powodować niezgodność w zależnościach 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 wersja 1.4.1).

    • Zastąp wiersz zależności wtyczki Performance Monitoring w pliku Gradle na poziomie głównym (na poziomie projektu) ( build.gradle ), w następujący sposób:

      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 całkowity 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.

Następne kroki