Lors du développement et des tests de l'application, il peut être utile de désactiver Performance Monitoring.
Par exemple, en désactivant Performance Monitoring pendant le processus de compilation de votre application, vous pouvez :
Désactivez certaines fonctionnalités de Performance Monitoring (comme celles fournies par le plug-in Gradle Performance Monitoring) dans vos versions de débogage, mais réactivez-les pour votre build de release.
Désactivez Performance Monitoring lors de la compilation de votre application, mais autorisez votre application à le réactiver au moment de l'exécution.
Désactivez Performance Monitoring lors de la compilation de votre application et ne l'autorisez pas à le réactiver au moment de l'exécution.
Vous pouvez également créer votre application avec Performance Monitoring activé, mais utiliser Firebase Remote Config pour pouvoir désactiver (et réactiver) Performance Monitoring dans votre application de production. Avec cette option, vous pouvez même configurer votre application pour permettre aux utilisateurs d'activer ou de désactiver l'utilisation de Performance Monitoring.
Désactivez Performance Monitoring pendant le processus de compilation de votre application.
Vous pouvez désactiver Performance Monitoring pendant le processus de compilation en désactivant le plug-in Gradle Performance Monitoring et/ou en désactivant la bibliothèque Android Performance Monitoring.
Lors du développement et du débogage, il est utile de désactiver le plug-in, car l'instrumentation par le plug-in peut contribuer à augmenter le temps de compilation. Toutefois, vous pouvez envisager de laisser la bibliothèque activée afin de pouvoir toujours afficher les données sur les performances des traces de démarrage de l'application, d'application au premier plan et d'application en arrière-plan, ainsi que toutes les traces de code personnalisé dans votre application.
Désactiver le plug-in Gradle Performance Monitoring
Vous pouvez désactiver le plug-in Performance Monitoring en ajoutant une option instrumentationEnabled à l'aide des options suivantes :
Extension Property : désactive le plug-in pour une variante de compilation spécifique au moment de la compilation.
Propriété du projet : désactive le plug-in pour toutes les variantes de compilation au moment de la compilation.
Désactiver le plug-in via un flag de propriété d'extension
En utilisant un flag Extensions Property, vous pouvez désactiver le plug-in Performance Monitoring pour une variante de compilation spécifique au moment de la compilation.
Dans votre fichier Gradle au niveau racine (au niveau du projet) (
<project>/build.gradle.ktsou<project>/build.gradle), assurez-vous que la dépendance du plug-in Android Gradle est spécifiée en tant que version 3.4.0 ou ultérieure.Pour les versions antérieures du plug-in Android Gradle, vous pouvez toujours désactiver le plug-in Performance Monitoring pour une variante de compilation spécifique, mais la contribution au temps de compilation de cette variante ne sera pas complètement éliminée.
Ajoutez l'indicateur suivant au fichier Gradle de votre module (au niveau de l'application) (généralement
<project>/<app-module>/build.gradle.ktsou<project>/<app-module>/build.gradle), puis définissez-le surfalsepour désactiver le plug-in 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 } } } }
Désactiver le plug-in via un flag de propriété de projet
En utilisant un flag Project Property, vous pouvez désactiver le plug-in Performance Monitoring pour toutes les variantes de compilation au moment de la compilation.
Ajoutez l'option suivante à votre fichier gradle.properties, puis définissez-la sur false pour désactiver le plug-in Performance Monitoring.
// ... // 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
Désactiver la bibliothèque Android Performance Monitoring
Si vous désactivez la bibliothèque Performance Monitoring au moment de la compilation, vous pouvez choisir d'autoriser ou non votre application à l'activer au moment de l'exécution.
Désactiver la bibliothèque au moment de la compilation, mais autoriser votre application à l'activer au moment de l'exécution
Ajoutez l'élément <meta-data> suivant au fichier AndroidManifest.xml de votre application :
<application>
<meta-data
android:name="firebase_performance_collection_enabled"
android:value="false" />
</application>Désactivez la bibliothèque au moment de la compilation, mais n'autorisez pas votre application à l'activer au moment de l'exécution.
Ajoutez l'élément <meta-data> suivant au fichier AndroidManifest.xml de votre application :
<application>
<meta-data
android:name="firebase_performance_collection_deactivated"
android:value="true" />
</application>Désactiver votre application au moment de l'exécution à l'aide de Remote Config
Firebase Remote Config vous permet de modifier le comportement et l'apparence de votre application. C'est donc un moyen idéal de désactiver Performance Monitoring dans les instances déployées de votre application.
Pour désactiver la collecte de données Performance Monitoring au prochain démarrage de votre application Android, utilisez l'exemple de code ci-dessous. Pour en savoir plus sur l'utilisation de Remote Config dans une application Android, consultez Utiliser Firebase Remote Config sur Android.
Assurez-vous que Remote Config se trouve dans la section
dependenciesdu fichier Gradle de votre module (au niveau de l'application) (généralement<project>/<app-module>/build.gradle.ktsou<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")Configurez Remote Config et désactivez Performance Monitoring si
perf_disableest défini surtrue: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 } } });
Ajoutez le code suivant à
MainActivity.javapour récupérer et activer les valeurs Remote Config :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 } } });
Pour désactiver Performance Monitoring dans la console Firebase, créez un paramètre perf_disable dans le projet de votre application, puis définissez sa valeur sur
true.Cette modification transformera les appels au SDK Performance Monitoring en appels "sans opération" (NOOP), ce qui éliminera tout impact significatif sur les performances de l'application lié à l'utilisation du SDK Performance Monitoring dans votre application.
Si vous définissez la valeur de perf_disable sur
false, Performance Monitoring reste activé.