Während der App-Entwicklung und -Tests kann es hilfreich sein, die Leistungsüberwachung zu deaktivieren.
Wenn Sie beispielsweise die Leistungsüberwachung während des App-Erstellungsprozesses deaktivieren , können Sie:
Deaktivieren Sie bestimmte Funktionen der Leistungsüberwachung (z. B. die vom Performance Monitoring Gradle -Plug-in bereitgestellten) in Ihren Debug-Builds, aber aktivieren Sie die Funktionen 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 erlauben Sie Ihrer App nicht, sie zur Laufzeit erneut zu aktivieren.
Sie können Ihre App auch mit aktivierter Leistungsüberwachung erstellen , aber verwenden Sie 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 sich für die Verwendung der Leistungsüberwachung an- oder abmelden 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 Gradle-Plugin zur Leistungsüberwachung und/oder die Android-Bibliothek zur Leistungsüberwachung deaktivieren .
Während der Entwicklung und beim Debuggen ist das Deaktivieren des Plugins hilfreich, da die Instrumentierung durch das Plugin zu einer längeren Buildzeit beitragen kann. Sie können jedoch in Betracht ziehen, 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 Leistungsüberwachungs-Plugin deaktivieren, indem Sie mit den folgenden Optionen ein instrumentationEnabled
-Flag hinzufügen:
Erweiterungseigenschaft – deaktiviert das Plugin für eine bestimmte Build-Variante zur Kompilierzeit
Projekteigenschaft – deaktiviert das Plugin für alle Build-Varianten zur Kompilierzeit
Deaktivieren Sie das Plugin über ein Extension Property Flag
Durch die Verwendung eines Erweiterungseigenschafts -Flags können Sie das Leistungsüberwachungs-Plug-In für eine bestimmte Build-Variante zur Kompilierzeit deaktivieren.
Stellen Sie in Ihrer
build.gradle
-Datei auf Stammebene (Projektebene) sicher, dass Ihre Android-Gradle-Plug-in-Abhängigkeit als v3.4.0 oder höher angegeben ist.Bei früheren Versionen des Android-Gradle-Plug-ins können Sie das Leistungsüberwachungs-Plug-in weiterhin für eine bestimmte Build-Variante deaktivieren, aber der Beitrag zur Build-Zeit für diese Variante wird nicht vollständig eliminiert.
Fügen Sie das folgende Flag zu Ihrer
build.gradle
-Datei Ihres Moduls (auf App-Ebene) hinzu und setzen Sie es dann auf „false
“, um das Leistungsüberwachungs-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 Projekteigenschaften-Flag
Durch die Verwendung eines Projekteigenschaften- Flags können Sie das Leistungsüberwachungs-Plug-In für alle Build-Varianten zur Kompilierzeit deaktivieren.
Fügen Sie das folgende Flag zu Ihrer Datei gradle.properties
und setzen Sie es dann auf false
, um das Leistungsüberwachungs-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 Leistungsüberwachungs-Android-Bibliothek
Wenn Sie die Leistungsüberwachungsbibliothek zur Kompilierzeit deaktivieren, können Sie auswählen, ob Ihre App die Bibliothek zur Laufzeit aktivieren darf.
Deaktivieren Sie die Bibliothek zur Kompilierzeit, 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 Kompilierzeit, aber erlauben Sie Ihrer App 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, sodass Sie die Leistungsüberwachung in bereitgestellten Instanzen Ihrer App ideal deaktivieren können.
Verwenden Sie den unten gezeigten Beispielcode, um die Erfassung von Leistungsüberwachungsdaten beim nächsten Start Ihrer Android-App zu deaktivieren. Weitere Informationen zur Verwendung von Remote Config in einer Android-App finden Sie unter Verwenden von Firebase Remote Config auf Android .
Stellen Sie sicher, dass sich Remote Config im Abschnitt „
dependencies
“ Ihrer Modul-Gradle-Datei befindet (normalerweiseapp/build.gradle
):implementation 'com.google.firebase:firebase-config:21.2.1'
Richten Sie Remote Config ein und deaktivieren Sie die Leistungsüberwachung, wenn
perf_disable
auftrue
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 } } });
Fügen Sie den folgenden Code zu
MainActivity.java
, um Remote Config-Werte 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 } } });
Um die Leistungsüberwachung in der Firebase-Konsole zu deaktivieren, erstellen Sie einen perf_disable -Parameter im Projekt Ihrer App und setzen Sie dann seinen Wert auf
true
.Durch diese Änderung werden Aufrufe an das Leistungsüberwachungs-SDK „no operation“-Aufrufe (NOOPs) vorgenommen, wodurch alle erheblichen Auswirkungen auf die App-Leistung durch die Verwendung des Leistungsüberwachungs-SDK in Ihrer App beseitigt werden.
Wenn Sie den Wert von perf_disable auf
false
setzen, bleibt die Leistungsüberwachung aktiviert.