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 pakietu SDK Performance Monitoring Firebase automatycznie zacznie zbierać dane dotyczące renderowania ekranu aplikacji oraz dane związane z cyklem jej życia (np. czas uruchomienia aplikacji). Aby umożliwić Firebase monitorowanie żądań sieciowych, musisz też dodać wtyczkę Gradle Performance Monitoring (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:33.6.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 Firebase Android BoMaplikacja zawsze będzie używać zgodnych wersji bibliotek Firebase na Androida.

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

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

    Jeśli w aplikacji używasz kilku bibliotek Firebase, zdecydowanie zalecamy korzystanie z BoM do zarządzania wersjami bibliotek. Dzięki temu wszystkie wersje będą ze sobą 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.2")
    }
    Szukasz modułu biblioteki dla Kotlina? Od października 2023 r. (Firebase BoM 32.5.0) deweloperzy Kotlina i Java mogą korzystać z głównego modułu biblioteki (szczegółowe informacje znajdziesz w często zadawanych pytaniach dotyczących tej inicjatywy).

  2. Ponownie skompiluj aplikację.

Krok 2. Dodaj do aplikacji wtyczkę Performance Monitoring Gradle

Po dodaniu Performance Monitoring wtyczki Gradle Firebase automatycznie zacznie zbierać dane dotyczące żądań HTTP/S. Plugin umożliwia też instrumentowanie niestandardowych ścieżek kodu 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 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.2" 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.2' 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 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. Ponowne skompilowanie aplikacji.

Krok 3. Wygeneruj zdarzenia dotyczące skuteczności na potrzeby wyświetlania początkowych danych

Firebase zaczyna przetwarzać zdarzenia, gdy dodasz pakiet SDK do aplikacji. Jeśli nadal tworzysz aplikację lokalnie, generuj zdarzenia, aby umożliwić początkowe gromadzenie i przetwarzanie danych.

  1. generować zdarzenia, przełączając aplikację kilka razy między tłem a płaszczyzną, wchodzić z nią w interaktywność przez przełączanie się między ekranami lub wywoływanie żądań sieciowych.

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

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

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

  1. Aby włączyć logowanie debugowania dla Performance Monitoring w czasie kompilacji, dodaj 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 logach nie ma komunikatów o błędach.

  3. Performance Monitoring oznacza swoje komunikaty w dzienniku 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ź, czy występują te typy dzienników, które wskazują, że Performance Monitoring rejestruje zdarzenia dotyczące skutecznoś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. Może minąć kilka chwil, zanim dane zostaną zaktualizowane w panelu.

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 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.

Dzięki niestandardowemu śledzeniu kodu możesz mierzyć, ile czasu zajmuje aplikacji wykonanie określonego zadania lub zestawu zadań, takich jak wczytywanie zestawu obrazów czy zapytanie bazy danych. Domyślnym rodzajem danych w przypadku śledzenia kodu niestandardowego jest jego czas trwania, ale możesz też dodać dane niestandardowe, takie jak trafienia do pamięci podręcznej i ostrzeżenia dotyczące pamięci.

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

Aby dowiedzieć się więcej o tych funkcjach i sposobie ich dodawania do aplikacji, przeczytaj artykuł Dodawanie monitorowania określonego kodu.

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

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

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

Znane problemy

  • Wtyczka do obsługi Gradle Performance Monitoring 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, możesz:

    • Zaktualizuj wtyczkę Performance Monitoring do wersji 1.1.1 lub nowszej (najnowsza to wersja 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'
          }
        }
      }
  • Performance Monitoring raportuje łączny rozmiar danych w żądaniach sieci HTTP na podstawie wartości ustawionej w nagłówku HTTP Content-Length. Ta wartość może nie być zawsze dokładna.

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

Dalsze kroki