Criar um perfil de desempenho do seu app

Considera-se que um app tem um desempenho ruim se ele responde lentamente, exibe animações entrecortadas, congela ou consome muita energia. A correção de problemas de desempenho envolve a identificação de áreas em que o app usa recursos de maneira ineficiente, como CPU, memória, gráficos, rede e bateria do dispositivo. Para encontrar e corrigir esses problemas, use as ferramentas e técnicas de criação de perfil e comparação descritas neste tópico.

O Android Studio oferece várias ferramentas de criação de perfil para ajudar a encontrar e visualizar possíveis problemas:

  • CPU Profiler: ajuda a monitorar problemas de desempenho durante a execução.
  • Memory Profiler: ajuda a monitorar alocações de memória.
  • Network Profiler: esta ferramenta monitora o uso do tráfego de rede.
  • Energy Profiler: monitora o uso de energia, que pode aumentar o consumo da bateria.
Consulte a página Android Studio Profilers para ver informações sobre como usar essas ferramentas.

As bibliotecas do Jetpack Benchmark permitem medir várias operações importantes do aplicativo:

  • Macrobenchmark: faz a medição de casos de uso de desempenho importantes, incluindo a inicialização e a reexibição de apps acionados por ações como animações ou rolagem da IU.
  • Benchmark: faz a medição do custo da CPU de funções específicas.
Consulte a página Comparar o app para saber mais sobre essas bibliotecas.

Há muitas causas potenciais para problemas de desempenho. Por isso, pode ser difícil saber por onde começar se você não tem experiência em análise de desempenho. Consulte Como medir o desempenho para aprender técnicas de medição do desempenho, além de exemplos de como usar essas técnicas para resolver problemas específicos.

Observação: ao criar um perfil do app, é necessário desativar o Instant Run. Ocorre um pequeno impacto no desempenho ao usar o Instant Run e um impacto um pouco maior ao atualizar métodos. Esse impacto no desempenho pode interferir nas informações fornecidas pelas ferramentas de criação de perfis de desempenho. Além disso, os métodos de stub gerados durante o uso do recurso podem complicar stack traces.