Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Wyłącz monitorowanie wydajności Firebase

Zadbaj o dobrą organizację dzięki kolekcji Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.

na

Podczas tworzenia i testowania aplikacji przydatne może być wyłączenie monitorowania wydajności.

Na przykład wyłączając monitorowanie wydajności podczas procesu tworzenia aplikacji , możesz:

  • Wyłącz niektóre funkcje Performance Monitoring (takie jak te dostarczane przez wtyczkę Performance Monitoring Gradle ) w kompilacjach debugowania, ale ponownie włącz funkcje dla kompilacji wydania.

  • Wyłącz monitorowanie wydajności podczas tworzenia aplikacji, ale zezwól aplikacji na ponowne włączenie jej w czasie wykonywania.

  • Wyłącz monitorowanie wydajności podczas tworzenia aplikacji i nie zezwalaj aplikacji na ponowne włączanie jej w czasie wykonywania.

Możesz też zbudować swoją aplikację z włączonym monitorowaniem wydajności , ale użyj zdalnej konfiguracji Firebase , aby zapewnić sobie elastyczność wyłączania (i ponownego włączania) monitorowania wydajności w aplikacji produkcyjnej. Dzięki tej opcji możesz nawet skonfigurować swoją aplikację, aby umożliwić użytkownikom włączenie lub rezygnację z korzystania z monitorowania wydajności.

Wyłącz monitorowanie wydajności podczas procesu tworzenia aplikacji

Monitorowanie wydajności można wyłączyć podczas procesu kompilacji, wyłączając wtyczkę Performance Monitoring Gradle i/lub wyłączając bibliotekę Performance Monitoring Android .

Podczas opracowywania i debugowania wyłączenie wtyczki jest przydatne, ponieważ instrumentacja przez wtyczkę może przyczynić się do wydłużenia czasu kompilacji. Możesz jednak rozważyć pozostawienie włączonej biblioteki, aby nadal można było wyświetlać dane dotyczące wydajności z uruchamiania aplikacji, śladów aplikacji na pierwszym planie i aplikacji w tle , a także wszelkich niestandardowych śladów kodu w aplikacji.

Wyłącz wtyczkę Gradle monitorowania wydajności

Wtyczkę Performance Monitoring można wyłączyć, dodając flagę instrumentationEnabled przy użyciu następujących opcji:

Wyłącz wtyczkę za pomocą flagi właściwości rozszerzenia

Używając flagi Extensions Property , możesz wyłączyć wtyczkę Performance Monitoring dla określonego wariantu kompilacji w czasie kompilacji.

  1. W pliku build.gradle na poziomie głównym (na poziomie projektu) upewnij się, że zależność wtyczki Android Gradle jest określona jako wersja 3.4.0 lub nowsza.

    W przypadku wcześniejszych wersji wtyczki Android Gradle nadal można wyłączyć wtyczkę Performance Monitoring dla określonego wariantu kompilacji, ale wkład czasu kompilacji dla tego wariantu nie zostanie całkowicie wyeliminowany.

  2. Dodaj następującą flagę do pliku build.gradle modułu (na poziomie aplikacji), a następnie ustaw ją na wartość false , aby wyłączyć wtyczkę Performance Monitoring.

    android {
      // ...
      buildTypes {
        debug {
          FirebasePerformance {
            // Set this flag to 'false' to disable @AddTrace annotation processing and
            // automatic monitoring of HTTP/S network requests
            // for a specific build variant at compile time.
            instrumentationEnabled false
          }
        }
      }
    }
    

Wyłącz wtyczkę za pomocą flagi Project Property

Używając flagi Project Property , możesz wyłączyć wtyczkę Performance Monitoring dla wszystkich wariantów kompilacji w czasie kompilacji.

Dodaj następującą flagę do pliku gradle.properties , a następnie ustaw ją na wartość false , aby wyłączyć wtyczkę Performance Monitoring.

// ...

// Set this flag to 'false' to disable @AddTrace annotation processing and
// automatic monitoring of HTTP/S network requests
// for all build variants at compile time.
firebasePerformanceInstrumentationEnabled=false

Wyłącz bibliotekę monitorowania wydajności Androida

Jeśli wyłączysz bibliotekę monitorowania wydajności w czasie kompilacji, możesz wybrać, czy zezwolić aplikacji na włączenie biblioteki w czasie wykonywania.

Wyłącz bibliotekę w czasie kompilacji, ale pozwól swojej aplikacji włączyć ją w czasie wykonywania

Dodaj następujący element <meta-data> do pliku AndroidManifest.xml aplikacji:

  <application>
    <meta-data
      android:name="firebase_performance_collection_enabled"
      android:value="false" />
  </application>

Wyłącz bibliotekę w czasie kompilacji, ale nie zezwalaj aplikacji na włączanie jej w czasie wykonywania

Dodaj następujący element <meta-data> do pliku AndroidManifest.xml aplikacji:

  <application>
    <meta-data
      android:name="firebase_performance_collection_deactivated"
      android:value="true" />
  </application>

Wyłącz swoją aplikację w czasie wykonywania za pomocą zdalnej konfiguracji

Zdalna konfiguracja Firebase umożliwia wprowadzanie zmian w zachowaniu i wyglądzie aplikacji, dzięki czemu stanowi idealny sposób na wyłączenie monitorowania wydajności we wdrożonych wystąpieniach aplikacji.

Aby wyłączyć zbieranie danych monitorowania wydajności przy następnym uruchomieniu aplikacji na Androida, użyj przykładowego kodu pokazanego poniżej. Aby uzyskać więcej informacji na temat korzystania ze zdalnej konfiguracji w aplikacji na Androida, zobacz Używanie zdalnej konfiguracji Firebase w systemie Android .

  1. Upewnij się, że Zdalna konfiguracja znajduje się w sekcji dependencies pliku Gradle modułu (zwykle app/build.gradle ):

    implementation 'com.google.firebase:firebase-config:21.2.0'
    
  2. Skonfiguruj zdalną konfigurację i wyłącz monitorowanie wydajności, jeśli perf_disable ma wartość true :

    Java

    // Setup remote config
    final FirebaseRemoteConfig config = FirebaseRemoteConfig.getInstance();
    
    // You can uncomment the following two statements to permit more fetches when
    // validating your app, but you should comment out or delete these lines before
    // distributing your app in production.
    // FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
    //       .setMinimumFetchIntervalInSeconds(3600)
    //       .build();
    // config.setConfigSettingsAsync(configSettings);
    // Load in-app defaults from an XML file that sets perf_disable to false until you update
    // values in the Firebase Console
    
    //Observe the remote config parameter "perf_disable" and disable Performance Monitoring if true
    config.setDefaultsAsync(R.xml.remote_config_defaults)
            .addOnCompleteListener(new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful()) {
                        if (config.getBoolean("perf_disable")) {
                            FirebasePerformance.getInstance().setPerformanceCollectionEnabled(false);
                        } else {
                            FirebasePerformance.getInstance().setPerformanceCollectionEnabled(true);
                        }
                    } else {
                        // An error occurred while setting default parameters
                    }
                }
            });

    Kotlin+KTX

    // Setup remote config
    val config = Firebase.remoteConfig
    
    // You can uncomment the following two statements to permit more fetches when
    // validating your app, but you should comment out or delete these lines before
    // distributing your app in production.
    // val configSettings = remoteConfigSettings {
    //     minimumFetchIntervalInSeconds = 3600
    // }
    // config.setConfigSettingsAsync(configSettings)
    // Load in-app defaults from an XML file that sets perf_disable to false until you update
    // values in the Firebase Console
    
    // Observe the remote config parameter "perf_disable" and disable Performance Monitoring if true
    config.setDefaultsAsync(R.xml.remote_config_defaults)
            .addOnCompleteListener { task ->
                if (task.isSuccessful) {
                    Firebase.performance.isPerformanceCollectionEnabled = !config.getBoolean("perf_disable")
                } else {
                    // An error occurred while setting default parameters
                }
            }
  3. Dodaj następujący kod do MainActivity.java , aby pobrać i aktywować wartości Remote Config:

    Java

    //Remote Config fetches and activates parameter values from the service
    final FirebaseRemoteConfig config = FirebaseRemoteConfig.getInstance();
    config.fetch(3600)
            .continueWithTask(new Continuation<Void, Task<Boolean>>() {
                @Override
                public Task<Boolean> then(@NonNull Task<Void> task) throws Exception {
                    if (!task.isSuccessful()) {
                        throw task.getException();
                    }
                    return config.activate();
                }
            })
            .addOnCompleteListener(new OnCompleteListener<Boolean>() {
                @Override
                public void onComplete(@NonNull Task<Boolean> task) {
                    if (task.isSuccessful()) {
                        // Parameter values successfully activated
                        // ...
                    } else {
                        // Handle errors
                    }
                }
            });

    Kotlin+KTX

    // Remote Config fetches and activates parameter values from the service
    val config = Firebase.remoteConfig
    config.fetch(3600)
            .continueWithTask { task ->
                if (!task.isSuccessful) {
                    task.exception?.let {
                        throw it
                    }
                }
                config.activate()
            }
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    // Parameter values successfully activated
                    // ...
                } else {
                    // Handle errors
                }
            }
  4. Aby wyłączyć monitorowanie wydajności w konsoli Firebase, utwórz parametr perf_disable w projekcie aplikacji, a następnie ustaw jego wartość na true .

    Ta zmiana spowoduje wywołanie wywołań zestawu SDK monitorowania wydajności „brak operacji” (NOOP), eliminując wszelkie znaczące wpływy na wydajność aplikacji wynikające z używania zestawu SDK monitorowania wydajności w Twojej aplikacji.

    Jeśli ustawisz wartość perf_disable na false , monitorowanie wydajności pozostanie włączone.