Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Firebase-Leistungsüberwachung deaktivieren

Während der App-Entwicklung und -Tests kann es hilfreich sein, die Leistungsüberwachung zu deaktivieren.

Zum Beispiel durch Überwachung deaktivieren Leistung während Ihrer App Build - Prozesses , können Sie:

  • Deaktivieren Sie bestimmte Funktionalitäten der Leistungsüberwachung (wie die von der bereitgestellten Leistungsüberwachung Gradle Plugin ) in Ihrem Debug - Builds, aber die Funktionalitäten für die Release - Build wieder aktivieren.

  • Deaktivieren Sie die Leistungsüberwachung beim Erstellen Ihrer App, aber lassen Sie Ihre App sie zur Laufzeit wieder aktivieren.

  • Deaktivieren Sie die Leistungsüberwachung beim Erstellen Ihrer App und lassen Sie nicht zu, dass Ihre App sie zur Laufzeit wieder aktiviert.

Sie können auch Ihre App mit Leistung aktiviert Überwachung, bauen aber verwenden Firebase Fern Config Sie Flexibilität zu deaktivieren, um (und aktivieren) Performance in Ihrer Produktion App Überwachung. Mit dieser Option können Sie Ihre App sogar so konfigurieren, dass Benutzer die Leistungsüberwachung aktivieren oder deaktivieren können.

Deaktivieren Sie die Leistungsüberwachung während des App-Build-Prozesses

Sie können deaktivieren Leistung während des Build - Prozesses Überwachung durch die Performance - Überwachung deaktivieren Gradle Plugin und / oder durch die Leistungsüberwachung Android Bibliothek zu deaktivieren .

Während der Entwicklung und Debugging, das Plugin zu deaktivieren ist nützlich , weil Instrumentierung durch das Plugin zu erhöhten Aufbauzeit beitragen kann. Sie könnten jedoch nach Ansicht der Bibliothek zu halten aktiviert , so dass Sie immer noch Performance - Daten aus sehen können App starten, app-in-Vordergrund, und App-in-Hintergrund Spuren sowie alle benutzerdefinierten Codes Spuren in Ihrer Anwendung.

Deaktivieren Sie das Gradle-Plugin für die Leistungsüberwachung

Sie können die Leistung deaktivieren , indem Sie das Hinzufügen einer Monitoring - Plugin instrumentationEnabled Flagge mit den folgenden Optionen:

  • Extension - deaktiviert das Plugin für eine bestimmte Build - Variante bei der Kompilierung

  • Projekt Property - deaktiviert das Plugin für alle Build - Varianten bei der Kompilierung

Deaktivieren Sie das Plugin über ein Flag für die Erweiterungseigenschaft

Ein Extensions Property Flag verwenden, können Sie die Performance - Monitoring - Plugin für eine bestimmte Build - Variante bei der Kompilierung deaktivieren.

  1. In Ihrer Root-Ebene (Projektebene) build.gradle Datei, stellen Sie sicher , wird Ihr Android Gradle Plugin Abhängigkeit als v3.4.0 oder höher festgelegt.

    Bei früheren Versionen des Android Gradle-Plug-ins können Sie das Leistungsüberwachungs-Plug-in für eine bestimmte Build-Variante immer noch deaktivieren, aber der Build-Zeitbeitrag für diese Variante wird nicht vollständig eliminiert.

  2. Fügen Sie das folgende Flag auf Ihr Modul (app-Ebene) build.gradle Datei, dann setzen Sie sich auf false Die Performanz - Monitoring - Plugin zu deaktivieren.

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

Deaktivieren Sie das Plugin über ein Project Property Flag

Durch die Verwendung von Flagge eines Projekts Eigentum, können Sie die Performance - Monitoring - Plugin deaktivieren für alle Build bei der Kompilierung Varianten.

Fügen Sie die folgende Flagge auf Ihre gradle.properties Datei, dann setzen Sie ihn auf false Die Performanz - Monitoring - Plugin zu deaktivieren.

// ...

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

Deaktivieren Sie die Android-Bibliothek zur Leistungsüberwachung

Wenn Sie die Leistungsüberwachungsbibliothek zur Kompilierzeit deaktivieren, können Sie auswählen, ob Ihre App die Bibliothek zur Laufzeit aktivieren soll.

Deaktivieren Sie die Bibliothek zur Kompilierzeit, aber erlauben Sie Ihrer App, sie zur Laufzeit zu aktivieren

Fügen Sie die folgende <meta-data> Element zu Ihrer App AndroidManifest.xml Datei:

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

Deaktivieren Sie die Bibliothek zur Kompilierzeit, aber erlauben Sie Ihrer App nicht, sie zur Laufzeit zu aktivieren

Fügen Sie die folgende <meta-data> Element zu Ihrer App AndroidManifest.xml Datei:

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

Deaktivieren Sie Ihre App zur Laufzeit mit Remote Config

Mit Firebase Remote Config können Sie das Verhalten und das Erscheinungsbild Ihrer App ändern, sodass Sie die Leistungsüberwachung in bereitgestellten Instanzen Ihrer App ideal deaktivieren können.

Verwenden Sie den unten gezeigten Beispielcode, um die Datenerfassung der Leistungsüberwachung beim nächsten Start Ihrer Android-App zu deaktivieren. Weitere Informationen über Remote - Config in einer Android App finden Sie unter Verwenden Firebase Remote - Config auf Android .

  1. Stellen Sie sicher , dass Remote - Config in der ist dependencies Abschnitt des Moduls Gradle Datei ( in der Regel app/build.gradle ):

    implementation 'com.google.firebase:firebase-config:21.0.1'
    
  2. Einrichten der Fernbedienung Config und deaktivieren Leistungsüberwachung , wenn perf_disable eingestellt ist 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. Fügen Sie den folgenden Code zu MainActivity.java holen und aktivieren Sie den Remote Config - Werte:

    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. So deaktivieren Leistung in der Konsole Firebase Überwachung, erstellen Sie einen perf_disable Parameter in Ihrer App - Projekt, dann wird ihr Wert setzen true .

    Durch diese Änderung werden Aufrufe des Leistungsüberwachungs-SDK "no operation"-Aufrufe (NOOPs) vorgenommen, wodurch alle wesentlichen Auswirkungen auf die App-Leistung durch die Verwendung des Leistungsüberwachungs-SDK in Ihrer App vermieden werden.

    Wenn Sie den Wert von perf_disable einstellen false , Leistungsüberwachung bleibt aktiviert.