Wyłącz Monitorowanie wydajności Firebase


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

Na przykład wyłączenie Performance Monitoring podczas procesu kompilacji aplikacji pozwala:

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

  • Wyłącz Performance Monitoring podczas tworzenia aplikacji, ale pozwól jej ponownie włączyć tę funkcję w czasie działania.

  • Wyłącz Performance Monitoring podczas tworzenia aplikacji i nie zezwalaj jej na: włącz ją ponownie w czasie działania aplikacji.

Możesz też utworzyć aplikację z włączoną funkcją Performance Monitoring, ale użyj Firebase Remote Config, aby uzyskać możliwość wyłączenia (i ponownego włączenia) funkcji Performance Monitoring w aplikacji. Z tej opcji, możesz nawet skonfigurować aplikację tak, aby zezwalała użytkownikom za pomocą funkcji Performance Monitoring.

Wyłączanie Performance Monitoring podczas kompilowania aplikacji

Aby wyłączyć Performance Monitoring podczas kompilacji przez wyłączyć wtyczkę Performance Monitoring do Gradle lub wyłączając bibliotekę Androida Performance Monitoring.

Wyłączenie wtyczki może być przydatne podczas tworzenia i debugowania, ponieważ jej użycie do pomiarów może wydłużać czas kompilacji. Możesz jednak pozostawić bibliotekę włączoną, aby nadal wyświetlać dane o skuteczności z logów czasu uruchamiania aplikacji, logów aplikacji na pierwszym planie i logów aplikacji na drugim planie, a także logów kodu niestandardowego w aplikacji.

Wyłączanie wtyczki Performance Monitoring Gradle

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

Wyłączanie wtyczki za pomocą flagi usługi rozszerzenia

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

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

    W przypadku starszych wersji wtyczki Gradle na Androida nadal możesz wyłączyć wtyczkę Performance Monitoring w przypadku konkretnej wersji kompilacji, ale czas kompilacji dla tej wersji nie zostanie całkowicie wyeliminowany.

  2. Dodaj ten parametr do pliku Gradle modułu (na poziomie aplikacji) (zazwyczaj <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle), a następnie ustaw go 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łącz wtyczkę za pomocą flagi właściwości projektu

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

Aby wyłączyć wtyczkę Performance Monitoring, dodaj do pliku gradle.properties ten parametr i ustaw go na false.

// ...

// 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ę Performance Monitoring na Androida

Jeśli biblioteka Performance Monitoring zostanie wyłączona w czasie kompilacji, możesz zdecydować, czy aplikacja ma ją włączyć w czasie działania.

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

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

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

Wyłącz bibliotekę w czasie kompilacji, ale nie zezwalaj aplikacji na jej włączenie w czasie działania

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

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

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

Firebase Remote Config umożliwia zmianę działania i wyglądu aplikacji, więc jest to idealny sposób na wyłączenie funkcji Performance Monitoring w instancji wdrożonych aplikacji.

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

  1. Upewnij się, że Remote Config jest w sekcji dependencies na plik Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle):

    Kotlin+KTX

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

    Java

      implementation("com.google.firebase:firebase-config:22.0.0")
    
  2. Skonfiguruj Remote Config i wyłącz Performance Monitoring, jeśli perf_disable jest ustawiony na true:

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

    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ć ten kod Wartości parametru Remote Config:

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

    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 „no operation” (NOOP), co wyeliminuje wpływ na wydajność aplikacji wynikający z korzystania z pakietu SDK Performance Monitoring w aplikacji.

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