Wyłącz Monitorowanie wydajności Firebase


Podczas tworzenia i testowania aplikacji możesz wyłączyć Performance Monitoring.

Możesz na przykład wyłączyć Performance Monitoring podczas procesu kompilacji aplikacji, aby:

  • Wyłącz niektóre funkcje Performance Monitoring (np. te, które zapewnia Performance Monitoringwtyczka Gradle) w kompilacjach debugowania, ale włącz je ponownie w kompilacji wersji.

  • Wyłącz Performance Monitoring podczas tworzenia aplikacji, ale zezwól jej na ponowne włączenie w czasie działania.

  • Wyłącz Performance Monitoring podczas tworzenia aplikacji i nie zezwalaj na ponowne włączenie tej funkcji w czasie działania aplikacji.

Możesz też utworzyć aplikację z Performance Monitoring włączonym, ale użyj Firebase Remote Config, aby mieć możliwość wyłączenia (i ponownego włączenia) Performance Monitoring w aplikacji produkcyjnej. Dzięki tej opcji możesz nawet skonfigurować aplikację tak, aby użytkownicy mogli włączać i wyłączać korzystanie z Performance Monitoring.

Wyłącz Performance Monitoring podczas procesu tworzenia aplikacji.

Możesz wyłączyć Performance Monitoring podczas procesu kompilacji, wyłączając wtyczkę Gradle Performance Monitoring lub wyłączając bibliotekę Androida Performance Monitoring.

Podczas tworzenia i debugowania wyłączenie wtyczki jest przydatne, ponieważ instrumentacja przez wtyczkę może wydłużyć czas kompilacji. Możesz jednak pozostawić bibliotekę włączoną, aby nadal wyświetlać dane o skuteczności z logów czasu uruchomienia aplikacji, działania aplikacji na pierwszym planie i działania aplikacji w tle oraz wszelkie niestandardowe logi czasu kodu w aplikacji.

Wyłącz Performance Monitoring wtyczkę Gradle

Możesz wyłączyć wtyczkę Performance Monitoring, dodając flagę instrumentationEnabled za pomocą tych opcji:

  • Extension Property – wyłącza wtyczkę dla konkretnej wersji kompilacji w momencie kompilacji.

  • Właściwość projektu – wyłącza wtyczkę dla wszystkich wariantów kompilacji w czasie kompilacji.

Wyłączanie wtyczki za pomocą flagi właściwości rozszerzenia

Za pomocą flagi Extensions Property możesz wyłączyć wtyczkę Performance Monitoring w przypadku konkretnego wariantu kompilacji w czasie kompilacji.

  1. W pliku Gradle na poziomie głównym (projektu) (<project>/build.gradle.kts lub <project>/build.gradle) sprawdź, czy zależność wtyczki Androida do obsługi Gradle jest określona jako wersja 3.4.0 lub nowsza.

    W przypadku starszych wersji wtyczki Androida do obsługi Gradle możesz nadal wyłączyć wtyczkę Performance Monitoring dla konkretnego wariantu kompilacji, ale czas kompilacji tego wariantu nie zostanie całkowicie wyeliminowany.

  2. Dodaj ten flagę do pliku Gradle modułu (na poziomie aplikacji) (zazwyczaj <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle), a potem ustaw ją na false, aby wyłączyć wtyczkę Performance Monitoring.

    Kotlin

    import com.google.firebase.perf.plugin.FirebasePerfExtension
    
    // ...
    
    android {
      // ...
      buildTypes {
        getByName("debug") {
          configure<FirebasePerfExtension> {
            // 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.
            setInstrumentationEnabled(false)
          }
        }
      }
    }

    Groovy

    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łączanie wtyczki za pomocą flagi właściwości projektu

Za pomocą flagi Project Property możesz wyłączyć wtyczkę Performance Monitoring dla wszystkich wariantów kompilacji w czasie kompilacji.

Dodaj do pliku gradle.properties ten flagę, a potem ustaw ją na 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 Performance Monitoring bibliotekę Androida.

Jeśli wyłączysz bibliotekę Performance Monitoring w czasie kompilacji, możesz zdecydować, czy zezwolisz aplikacji na włączenie jej w czasie działania.

wyłączyć bibliotekę w czasie kompilacji, ale zezwolić aplikacji na włączenie jej w czasie działania;

Dodaj do pliku AndroidManifest.xml aplikacji ten element <meta-data>:

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

wyłączyć bibliotekę w czasie kompilacji, ale nie zezwalać aplikacji na włączenie jej w czasie działania;

Dodaj do pliku AndroidManifest.xml aplikacji ten element <meta-data>:

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

Wyłączanie aplikacji w czasie działania za pomocą Remote Config

Firebase Remote Config umożliwia wprowadzanie zmian w zachowaniu i wyglądzie aplikacji, dzięki czemu jest idealnym sposobem na wyłączenie Performance Monitoring w wdrożonych instancjach aplikacji.

Aby wyłączyć zbieranie danych Performance Monitoring przy następnym uruchomieniu aplikacji na Androida, użyj przykładowego kodu podanego poniżej. Więcej informacji o używaniu Remote Config w aplikacji na Androida znajdziesz w artykule Używanie Firebase Remote Config na Androidzie.

  1. Sprawdź, czy Remote Config znajduje się w sekcji dependencies pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle):

    Kotlin

      implementation("com.google.firebase:firebase-config-ktx:23.0.0")
    

    Java

      implementation("com.google.firebase:firebase-config:23.0.0")
    
  2. Skonfiguruj Remote Config i wyłącz Performance Monitoring, jeśli perf_disable ma wartość true:

    Kotlin

    // 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
            }
        }

    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
                    }
                }
            });
  3. Dodaj do pliku MainActivity.java ten kod, aby pobrać i aktywować wartości:Remote Config

    Kotlin

    // 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
            }
        }

    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
                    }
                }
            });
  4. Aby wyłączyć Performance Monitoring w konsoli Firebase, utwórz w projekcie aplikacji parametr perf_disable, a następnie ustaw jego wartość na true.

    Ta zmiana spowoduje, że wywołania pakietu SDK Performance Monitoring będą wywołaniami „bez operacji” (NOOP), co wyeliminuje wszelkie znaczące skutki korzystania z pakietu SDK Performance Monitoring w aplikacji na jej wydajność.

    Jeśli ustawisz wartość parametru perf_disable na false, Performance Monitoring pozostanie włączony.