Ir a la consola

Inhabilita Firebase Performance Monitoring

Puede que te resulte útil inhabilitar Performance Monitoring durante el desarrollo y las pruebas de la app.

Por ejemplo, si inhabilitas Performance Monitoring durante el proceso de compilación de la app, puedes hacer lo siguiente:

  • Inhabilitar ciertas funcionalidades de Performance Monitoring (como las que proporciona el complemento de Gradle de Performance Monitoring) en tus compilaciones de depuración, pero volver a habilitarlas para la compilación de actualización

  • Inhabilitar Performance Monitoring cuando compiles tu app, pero permitir que esta lo vuelva a habilitar en el tiempo de ejecución

  • Inhabilitar Performance Monitoring cuando compiles tu app y no permitir que esta lo vuelva a habilitar en el tiempo de ejecución

Además, puedes compilar tu app con Performance Monitoring habilitado, pero usar Firebase Remote Config a fin de tener flexibilidad para inhabilitar (y volver a habilitar) Performance Monitoring en tu app de producción. Con esta opción, incluso puedes configurar tu app para permitir que los usuarios acepten o rechacen usar Performance Monitoring.

Inhabilita Performance Monitoring durante el proceso de compilación de la app

Puedes inhabilitar Performance Monitoring durante el proceso de compilación. Para ello, inhabilita el complemento de Gradle o la biblioteca de Android de Performance Monitoring.

Inhabilitar el complemento durante el desarrollo y la depuración es útil porque la instrumentación que realiza el complemento puede hacer que aumente el tiempo de compilación. Sin embargo, es posible que consideres mantener habilitada la biblioteca para continuar viendo los datos de rendimiento de los seguimientos de duración automáticos y los seguimientos personalizados de tu app.

Inhabilita el complemento de Gradle de Performance Monitoring

Para inhabilitar el complemento de Performance Monitoring, agrega la marca instrumentationEnabled con las siguientes opciones:

  • Propiedad de la extensión: Inhabilita el complemento para una variante de compilación específica en el tiempo de compilación.

  • Propiedad del proyecto: Inhabilita el complemento para todas las variantes de compilación en el tiempo de compilación.

Inhabilita el complemento mediante una marca de propiedad de la extensión

Puedes inhabilitar el complemento de Performance Monitoring de una variante de compilación específica en el tiempo de compilación con una marca de propiedad de la extensión.

  1. En el archivo build.gradle de nivel de raíz (nivel de proyecto), asegúrate de que se especifique la dependencia del complemento de Gradle para Android con la versión 3.4.0 o posterior.

    A fin de ver las versiones anteriores del complemento de Gradle para Android, aún puedes inhabilitar el complemento de Performance Monitoring de una variante de compilación específica, pero la contribución al tiempo de compilación de esa variante no se eliminará por completo.

  2. Agrega la siguiente marca al archivo build.gradle de tu módulo (nivel de app) y, luego, configúrala en false para inhabilitar el complemento de Performance Monitoring.

    android {
      // ...
      buildTypes {
        debug {
          FirebasePerformance {
            // Set this flag to 'false' to disable @AddTrace annotation processing and
            // automatic HTTP/S network request monitoring
            // for a specific build variant at compile time.
            instrumentationEnabled false
          }
        }
      }
    }
    

Inhabilita el complemento mediante una marca de propiedad del proyecto

Puedes inhabilitar el complemento de Performance Monitoring de todas las variantes de compilación en el tiempo de compilación con una marca de propiedad del proyecto.

Agrega la siguiente marca al archivo gradle.properties y, luego, configúrala en false para inhabilitar el complemento de Performance Monitoring.

// ...

// Set this flag to 'false' to disable @AddTrace annotation processing and
// automatic HTTP/S network request monitoring
// for all build variants at compile time.
firebasePerformanceInstrumentationEnabled=false

Inhabilita la biblioteca de Android de Performance Monitoring

Si inhabilitas la biblioteca de Performance Monitoring en el tiempo de compilación, puedes elegir si quieres que tu app la habilite en el tiempo de ejecución.

Inhabilita la biblioteca en el tiempo de compilación, pero permite que tu app la habilite en el tiempo de ejecución

Agrega el siguiente elemento <meta-data> al archivo AndroidManifest.xml de tu app:

  <application>
    <meta-data
      android:name="firebase_performance_collection_enabled"
      android:value="false" />
  </application>

Inhabilita la biblioteca en el tiempo de compilación, pero no permitas que tu app la habilite en el tiempo de ejecución

Agrega el siguiente elemento <meta-data> al archivo AndroidManifest.xml de tu app:

  <application>
    <meta-data
      android:name="firebase_performance_collection_deactivated"
      android:value="true" />
  </application>

Inhabilita la app en el tiempo de ejecución con Remote Config

Firebase Remote Config te permite hacer cambios en el comportamiento y el aspecto de la app, lo que proporciona una manera ideal de inhabilitar Performance Monitoring en las instancias implementadas de tu app.

Usa el código de ejemplo que se muestra a continuación a fin de inhabilitar la recopilación de datos de Performance Monitoring la próxima vez que se inicie la app para Android. A fin de obtener más información sobre el uso de Remote Config en una app para Android, consulta Usa Firebase Remote Config en Android.

  1. Asegúrate de que Remote Config esté en la sección dependencies del archivo Gradle de tu módulo (por lo general, app/build.gradle):

    implementation 'com.google.firebase:firebase-config:18.0.0'
    
  2. Configura Remote Config y, luego, inhabilita Performance Monitoring si perf_disable está establecida como true:

    Java

    // Setup remote config
    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()
    //       .setDeveloperModeEnabled(BuildConfig.DEBUG)
    //       .build();
    // mFirebaseRemoteConfig.setConfigSettings(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.setDefaults(R.xml.remote_config_defaults);
    if (config.getBoolean("perf_disable")) {
        FirebasePerformance.getInstance().setPerformanceCollectionEnabled(false);
    } else {
        FirebasePerformance.getInstance().setPerformanceCollectionEnabled(true);
    }

    Kotlin

    // Setup remote config
    val 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()
    //       .setDeveloperModeEnabled(BuildConfig.DEBUG)
    //       .build();
    // mFirebaseRemoteConfig.setConfigSettings(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.setDefaults(R.xml.remote_config_defaults)
    FirebasePerformance.getInstance().isPerformanceCollectionEnabled = !config.getBoolean("perf_disable")
  3. Agrega el siguiente código a MainActivity.java para obtener y activar los valores de Remote Config:

    Java

    //Remote Config fetches and activates parameter values from the service
    final FirebaseRemoteConfig config = FirebaseRemoteConfig.getInstance();
    config.fetch(3600)
            .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                @Override
                public void onComplete(@NonNull Task<Void> task) {
                    if (task.isSuccessful()) {
                        config.activateFetched();
                    } else {
                        // ...
                    }
                }
            });

    Kotlin

    // Remote Config fetches and activates parameter values from the service
    val config = FirebaseRemoteConfig.getInstance()
    config.fetch(3600)
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    config.activateFetched()
                } else {
                    // ...
                }
            }
  4. Para inhabilitar Performance Monitoring en Firebase console, crea un parámetro perf_disable en el proyecto de tu app y, luego, configura su valor como true.

    Este cambio hará que las llamadas al SDK de Performance Monitoring sean “sin operación” (NOOP), lo que elimina todos los efectos importantes en el rendimiento de la app generados por el uso del SDK de Performance Monitoring en tu app.

    Si configuras el valor de perf_disable como false, Performance Monitoring seguirá habilitado.