Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

Désactiver la surveillance des performances de Firebase

Pendant le développement et les 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 de 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 lors 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 lors 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 permettre 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 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 génération en désactivant le plug - in Performance Monitoring Gradle et/ou en désactivant la bibliothèque Android Performance Monitoring .

Pendant le développement et le débogage, la désactivation du plugin est utile car l' instrumentation par le plugin peut contribuer à augmenter le temps de construction. Vous pouvez cependant envisager de laisser la bibliothèque activée afin de pouvoir toujours afficher les données de performances des traces de démarrage de l' application, de l'application en premier plan et de l'application en arrière-plan , ainsi que des traces de code personnalisées 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 plugin pour une variante de construction spécifique au moment de la compilation

  • Propriété du projet — désactive le plugin pour toutes les variantes de build 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 Performance Monitoring pour une variante de build spécifique au moment de la compilation.

  1. Dans votre fichier build.gradle niveau racine (au niveau du projet), assurez-vous que votre dépendance du plug-in Android Gradle est spécifiée en tant que v3.4.0 ou version ultérieure.

    Pour les versions antérieures du plugin Android Gradle, vous pouvez toujours désactiver le plugin Performance Monitoring pour une variante de build spécifique, mais la contribution au temps de build pour cette variante ne sera pas complètement éliminée.

  2. Ajoutez l'indicateur suivant à votre fichier build.gradle module (au niveau de l'application), puis définissez-le sur false pour désactiver le plug-in Performance Monitoring.

    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 Performance Monitoring pour toutes les variantes de build 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 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 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> AndroidManifest.xml fichier AndroidManifest.xml 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> AndroidManifest.xml fichier AndroidManifest.xml 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 Remote Config

Firebase Remote Config vous permet d'apporter des modifications au comportement et à l'apparence de votre application. Il constitue donc un moyen idéal pour 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 .

  1. Assurez-vous que Remote Config se trouve dans la section des dependencies de votre fichier Gradle de module (généralement app/build.gradle ):

    implementation 'com.google.firebase:firebase-config:21.0.0'
    
  2. Configurez Remote Config et désactivez la surveillance des performances si perf_disable est défini sur true :

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

    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
                }
            }
  3. Ajoutez le code suivant à MainActivity.java pour récupérer et activer les valeurs de configuration à distance :

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

    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
                }
            }
  4. 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 au kit de développement logiciel de surveillance des performances (NOOP), éliminant ainsi tout effet significatif sur les performances de l'application lié à l'utilisation du kit de développement logiciel 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.