了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Désactiver la surveillance des performances de Firebase

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.

  1. 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.

  2. Ajoutez l'indicateur suivant au fichier build.gradle de votre module (au niveau de l'application), puis définissez-le sur false 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 .

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

    implementation 'com.google.firebase:firebase-config:21.4.0'
    
  2. Configurez Remote Config et désactivez Performance Monitoring si perf_disable est défini sur true :

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