Deaktivieren Sie die Firebase-Leistungsüberwachung

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

Wenn Sie beispielsweise die Leistungsüberwachung während Ihres App-Erstellungsprozesses deaktivieren , können Sie:

  • Deaktivieren Sie bestimmte Funktionen der Leistungsüberwachung (z. B. die vom Performance Monitoring Gradle-Plugin bereitgestellten) in Ihren Debug-Builds, aktivieren Sie die Funktionen jedoch für Ihren Release-Build erneut.

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

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

Sie können Ihre App auch mit aktivierter Leistungsüberwachung erstellen, verwenden Sie jedoch Firebase Remote Config, um die Leistungsüberwachung in Ihrer Produktions-App flexibel zu deaktivieren (und wieder zu aktivieren). Mit dieser Option können Sie Ihre App sogar so konfigurieren, dass Benutzer die Verwendung der Leistungsüberwachung aktivieren oder deaktivieren können.

Deaktivieren Sie die Leistungsüberwachung während Ihres App-Erstellungsprozesses

Sie können die Leistungsüberwachung während Ihres Build-Prozesses deaktivieren, indem Sie das Performance Monitoring Gradle-Plugin und/oder die Performance Monitoring Android-Bibliothek deaktivieren .

Während der Entwicklung und beim Debuggen ist das Deaktivieren des Plugins nützlich, da die Instrumentierung durch das Plugin zu einer längeren Buildzeit beitragen kann. Sie können jedoch erwägen, die Bibliothek aktiviert zu lassen, damit Sie weiterhin Leistungsdaten vom App-Start, App-im-Vordergrund- und App-im-Hintergrund-Traces sowie alle benutzerdefinierten Code-Traces in Ihrer App anzeigen können.

Deaktivieren Sie das Gradle-Plugin zur Leistungsüberwachung

Sie können das Performance Monitoring-Plugin deaktivieren, indem Sie mit den folgenden Optionen ein instrumentationEnabled -Flag hinzufügen:

Deaktivieren Sie das Plugin über ein Extension-Property-Flag

Durch die Verwendung eines Extensions-Eigenschaftsflags können Sie das Leistungsüberwachungs-Plugin für eine bestimmte Build-Variante zur Kompilierungszeit deaktivieren.

  1. Stellen Sie in Ihrer Gradle-Datei auf Stammebene (Projektebene) ( <project>/build.gradle.kts oder <project>/build.gradle ) sicher, dass Ihre Android Gradle Plugin-Abhängigkeit als v3.4.0 oder höher angegeben ist.

    Für frühere Versionen des Android Gradle-Plugins können Sie das Leistungsüberwachungs-Plugin weiterhin für eine bestimmte Build-Variante deaktivieren, der Beitrag zur Build-Zeit für diese Variante wird jedoch nicht vollständig eliminiert.

  2. Fügen Sie das folgende Flag zu Ihrer Modul-Gradle-Datei (auf App-Ebene) hinzu (normalerweise <project>/<app-module>/build.gradle.kts oder <project>/<app-module>/build.gradle ) und legen Sie es dann fest auf false setzen, um das Performance Monitoring-Plugin zu deaktivieren.

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

Deaktivieren Sie das Plugin über ein Projekteigenschaften-Flag

Durch die Verwendung eines Projekteigenschaften- Flags können Sie das Leistungsüberwachungs-Plugin für alle Build-Varianten zur Kompilierungszeit deaktivieren.

Fügen Sie Ihrer gradle.properties Datei das folgende Flag hinzu und setzen Sie es dann auf false , um das Performance 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 Kompilierungszeit deaktivieren, können Sie auswählen, ob Ihre App die Bibliothek zur Laufzeit aktivieren darf.

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

Fügen Sie der AndroidManifest.xml Datei Ihrer App das folgende <meta-data> -Element hinzu:

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

Deaktivieren Sie die Bibliothek zur Kompilierungszeit, erlauben Sie Ihrer App jedoch nicht, sie zur Laufzeit zu aktivieren

Fügen Sie der AndroidManifest.xml Datei Ihrer App das folgende <meta-data> -Element hinzu:

  <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 Änderungen am Verhalten und Erscheinungsbild Ihrer App vornehmen. Damit ist es eine ideale Möglichkeit, die Leistungsüberwachung in bereitgestellten Instanzen Ihrer App zu deaktivieren.

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

  1. Stellen Sie sicher, dass sich Remote Config im Abschnitt dependencies “ Ihrer Modul-Gradle-Datei (auf App-Ebene) befindet (normalerweise <project>/<app-module>/build.gradle.kts oder <project>/<app-module>/build.gradle ):

    Kotlin+KTX

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

    Java

      implementation("com.google.firebase:firebase-config:21.6.1")
    
  2. Richten Sie Remote Config ein und deaktivieren Sie die Leistungsüberwachung, wenn perf_disable auf true gesetzt ist:

    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. Fügen Sie MainActivity.java den folgenden Code hinzu, um Remote-Konfigurationswerte abzurufen und zu aktivieren:

    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. Um die Leistungsüberwachung in der Firebase-Konsole zu deaktivieren, erstellen Sie einen perf_disable- Parameter im Projekt Ihrer App und legen Sie dann seinen Wert auf true fest.

    Durch diese Änderung werden Aufrufe des Performance Monitoring SDK zu „no operation“-Aufrufen (NOOPs) führen, wodurch jegliche signifikanten Auswirkungen auf die App-Leistung durch die Verwendung des Performance Monitoring SDK in Ihrer App beseitigt werden.

    Wenn Sie den Wert von perf_disable auf false setzen, bleibt die Leistungsüberwachung aktiviert.