Como capturar localmente um rastreamento do sistema na torta Android

O rastreamento é uma ferramenta inestimável que permite que os desenvolvedores entendam o impacto de várias alterações em um sistema e podem fornecer pistas para identificar a causa raiz dos problemas.

O systrace é uma ferramenta de rastreamento poderosa que coleta informações de tempo dos processos em execução em um dispositivo Android. O systrace foi usado extensivamente pela equipe de desempenho do Android no Google para otimizar o desempenho nos telefones do Google Pixel. Eu usei o systrace para inspecionar o impacto das alterações do agendador do kernel nas colocações de tarefas nas CPUs, por exemplo, e para identificar possíveis causas de descargas. O systrace pode capturar uma ampla variedade de dados, incluindo agendamento de CPU, frequência de CPU, E / S de disco, gráficos, atividade do Fichário e muito mais. As informações são combinadas em um relatório que pode ser analisado no Google Chrome.

Antes do Android Pie, a única maneira de capturar traços com systrace era conectar um dispositivo Android a um computador e executar o systrace a partir daí - geralmente a partir de um terminal. No entanto, nem todo mundo tem acesso constante a um computador ou o conhecimento e a confiança para executar o systrace.

Com o lançamento do Android Pie, esse inconveniente foi solucionado com a introdução do pacote Traceur, que é uma ferramenta que captura dados brutos de rastreamento diretamente em um telefone Android. O Traceur está disponível como a opção "Rastreamento do sistema" nas Opções do desenvolvedor do aplicativo Configurações, e os dados brutos de rastreamento capturados no dispositivo pelo Traceur podem posteriormente ser convertidos por systrace em um relatório HTML para análise.

A nova opção "Rastreamento do sistema" permite que os usuários capturem e compartilhem rastreamentos facilmente com os desenvolvedores, sem a necessidade de realmente saber como executar o systrace em um computador. Os desenvolvedores se beneficiam da capacidade de capturar traços sem um computador e analisá-los mais tarde, conforme sua conveniência. Os dados completos de rastreamento bruto coletados pelo “Rastreamento do Sistema” também são significativamente menores em tamanho que o relatório HTML gerado pelo systrace, o que torna os dados de rastreamento bruto mais adequados para armazenamento e compartilhamento com outras pessoas.

Guia: Coletando sistema e analisando rastreamentos de sistema

Primeiro, verifique se você tem um dispositivo executando o Android Pie e um computador com o Python 2 instalado. As instruções a seguir foram executadas em um OnePlus 6 executando a versão mais recente do OxygenOS Android Pie beta.

  1. Ative as Opções do desenvolvedor no aplicativo Configurações e, em seguida, acesse a opção "Rastreamento do sistema" na seção "Depuração" das Opções do desenvolvedor.

  2. Ao abrir o Rastreio do Sistema, será apresentada uma alternância para ativar o Rastreio do Sistema e a capacidade de personalizar as categorias de rastreio e o tamanho do buffer dos rastreios. Para esta demonstração, são usadas as categorias padrão, o que é suficiente para a maioria dos casos. Uma alternância "Mostrar bloco de configurações rápidas" permite que o rastreio seja iniciado / interrompido por meio das Configurações rápidas. Eu ativei isso neste guia.

  3. Para começar a capturar um rastreio, toque no bloco de configurações rápidas recentemente adicionado "Record trace".

  4. Ao concluir o rastreamento de um caso de teste, você pode interromper o rastreamento na sombra da notificação.

  5. Ótimo! Você capturou com êxito um rastreio bruto. Uma notificação solicitará que você compartilhe o arquivo de rastreamento bruto. Você poderá salvá-lo no seu dispositivo, enviá-lo para armazenamento on-line, enviá-lo por e-mail para alguém, etc. Como alternativa, você pode usar o ADB para puxar diretamente o rastreamento do seu dispositivo para o seu computador ( adb pull /data/local/traces/ ). Vá em frente e salve o arquivo de rastreamento no seu computador.

  6. O arquivo de rastreamento bruto possui o formato .ctrace preparado. Não pode ser interpretado em sua forma bruta. Podemos usar o systrace para gerar um relatório HTML interativo mais útil e compreensível a partir do nosso arquivo de rastreamento bruto.

  7. Usaremos a versão mais recente do systrace do repositório do projeto de catapulta. Em um aplicativo de terminal, clone o repositório (verifique se o git está instalado):
     git clone //github.com/catapult-project/catapult.git 
  8. Para gerar o relatório HTML a partir do nosso arquivo de rastreio bruto usando systrace, digite os seguintes comandos:
     python2 catapult/systrace/bin/systrace --from-file= 

    Um arquivo HTML com o mesmo nome que o arquivo de rastreamento bruto será gerado. Nota: o systrace suporta apenas Python 2 no momento da escrita.

  9. Para visualizar o relatório HTML, inicie o navegador Google Chrome e acesse o URL "chrome: // tracing". Não abra o relatório HTML diretamente no Google Chrome, pois ele aparecerá em branco.

  10. Clique no botão "Load" e abra o arquivo de relatório HTML na caixa de diálogo pop-up. Voila! Seu relatório de rastreamento agora está disponível para inspeção.

Qual é o próximo?

Agora que você é capaz de capturar um rastreamento e gerar um relatório de systrace, é importante entender como ler e interpretar os dados apresentados no relatório. Para começar, recomendo ler “Noções básicas sobre o Systrace ” e assistir a “Desempenho do Android: uma visão geral (Google I / O '17)” e “ Systrace for Games” para ver o systrace em ação.

Esta é uma postagem de convidado que foi originalmente escrita por Josh Choo, também conhecido como desenvolvedor reconhecido joshuous. A postagem foi levemente editada para formatação.