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 lanzamiento
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 la 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 para tener flexibilidad e inhabilitar (y volver a habilitar) Performance Monitoring en la 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, también recomendamos que consideres mantener habilitada la biblioteca para continuar viendo los datos de rendimiento de los seguimientos del inicio de la app, la app en primer plano y en segundo plano, así como cualquier seguimiento de código personalizado de la 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.
En el archivo de Gradle (
<project>/build.gradle.kts
o<project>/build.gradle
) de nivel de raíz (a nivel de proyecto), asegúrate de que la dependencia del complemento de Android para Gradle se especifique como v3.4.0. o posterior.En el caso de las versiones anteriores del complemento de Android para Gradle, 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.
Agrega la siguiente marca al archivo de Gradle (generalmente
<project>/<app-module>/build.gradle.kts
o<project>/<app-module>/build.gradle
) del módulo (a nivel de la app) y, luego, configúrala comofalse
para inhabilitar el complemento de 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 } } } }
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 como false
para inhabilitar el complemento de 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
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 la 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 para inhabilitar la recopilación de datos de Performance Monitoring la próxima vez que se inicie la app para Android. Para obtener más información sobre el uso de Remote Config en una app para Android, consulta Comienza a usar Firebase Remote Config.
Asegúrate de que Remote Config esté en la sección
dependencies
del archivo de Gradle (generalmente<project>/<app-module>/build.gradle.kts
o<project>/<app-module>/build.gradle
) del módulo (a nivel de app):Kotlin+KTX
implementation("com.google.firebase:firebase-config-ktx:21.6.0")
Java
implementation("com.google.firebase:firebase-config:21.6.0")
Configura Remote Config y, luego, inhabilita Performance Monitoring si
perf_disable
está establecido comotrue
: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 } } });
Agrega el siguiente código a
MainActivity.java
para recuperar y activar los valores 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 } } });
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.