Participe do evento ⁠#Android11: apresentação de lançamento da versão Beta no dia 3 de junho.

Visão geral do rastreamento do sistema

A gravação da atividade do dispositivo durante um curto período é conhecida como rastreamento do sistema. O rastreamento do sistema produz um arquivo que pode ser usado para gerar um relatório do sistema. Esse relatório ajuda a identificar a melhor forma de melhorar o desempenho do app ou jogo.

A plataforma Android oferece várias opções para a captura de rastros como:

  • CPU Profiler do Android Studio
  • App Rastreamento do sistema
  • Ferramenta de linha de comando Systrace
  • Ferramenta de linha de comando Perfetto

O CPU Profiler do Android Studio inspeciona o uso da CPU e a atividade das linhas de execução do app em tempo real durante a interação com o app. Também é possível inspecionar os detalhes nos rastreamentos de método, de função e de sistema gravados.

O app Rastreamento do sistema é uma ferramenta para Android que salva a atividade do dispositivo em um arquivo de rastreamento. Nos dispositivos com o Android 10 (API de nível 29) ou mais recente, os arquivos de rastreamento são salvos no formato Perfetto (veja abaixo). Nos dispositivos com uma versão anterior do Android, os arquivos de rastreamento são salvos no formato do Systrace.

O Systrace é uma ferramenta de linha de comando legada fornecida pela plataforma que registra a atividade do dispositivo durante um curto período em um arquivo de texto compactado. A ferramenta gera um relatório que combina dados do kernel do Android, como o programador de CPU, a atividade do disco e as linhas de execução do app.

O Perfetto, lançado no Android 10, é a nova ferramenta de rastreamento para toda a plataforma. Ele é um projeto de rastreamento de código aberto mais geral e sofisticado para o Android, Linux e Chrome. Ele oferece um superconjunto de fontes de dados em comparação com o Systrace e permite registrar arbitrariamente rastros longos em um fluxo binário codificado por protobuf. É possível abrir esses rastros na IU do Perfetto.

Captura de tela da visualização de rastreamento do Perfetto

Figura 1. Uma amostra de visualização de rastros do Perfetto, que mostra cerca de 20 segundos de interação com um app.

Captura de tela de relatório do Systrace

Figura 2. Amostra de relatório HTML do Systrace, que mostra cinco segundos de interação com um app.

Os dois relatórios fornecem uma visão geral dos processos do sistema de um dispositivo Android para determinado período. O relatório também avalia as informações de rastreamento coletadas para destacar os problemas observados, como instabilidade da IU ou alto consumo de energia.

O Perfetto e o Systrace são interoperáveis:

Guias de rastreamento do sistema

Para saber mais sobre as ferramentas de rastreamento do sistema, consulte os seguintes guias:

Inspecionar atividades de CPU com o CPU Profiler
Mostra como definir o perfil do uso da CPU e da atividade de linhas de execução do seu app no Android Studio.
App Rastreamento do sistema
Explica como capturar diretamente um rastreamento do sistema em qualquer dispositivo com o Android 9 (API de nível 28) ou versão mais recente.
Referência da linha de comando do Systrace
Define as diferentes opções e sinalizações que podem ser transmitidas para a interface de linha de comando do Systrace.
Como executar o Perfetto usando o ADB
Descreve como executar a ferramenta de linha de comando perfetto para capturar rastros.
Como executar o Perfetto (link em inglês)
Documentação externa que descreve como criar e executar a ferramenta de linha de comando perfetto para capturar rastros.
IU do Perfetto (link em inglês)
O visualizador de rastros baseado na Web abre os rastros do Perfetto e exibe um relatório completo. Também é possível abrir os rastros do Systrace neste visualizador usando a opção de IU legada.
Navegar por um relatório do Systrace
Lista os elementos de um relatório típico, apresenta atalhos de teclado para navegar pelo relatório e descreve como identificar os tipos de problemas de desempenho.
Definir eventos personalizados
Descreve como aplicar rótulos personalizados a seções específicas do seu código, facilitando a análise de causas raiz no Systrace.