Primeiros passos com o Monitoramento de desempenho para Android

Antes de começar

Adicione o Firebase ao projeto para Android, caso ainda não tenha feito isso.

No nível do projeto build.gradle file, inclua o repositório Maven do Google nas seções buildscript e allprojects.

Etapa 1: adicionar o SDK do Monitoramento de desempenho ao seu app

Com o SDK do Monitoramento de desempenho, é possível realizar o monitoramento de traces de duração automáticos e de qualquer outro trace personalizado no seu app.

  1. No arquivo Gradle do módulo (nível do app) (geralmente app/build.gradle):

    // ...
    
    dependencies {
      // ...
    
      // Add the dependency for the Performance Monitoring library
      implementation 'com.google.firebase:firebase-perf:19.0.7'
    }
    
  2. Recompile o app.

Etapa 2: adicionar o plug-in do Monitoramento de desempenho ao seu app

Com o plug-in do Gradle para o Monitoramento de desempenho, é possível realizar a instrumentação que fornece processamento de anotações @AddTrace e monitoramento automático de solicitações de rede HTTP/S.

Para adicionar o plug-in do Monitoramento de Desempenho ao seu app:

  1. No arquivo do Gradle do módulo (nível do app) (geralmente app/build.gradle), aplique o plug-in do Monitoramento de desempenho:

    apply plugin: 'com.android.application'
    apply plugin: 'com.google.gms.google-services'
    // Apply the Performance Monitoring plugin
    apply plugin: 'com.google.firebase.firebase-perf'
    
    android {
      // ...
    }
    
  2. No arquivo do Gradle no nível raiz (nível do projeto) (build.gradle), adicione as regras para incluir o plug-in do Monitoramento de desempenho.

    buildscript {
    
        repositories {
          // Check that you have the following line (if not, add it):
          google()  // Google's Maven repository
          // Add the Bintray repository
          jcenter()
        }
    
        dependencies {
          // ...
    
          // To benefit from the latest Performance Monitoring plugin features,
          // update your Android Gradle Plugin dependency to at least v3.4.0
          classpath 'com.android.tools.build:gradle:3.4.0'
    
          classpath 'com.google.gms:google-services:4.3.3'  // Google Services plugin
    
          // Add the dependency for the Performance Monitoring plugin
          classpath 'com.google.firebase:perf-plugin:1.3.1'  // Performance Monitoring plugin
        }
    }
    
  3. Recompile o app.

Etapa 3: gerar eventos de desempenho para a exibição inicial de dados

O Firebase pode detectar se você adicionou o SDK ao seu app quando ele recebe informações de eventos (como interações) do app. Se você ainda estiver desenvolvendo localmente, interaja com o app a fim de gerar eventos para a detecção do SDK, bem como coleta e processamento inicial de dados.

  1. Continue desenvolvendo seu app usando um emulador ou dispositivo de teste que atenda aos seguintes requisitos:

    • um emulador do Android com uma imagem recente e o Google Play Services 15.0.0 ou versões posteriores;

    • um dispositivo de teste com o Google Play Services 15.0.0 ou versões posteriores;

  2. Gere eventos alternando o app entre o plano de fundo e o primeiro plano várias vezes, interagindo com o app ao navegar pelas telas e/ou acionando solicitações de rede.

  3. Acesse a seção Desempenho do Console do Firebase para ver se a plataforma detectou o SDK.

    Se a mensagem "SDK detectado" não for exibida até duas horas após a adição do SDK ao seu app, veja as dicas de solução de problemas.

  4. O Monitoramento de desempenho processa dados de eventos de desempenho antes de exibi-los no painel Desempenho. Você verá seus dados iniciais em até 24 horas depois de ver a mensagem de detecção do SDK.

    Se você não vir uma exibição dos seus dados iniciais, veja as dicas de solução de problemas.

Etapa 4 (opcional): ver se há eventos de desempenho nas mensagens de registro

  1. Ative a geração de registros de depuração no Monitoramento de desempenho no tempo de compilação. Para isso, basta adicionar um elemento <meta-data> ao arquivo AndroidManifest.xml do seu app:

    <application>
        <meta-data
          android:name="firebase_performance_logcat_enabled"
          android:value="true" />
    </application>
    
  2. Verifique se há mensagens de erro nas mensagens de registro.

  3. O Monitoramento de desempenho marca as mensagens de registro com FirebasePerformance. Ao usar o filtro logcat, você pode ver especificamente a geração de registros do trace de duração e as solicitações de rede HTTP/S. Basta executar o seguinte comando:

    adb logcat -s FirebasePerformance
  4. Verifique os seguintes tipos de registro que indicam que o Monitoramento de desempenho está registrando eventos de desempenho:

    • Logging TraceMetric
    • Logging NetworkRequestMetric

Se o app não estiver registrando eventos de desempenho, veja as dicas de solução de problemas.

Etapa 5 (opcional): adicionar monitoramento personalizado para código específico

Crie traces personalizados para monitorar dados de desempenho associados a um código específico no app.

Os traces personalizados permitem avaliar quanto tempo leva para que seu app conclua uma tarefa específica ou um conjunto de tarefas, como carregar um conjunto de imagens ou consultar seu banco de dados. A métrica padrão de um trace personalizado é a duração, mas também é possível adicionar métricas personalizadas, como ocorrências em cache e avisos de memória.

No código, você define o início e o fim de um trace personalizado (e adiciona as métricas personalizadas desejadas) usando a API fornecida pelo SDK do Monitoramento de desempenho. Para apps do Android, também é possível monitorar a duração de métodos específicos usando a anotação @AddTrace.

Veja Adicionar monitoramento personalizado para códigos específicos de aplicativo para saber mais sobre esses recursos e como adicioná-los ao seu aplicativo.

Etapa 6: implantar seu app e analisar os resultados

Depois de validar o Monitoramento de desempenho usando um ou mais dispositivos de teste, você poderá implantar a versão atualizada do seu app para os usuários.

Você pode monitorar os dados de desempenho no painel Desempenho do Console do Firebase.

Problemas conhecidos

  • O plug-in do Gradle v1.1.0 para o Monitoramento de desempenho pode causar uma incompatibilidade nas dependências do Guava, resultando no seguinte erro:

    Error:Execution failed for task ':app:packageInstantRunResourcesDebug'.
    > com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor;

    Se você encontrar esse erro, realize as seguintes ações:

    • Faça o upgrade do plug-in do Monitoramento de desempenho para a v1.1.1 ou versões posteriores. Lembre-se de que a mais recente é a v1.3.1.

    • Substitua a linha de dependência do plug-in do Monitoramento de desempenho no arquivo do Gradle no nível raiz (build.gradle) da seguinte maneira:

      buildscript {
        // ...
      
        dependencies {
          // ...
      
          // Replace the standard Performance Monitoring plugin dependency line, as follows:
          classpath ('com.google.firebase:perf-plugin:1.1.0') {
                      exclude group: 'com.google.guava', module: 'guava-jdk5'
          }
        }
      }
      
  • O Monitoramento de desempenho relata o tamanho total do payload para solicitações de rede HTTP/S com base no valor definido no cabeçalho HTTP content-length. Esse valor pode não ser sempre exato.

  • O Monitoramento de desempenho só aceita o processo principal em apps Android multiprocessuais.

A seguir