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 seu dispositivo no nível do sistema.

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

Para executar o systrace, siga as seguintes etapas:

  1. No Android Studio, faça o download da versão mais recente do Android SDK Tools e instale-a.
  2. Instale o Python e inclua-o no caminho de execução da sua estação de trabalho.
  3. Conecte um dispositivo com o Android 4.3 (API de nível 18) ou versão posterior ao sistema de desenvolvimento usando uma conexão de depuração USB.

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

Sintaxe

Para gerar o relatório HTML para o app, você precisa executar o systrace na linha de comando usando a seguinte sintaxe:

    python systrace.py [options] [categories]
    

Por exemplo, o comando a seguir chama o 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
    

Dica: se você quiser ver os nomes das tarefas no resultado de rastreamento, é necessário 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 você não especificar nenhuma categoria ou opção, o systrace gerará um relatório que inclui 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 arquivo especificado. Se você não especificar essa opção, o systrace salvará seu 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 você não especificar essa opção, o systrace solicitará que você interrompa 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 mais informações, vá para a seção sobre como instrumentar o código do seu app.
--from-file=file-path Criar um relatório HTML interativo a partir 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 o systrace com o comando -l para ver uma lista de serviços disponíveis para o dispositivo conectado.