Desative o monitoramento de desempenho do Firebase

Durante o desenvolvimento e teste do aplicativo, pode ser útil desabilitar o Monitoramento de desempenho.

Por exemplo, ao desativar o Monitoramento de desempenho durante o processo de criação do seu aplicativo , você pode:

  • Desative certas funcionalidades do Monitoramento de Desempenho (como aquelas fornecidas pelo plug-in Gradle do Monitoramento de Desempenho ) em suas compilações de depuração, mas reative as funcionalidades para sua compilação de lançamento.

  • Desative o Monitoramento de desempenho ao criar seu aplicativo, mas permita que seu aplicativo o reative em tempo de execução.

  • Desative o Monitoramento de desempenho ao criar seu aplicativo e não permita que seu aplicativo o reative em tempo de execução.

Você também pode criar seu aplicativo com o Monitoramento de desempenho ativado , mas use a Configuração remota do Firebase para ter flexibilidade para desativar (e reativar) o Monitoramento de desempenho em seu aplicativo de produção. Com essa opção, você pode até configurar seu aplicativo para permitir que os usuários optem ou não pelo monitoramento de desempenho.

Desative o monitoramento de desempenho durante o processo de criação do seu aplicativo

Você pode desativar o Monitoramento de desempenho durante o processo de construção, desativando o plug-in Gradle do Monitoramento de desempenho e/ou desativando a biblioteca Android do Monitoramento de desempenho .

Durante o desenvolvimento e a depuração, desabilitar o plug-in é útil porque a instrumentação do plug-in pode contribuir para aumentar o tempo de construção. No entanto, você pode considerar manter a biblioteca habilitada para que ainda possa visualizar os dados de desempenho do início do aplicativo, dos rastreamentos do aplicativo em primeiro plano e do aplicativo em segundo plano, bem como quaisquer rastreamentos de código personalizados em seu aplicativo.

Desative o plug-in Gradle de monitoramento de desempenho

Você pode desabilitar o plugin Performance Monitoring adicionando um sinalizador instrumentationEnabled usando as seguintes opções:

Desative o plug-in por meio de um sinalizador de propriedade de extensão

Usando um sinalizador de propriedade de extensões , você pode desabilitar o plug-in de monitoramento de desempenho para uma variante de construção específica em tempo de compilação.

  1. No arquivo Gradle de nível raiz (nível de projeto) ( <project>/build.gradle.kts ou <project>/build.gradle ), certifique-se de que a dependência do plug-in do Android Gradle esteja especificada como v3.4.0 ou posterior.

    Para versões anteriores do plug-in do Android para Gradle, você ainda pode desativar o plug-in Monitoramento de desempenho para uma variante de build específica, mas a contribuição do tempo de build para essa variante não será completamente eliminada.

  2. Adicione o seguinte sinalizador ao arquivo Gradle do módulo (nível do aplicativo) (geralmente <project>/<app-module>/build.gradle.kts ou <project>/<app-module>/build.gradle ) e defina-o para false para desabilitar o plug-in de monitoramento de desempenho.

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

Desative o plugin através de um sinalizador de propriedade do projeto

Usando um sinalizador de propriedade do projeto , você pode desabilitar o plug-in Monitoramento de desempenho para todas as variantes de construção em tempo de compilação.

Adicione o seguinte sinalizador ao seu arquivo gradle.properties e defina-o como false para desativar o plug-in Monitoramento de desempenho.

// ...

// 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

Desative a biblioteca Android do Monitoramento de desempenho

Se você desabilitar a biblioteca do Performance Monitoring em tempo de compilação, poderá escolher se deseja permitir que seu aplicativo ative a biblioteca em tempo de execução.

Desative a biblioteca em tempo de compilação, mas permita que seu aplicativo a habilite em tempo de execução

Adicione o seguinte elemento <meta-data> ao arquivo AndroidManifest.xml do seu aplicativo:

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

Desative a biblioteca em tempo de compilação, mas não permita que seu aplicativo a habilite em tempo de execução

Adicione o seguinte elemento <meta-data> ao arquivo AndroidManifest.xml do seu aplicativo:

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

Desative seu app em tempo de execução usando o Configuração remota

A Configuração remota do Firebase permite fazer alterações no comportamento e na aparência do seu aplicativo, portanto, é uma maneira ideal de desativar o monitoramento de desempenho em instâncias implantadas do seu aplicativo.

Para desativar a coleta de dados do Monitoramento de desempenho na próxima vez que seu aplicativo Android for iniciado, use o código de exemplo mostrado abaixo. Para obter mais informações sobre como usar a Configuração remota em um aplicativo Android, consulte Usar a Configuração remota do Firebase no Android .

  1. Verifique se o Configuração remota está na seção dependencies do arquivo Gradle do módulo (nível do aplicativo) (geralmente <project>/<app-module>/build.gradle.kts ou <project>/<app-module>/build.gradle ):

    Kotlin+KTX

      implementation("com.google.firebase:firebase-config-ktx:21.6.3")
    

    Java

      implementation("com.google.firebase:firebase-config:21.6.3")
    
  2. Configure o Configuração remota e desative o Monitoramento de desempenho se perf_disable estiver definido como 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. Adicione o seguinte código a MainActivity.java para buscar e ativar os valores do Configuração remota:

    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. Para desativar o Monitoramento de desempenho no console do Firebase, crie um parâmetro perf_disable no projeto do seu aplicativo e defina seu valor como true .

    Essa alteração fará chamadas para chamadas "sem operação" (NOOPs) do SDK do Monitoramento de Desempenho, eliminando quaisquer efeitos significativos no desempenho do aplicativo decorrentes do uso do SDK do Monitoramento de Desempenho em seu aplicativo.

    Se você configurar o valor de perf_disable como false , o Monitoramento de desempenho permanecerá ativado.