Criar um perfil de performance do seu app

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Considera-se que um app tem uma performance ruim se ele responde de forma lenta, mostra animações entrecortadas, trava ou consome muita bateria. A correção de problemas de performance envolve a identificação de áreas em que o app usa recursos de maneira ineficiente, como CPU, memória, gráficos, rede ou 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. Para aprender técnicas de medição de desempenho e ver exemplos de como elas podem ser usadas para resolver problemas específicos, consulte Como medir o desempenho.

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

  • O CPU Profiler ajuda a monitorar problemas de desempenho no momento da execução.
  • O Memory Profiler ajuda a monitorar alocações de memória.
  • O Network Profiler monitora o uso do tráfego de rede.
  • O Energy Profiler monitora o uso de energia, que pode aumentar o consumo da bateria.

Para ver mais informações sobre essas ferramentas, consulte a página Criadores de perfil do Android Studio.

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

  • Macrobenchmark: faz a medição de casos de uso de performance importantes, incluindo inicialização e reexibição de aplicativos acionadas por ações como animações ou rolagem da IU.
  • Microbenchmark: mede o custo da CPU de funções específicas.

Para saber mais sobre essas bibliotecas, consulte a página Comparar seu app.

Aplicativos com perfil

Profileable é uma configuração de manifesto apresentada no Android Q. Ela pode especificar se o usuário do dispositivo tem permissão para criar perfis nesse aplicativo usando ferramentas como o Android Studio, Simpleperf e Perfetto.

Antes da configuração profileable, a maioria dos desenvolvedores só podia criar perfis para apps depuráveis no Android, o que aumentava os custos de desempenho de maneira significativa. Esses custos podem invalidar os resultados da criação de perfil, principalmente se estiverem relacionados ao tempo. A Tabela 1 resume as diferenças entre apps depuráveis e com perfil.

Tabela 1. Resumo das principais diferenças entre apps depuráveis e com perfil.
Recurso Depurável Com perfil
Memory Profiler Totalmente

Sim:

Não:

CPU Profiler Totalmente

Sim:

Não:

Network Profiler Sim Não
Energy Profiler Sim Não
Event Monitor Sim Não

A configuração Profileable foi apresentada para que os desenvolvedores possam permitir que os apps deles exponham informações às ferramentas de criação de perfil gerando custos de desempenho muito baixos. Um APK com perfil é essencialmente um APK de lançamento com uma linha de <profileable android:shell="true"/> adicionada ao arquivo de manifesto.

Para criar um aplicativo com perfil, crie primeiro um de lançamento e, depois, atualize o arquivo de manifesto para que ele passe a ser um aplicativo com perfil.

Criar um app de lançamento

Para criar um aplicativo de lançamento e permitir a criação de perfil, siga estas etapas:

  1. Assine seu aplicativo com a chave de depuração adicionando as seguintes linhas ao arquivo build.gradle. Se você já tiver uma variante de build de lançamento funcionando, pule para a próxima etapa.

            buildTypes {
              release {
                signingConfig signingConfigs.debug
              }
            }
          
  2. No Android Studio, selecione Build > Select Build Variant… e escolha a variante de lançamento.

Mudar de lançamento para com perfil

  1. Converta o aplicativo de lançamento acima em um aplicativo com perfil abrindo o arquivo AndroidManifest.xml e adicionando a linha a seguir. Para ver mais detalhes, consulte Criar o aplicativo para lançamento.

    <profileable android:shell="true"/>

  2. Dependendo da versão do SDK, talvez seja necessário adicionar estas linhas ao arquivo build.gradle do aplicativo:

          aaptOptions {
            additionalParameters =["--warn-manifest-validation"]
          }
        

Criar perfil em um app com perfil

Para criar um perfil em um app com perfil, siga estas etapas:

  1. No emulador ou dispositivo de desenvolvimento, abra o app.

  2. No Android Studio, inicie o criador de perfil selecionando View > Tool Windows > Profiler.

  3. Depois que o aplicativo for iniciado, clique no botão Botão de adição dos criadores de perfil no criador de perfil para ver o menu suspenso. Selecione seu dispositivo e a entrada do aplicativo em Other profileable processes.

    Menu com perfil
  4. O criador de perfil será anexado ao aplicativo. Somente a CPU e os Memory Profilers estão disponíveis, com capacidades limitadas para o Memory Profiler.

    Visualização da sessão com perfil
    Menu com perfil
    Menu com perfil

Observação: ao criar um perfil no app, é necessário desativar o Instant Run. Há um pequeno impacto no desempenho ao usar o Instant Run, e um impacto um pouco maior ao atualizar os 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.