Capturar um rastreamento do sistema na linha de comando

O comando systrace invoca a ferramenta Systrace, que permite coletar e inspecionar informações de tempo em todos os processos em execução no dispositivo no nível do sistema.

Este documento explica como gerar relatórios do Systrace na linha de comando. Em dispositivos com o Android 9 (API de nível 28) ou versões mais recentes, você também pode gerar relatórios do Systrace usando o app Rastreamento do sistema.

Para executar o systrace, realize as seguintes etapas:

  1. No Android Studio, faça o download da versão mais recente das Ferramentas do SDK do Android e a instale.
  2. Instale o Python e o inclua na variável de ambiente PATH da sua estação de trabalho.
  3. Adicione android-sdk/platform-tools/ à sua variável de ambiente PATH. Esse diretório contém o binário Android Debug Bridge (adb), que é chamado pelo programa systrace.
  4. Conecte um dispositivo com o Android 4.3 (API de nível 18) ou versão mais recente ao sistema de desenvolvimento usando uma conexão de depuração USB.

O comando systrace é fornecido no pacote Ferramentas do SDK do Android e está localizado em android-sdk/platform-tools/systrace/.

Sintaxe

Para gerar o relatório HTML para o app, é necessário executar o systrace na linha de comando usando a seguinte sintaxe:

python systrace.py [options] [categories]

Por exemplo, o comando a seguir chama systrace para registrar a atividade do dispositivo e gerar um relatório HTML chamado mynewtrace.html. Essa lista de categorias é uma lista padrão razoável para a maioria dos dispositivos.

$ python systrace.py -o mynewtrace.html sched freq idle am wm gfx view \
    binder_driver hal dalvik camera input res memory

Dica: caso queira conferir os nomes das tarefas no resultado de rastreamento, você precisa incluir a categoria sched nos parâmetros de comando.

Para ver a lista de categorias compatíveis com o dispositivo conectado, execute o seguinte comando:

$ python systrace.py --list-categories

Se nenhuma categoria ou opção for especificada, o systrace gerará um relatório com todas as categorias disponíveis e usará as configurações padrão. As categorias disponíveis dependem do dispositivo conectado em uso.

Opções globais

Opções globais Descrição
-h | --help Mostra a mensagem de ajuda.
-l | --list-categories Lista as categorias de rastreamento disponíveis para o dispositivo conectado.

Comandos e opções de comando

Comandos e opções Descrição
-o file Escrever o relatório de rastreamento HTML no file especificado. Se essa opção não for especificada, o systrace vai salvar o relatório no mesmo diretório que systrace.py e o chamará de trace.html.
-t N | --time=N Rastrear a atividade do dispositivo por N segundos. Se essa opção não for especificada, o systrace vai solicitar que você encerre o rastreamento pressionando a tecla Enter na linha de comando.
-b N | --buf-size=N Usar um tamanho de buffer de rastreamento de N kilobytes. Essa opção permite limitar o tamanho total dos dados coletados durante um rastreamento.
-k functions
| --ktrace=functions
Rastrear a atividade de funções específicas do kernel, indicadas em uma lista separada por vírgulas.
-a app-name
| --app=app-name
Ativar o rastreamento de apps, especificados como uma lista separada por vírgulas de nomes de processos. Os apps precisam incluir chamadas de instrumentação de rastreamento da classe Trace. É necessário especificar essa opção sempre que você criar um perfil para seu app. Muitas bibliotecas, como RecyclerView, incluem chamadas de instrumentação de rastreamento que apresentam informações úteis quando o rastreamento no nível do app é ativado. Para ver mais informações, consulte Definir eventos personalizados.

Para rastrear todos os apps em um dispositivo com o Android 9 (API de nível 28) ou versões mais recentes, passe o caractere curinga "*", incluindo as aspas.

--from-file=file-path Criar um relatório HTML interativo de um arquivo, como arquivos TXT que incluem dados de rastreamento brutos, em vez de executar um rastreamento simultâneo.
-e device-serial
| --serial=device-serial
Realizar o rastreamento em um dispositivo conectado específico, identificado pelo número de série do dispositivo.
categories Incluir informações de rastreamento para os processos do sistema especificados, como gfx para processos do sistema que renderizam gráficos. Você pode executar systrace com o comando -l para conferir uma lista de serviços disponíveis para o dispositivo conectado.