Während der Entwicklung und beim Testen Ihrer App kann es nützlich sein, Performance Monitoring zu deaktivieren.
Wenn Sie beispielsweise Performance Monitoring während des Build-Prozesses Ihrer App deaktivieren, können Sie Folgendes tun:
Deaktivieren Sie bestimmte Funktionen von Performance Monitoring (z. B. die vom Performance Monitoring-Gradle-Plug-in bereitgestellten Funktionen) in Ihren Debug-Builds, aktivieren Sie sie aber für Ihren Release-Build wieder.
Deaktivieren Sie Performance Monitoring beim Erstellen Ihrer Anwendung, lassen Sie aber zu, dass Ihre Anwendung es zur Laufzeit wieder aktiviert.
Deaktivieren Sie Performance Monitoring beim Erstellen Ihrer App und lassen Sie nicht zu, dass Ihre App die Funktion zur Laufzeit wieder aktiviert.
Sie können Ihre App auch mit aktiviertem Performance Monitoring erstellen, aber Firebase Remote Config verwenden, um Performance Monitoring in Ihrer Produktions-App flexibel zu deaktivieren (und wieder zu aktivieren). Mit dieser Option können Sie Ihre App sogar so konfigurieren, dass Nutzer die Verwendung von Performance Monitoring aktivieren oder deaktivieren können.
Performance Monitoring während des Build-Prozesses der App deaktivieren
Sie können Performance Monitoring während des Build-Prozesses deaktivieren, indem Sie das Performance Monitoring-Gradle-Plug-in und/oder die Performance Monitoring-Android-Bibliothek deaktivieren.
Während der Entwicklung und des Debuggings ist es nützlich, das Plug-in zu deaktivieren, da die Instrumentierung durch das Plug-in zu einer längeren Build-Zeit beitragen kann. Sie können die Bibliothek jedoch aktiviert lassen, damit Sie weiterhin Leistungsdaten aus Traces für App-Start, App im Vordergrund und App im Hintergrund sowie alle benutzerdefinierten Code-Traces in Ihrer App sehen können.
Performance Monitoring-Gradle-Plug-in deaktivieren
Sie können das Plug-in Performance Monitoring deaktivieren, indem Sie mit den folgenden Optionen ein instrumentationEnabled-Flag hinzufügen:
Erweiterungsattribut: Deaktiviert das Plug-in für eine bestimmte Build-Variante zur Kompilierzeit.
Projekteigenschaft: Deaktiviert das Plug-in für alle Build-Varianten zur Kompilierzeit.
Plug-in über ein Erweiterungsattribut-Flag deaktivieren
Mit dem Flag Extensions Property können Sie das Performance Monitoring-Plug-in für eine bestimmte Build-Variante zur Kompilierzeit deaktivieren.
Prüfen Sie in der Gradle-Datei auf Stammebene (Projektebene) (
<project>/build.gradle.ktsoder<project>/build.gradle), ob die Abhängigkeit des Android Gradle-Plug-ins als Version 3.4.0 oder höher angegeben ist.Bei früheren Versionen des Android Gradle-Plug-ins können Sie das Performance Monitoring-Plug-in weiterhin für eine bestimmte Build-Variante deaktivieren. Der Beitrag zur Build-Zeit für diese Variante wird jedoch nicht vollständig eliminiert.
Fügen Sie der Gradle-Datei Ihres Moduls (auf App-Ebene) (normalerweise
<project>/<app-module>/build.gradle.ktsoder<project>/<app-module>/build.gradle) das folgende Flag hinzu und setzen Sie es auffalse, um das Performance Monitoring-Plug-in 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 } } } }
Plug-in über ein Projektattribut-Flag deaktivieren
Mit einem Project Property-Flag können Sie das Performance Monitoring-Plug-in für alle Build-Varianten zur Kompilierzeit deaktivieren.
Fügen Sie der Datei gradle.properties das folgende Flag hinzu und setzen Sie es auf false, um das Plug-in Performance Monitoring 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
Android-Bibliothek Performance Monitoring deaktivieren
Wenn Sie die Performance Monitoring-Bibliothek zur Kompilierzeit deaktivieren, können Sie festlegen, ob Ihre App die Bibliothek zur Laufzeit aktivieren darf.
Deaktivieren Sie die Bibliothek zur Kompilierzeit, lassen Sie aber zu, dass Ihre App sie zur Laufzeit aktiviert.
Fügen Sie der Datei AndroidManifest.xml 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 beim Kompilieren, aber lassen Sie nicht zu, dass Ihre App sie zur Laufzeit aktiviert.
Fügen Sie der Datei AndroidManifest.xml Ihrer App das folgende <meta-data>-Element hinzu:
<application>
<meta-data
android:name="firebase_performance_collection_deactivated"
android:value="true" />
</application>Anwendung zur Laufzeit mit Remote Config deaktivieren
Mit Firebase Remote Config können Sie das Verhalten und die Darstellung Ihrer App ändern. So können Sie Performance Monitoring in bereitgestellten Instanzen Ihrer App deaktivieren.
Wenn Sie die Performance Monitoring-Datenerhebung beim nächsten Start Ihrer Android-App deaktivieren möchten, verwenden Sie den unten gezeigten Beispielcode. Weitere Informationen zur Verwendung von Remote Config in einer Android-App finden Sie unter Firebase Remote Config auf Android-Geräten verwenden.
Achten Sie darauf, dass Remote Config im Abschnitt
dependenciesder Gradle-Datei Ihres Moduls (auf App-Ebene) enthalten ist (normalerweise<project>/<app-module>/build.gradle.ktsoder<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")Richten Sie Remote Config ein und deaktivieren Sie Performance Monitoring, wenn
perf_disableauftruegesetzt ist: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 } } });
Fügen Sie den folgenden Code in
MainActivity.javaein, um Remote Config-Werte abzurufen und zu aktivieren: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 } } });
Wenn Sie Performance Monitoring in der Firebase-Konsole deaktivieren möchten, erstellen Sie im Projekt Ihrer App den Parameter perf_disable und legen Sie seinen Wert auf
truefest.Durch diese Änderung werden Aufrufe des Performance Monitoring SDK zu „No Operation“-Aufrufen (NOOPs), sodass die Verwendung des Performance Monitoring SDK in Ihrer App keine nennenswerten Auswirkungen auf die App-Leistung hat.
Wenn Sie den Wert von perf_disable auf
falsesetzen, bleibt Performance Monitoring aktiviert.