Wyłącz Monitorowanie wydajności Firebase


Podczas tworzenia i testowania aplikacji przydatne może być wyłączenie Performance Monitoring.

Jeśli na przykład wyłączysz Performance Monitoring podczas procesu kompilacji aplikacji, możesz:

  • Wyłącz niektóre funkcje Performance Monitoring (np. te udostępniane przez wtyczkę Performance Monitoring do Gradle) w kompilacjach do debugowania, ale włącz je ponownie w kompilacji do publikacji.

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

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

Możesz też utworzyć aplikację z włączoną funkcją Performance Monitoring, ale użyć Firebase Remote Config, aby móc elastycznie wyłączać (i ponownie włączać) Performance Monitoring w aplikacji produkcyjnej. Dzięki tej opcji możesz nawet skonfigurować aplikację tak, aby użytkownicy mogli wyrazić zgodę na korzystanie z Performance Monitoring lub z niego zrezygnować.

Wyłączanie Performance Monitoring podczas procesu kompilacji 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 warto wyłączyć wtyczkę, 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 ze śladów uruchamiania aplikacji, aplikacji na pierwszym planie i aplikacji w tle oraz wszelkie ślady kodu niestandardowego w aplikacji.

Wyłącz wtyczkę Gradle Performance Monitoring

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

  • Właściwość rozszerzenia – wyłącza wtyczkę dla określonego wariantu kompilacji w czasie kompilowania.

  • Project Property – wyłącza wtyczkę dla wszystkich wariantów kompilacji w czasie kompilowania.

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

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

  1. W pliku Gradle na poziomie głównym (poziomie projektu) (<project>/build.gradle.kts lub <project>/build.gradle) upewnij się, że zależność wtyczki Androida do obsługi Gradle jest określona jako v3.4.0 lub nowsza.

    We wcześniejszych wersjach wtyczki Androida do obsługi Gradle nadal możesz wyłączyć wtyczkę Performance Monitoring w przypadku konkretnego wariantu kompilacji, ale nie spowoduje to całkowitego wyeliminowania czasu kompilacji tego wariantu.

  2. Dodaj do pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle) poniższą flagę, a następnie 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 Właściwość projektu możesz wyłączyć wtyczkę Performance Monitoring dla wszystkich wariantów kompilacji w czasie kompilowania.

Dodaj do pliku gradle.properties tę flagę, a następnie 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łączanie biblioteki Performance Monitoring na Androida

Jeśli wyłączysz bibliotekę Performance Monitoring w czasie kompilowania, możesz wybrać, czy chcesz zezwolić aplikacji na włączenie biblioteki w czasie działania.

Wyłącz bibliotekę w czasie kompilowania, ale zezwól aplikacji na jej włączenie 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 kompilowania, ale nie zezwalać aplikacji na jej włączenie 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 pozwala zmieniać działanie i wygląd aplikacji, dzięki czemu jest to idealny sposób na wyłączenie Performance Monitoring we wdrożonych instancjach aplikacji.

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

  1. Upewnij się, że 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:24.0.0")
    

    Java

      implementation("com.google.firebase:firebase-config:24.0.0")
    
  2. Skonfiguruj Remote Config i wyłącz Performance Monitoring, jeśli zasada perf_disable jest ustawiona na 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 parametr perf_disable w projekcie aplikacji, a następnie ustaw jego wartość na true.

    Ta zmiana sprawi, że wywołania pakietu SDK Performance Monitoring będą wywołaniami „bez operacji” (NOOP), co wyeliminuje wszelkie znaczące skutki dla wydajności aplikacji wynikające z używania pakietu SDK Performance Monitoring w aplikacji.

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