Lors du développement et des tests de l'application, il peut s'avérer utile de désactiver la surveillance des performances.
Par exemple, en désactivant la surveillance des performances pendant le processus de création de votre application , vous pouvez :
Désactivez certaines fonctionnalités de la surveillance des performances (telles que celles fournies par le plug-in Performance Monitoring Gradle ) dans vos versions de débogage, mais réactivez les fonctionnalités pour votre version de version.
Désactivez la surveillance des performances lors de la création de votre application, mais autorisez votre application à la réactiver au moment de l'exécution.
Désactivez la surveillance des performances lors de la création de votre application et n'autorisez pas votre application à la réactiver au moment de l'exécution.
Vous pouvez également créer votre application avec la surveillance des performances activée , mais utilisez Firebase Remote Config pour vous donner la possibilité de désactiver (et de réactiver) la surveillance des performances 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 la surveillance des performances.
Désactiver la surveillance des performances pendant le processus de création de votre application
Vous pouvez désactiver la surveillance des performances pendant votre processus de construction en désactivant le plug-in Gradle de surveillance des performances et/ou en désactivant la bibliothèque Android de surveillance des performances .
Pendant le développement et le débogage, la désactivation du plug-in est utile car l'instrumentation par le plug-in peut contribuer à augmenter le temps de construction. Cependant, vous pouvez envisager de garder la bibliothèque activée afin de pouvoir toujours afficher les données de performances des traces de démarrage d'application, d'application en avant-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 de surveillance des performances
Vous pouvez désactiver le plug-in Performance Monitoring en ajoutant un indicateur instrumentationEnabled
à l'aide des options suivantes :
Propriété d'extension - désactive le plug-in pour une variante de construction spécifique au moment de la compilation
Propriété du projet - désactive le plug-in pour toutes les variantes de construction au moment de la compilation
Désactiver le plugin via un indicateur de propriété d'extension
En utilisant un indicateur de propriété d'extensions , vous pouvez désactiver le plug-in de surveillance des performances pour une variante de construction spécifique au moment de la compilation.
Dans votre fichier
build.gradle
au niveau de la racine (au niveau du projet), assurez-vous que votre dépendance Android Gradle Plugin est spécifiée en tant que v3.4.0 ou version ultérieure.Pour les versions antérieures du plug-in Android Gradle, vous pouvez toujours désactiver le plug-in de surveillance des performances pour une variante de construction spécifique, mais la contribution au temps de construction pour cette variante ne sera pas complètement éliminée.
Ajoutez l'indicateur suivant au fichier
build.gradle
de votre module (au niveau de l'application), puis définissez-le surfalse
pour désactiver le plug-in de surveillance des performances.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 plugin via un indicateur de propriété de projet
En utilisant un indicateur de propriété de projet , vous pouvez désactiver le plug-in de surveillance des performances pour toutes les variantes de construction au moment de la compilation.
Ajoutez l'indicateur suivant à votre fichier gradle.properties
, puis définissez-le sur false
pour désactiver le plug-in de surveillance des performances.
// ... // 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 de surveillance des performances
Si vous désactivez la bibliothèque de surveillance des performances au moment de la compilation, vous pouvez choisir d'autoriser ou non votre application à activer la bibliothèque au moment de l'exécution.
Désactivez la bibliothèque au moment de la compilation, mais autorisez 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ésactivez votre application au moment de l'exécution à l'aide de la configuration à distance
Firebase Remote Config vous permet de modifier le comportement et l'apparence de votre application. Il constitue donc un moyen idéal de vous permettre de désactiver la surveillance des performances dans les instances déployées de votre application.
Pour désactiver la collecte de données de surveillance des performances au prochain démarrage de votre application Android, utilisez l'exemple de code ci-dessous. Pour plus d'informations 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
dependencies
du fichier Gradle de votre module (généralementapp/build.gradle
):implementation 'com.google.firebase:firebase-config:21.4.0'
Configurez Remote Config et désactivez Performance Monitoring si
perf_disable
est défini surtrue
: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 } } });
Ajoutez le code suivant à
MainActivity.java
pour récupérer et activer les valeurs de Remote Config :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 } } });
Pour désactiver la surveillance des performances 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 effectuera des appels vers les appels "aucune opération" du SDK de surveillance des performances (NOOP), éliminant ainsi tout effet significatif sur les performances de l'application résultant de l'utilisation du SDK de surveillance des performances dans votre application.
Si vous définissez la valeur de perf_disable sur
false
, la surveillance des performances reste activée.