Guia: Enviando um Logcat para ajudar a depurar seu aplicativo favorito

Você já teve seu aplicativo favorito travando repentinamente em você? Quer ajudar o desenvolvedor a depurar o que aconteceu? Aprenda como capturar e filtrar Logcats com nosso guia.

Os croatas agitam uma bandeira da UE ao celebrarem a adesão da Croácia à União Europeia na praça Ban Jelesic, em Zagreb, em 30 de junho de 2013. Dezenas de milhares de croatas aplaudiram a entrada do país na União Europeia à meia-noite de domingo (22:00 GMT), quase duas décadas após o fim da sangrenta guerra de independência da ex-república jugoslava. FOTO AFP/STRINGER

Aconteceu com todos nós em um ponto ou outro. Não há vergonha em admitir isso. Às vezes, os aplicativos Android travam. Esteja você usando um dispositivo totalmente padrão para executar o Google Maps ou uma ROM altamente personalizada com um módulo Xposed para aprimorar o Hangouts do Google, travamentos de aplicativos e outros problemas podem ocorrer e até mesmo se tornar um grande obstáculo. Isto é especialmente verdadeiro no desenvolvimento de ajustes e aplicações de menor escala, como os muitos encontrados em nosso site. Quando surgem problemas, um dos insights mais construtivos e úteis que o usuário pode fornecer ao desenvolvedor sobre a natureza da falha é fornecer um

Logcat. Embora extremamente útil para desenvolvedores, obter essas informações pode parecer um tanto assustador para um usuário comum.

Normalmente envolvendo ferramentas de linha de comando por meio do ADB, o Logcat está fora do alcance de muitos usuários que têm pouca ou nenhuma experiência com a linha de comando. No entanto, o lançamento de certos aplicativos eliminou, ou pelo menos reduziu bastante, o envolvimento de comandos ADB na recuperação e envio de um Logcat, tornando isso tão fácil quanto alguns toques na tela. Em nossa missão interminável de ajudar no desenvolvimento de desenvolvedores, aqui está um guia para iniciantes para ensinar aos usuários como enviar um Logcat.


O que é um Logcat e como podemos extraí-lo?

Um Logcat é uma ferramenta ADB Shell usada para extrair um log de todos os eventos do sistema. Isso inclui erros, avisos, rastreamentos de pilha e ocorrências gerais do sistema. Quando ocorre um erro, informações importantes que apontam para a origem da falha são geradas por meio desse log, tornando-o uma ferramenta muito útil para solução de problemas. Normalmente, eles são extraídos e filtrados por meio de comandos ADB. No entanto, aplicativos como aLogcat, Catálogoe nossa ferramenta preferida para este artigo, Registro de Matrícula, pouparam o esforço dos usuários ao compilar essas ferramentas de comando na GUI de um aplicativo para download na Play-Store.

Conforme mencionado, Matlog é o que estamos usando para coletar Logcats. Escolhido por sua interface simples, mas amigável, o Matlog foi feito pelo XDA Junior Member plusCubed e com base em Nolan Lawson aplicativo de código aberto Catlog. Como Catlog, Matlog pode ser compilado da fonte, ou baixado gratuitamente na Google Play Store. Embora o root permita que você pule uma etapa durante a configuração, acesso root não é necessário para coletar Logcats. Se o seu dispositivo não estiver enraizado, um único comando do shell ADB concederá ao aplicativo acesso para ler os logs do seu dispositivo. Ainda não configurou o ADB em sua máquina? Não tem problema, basta seguir estas etapas para colocá-lo em funcionamento.

Nota: Os telefones Huawei desabilitaram completamente a saída do Logcat. Você precisará alterar uma configuração oculta antes de continuar com o restante deste guia.


Configurando o ADB

Primeiro, baixe o binário ADB direto do Google para o seu sistema operacional específico e extraia-o para um diretório separado no seu computador. Próximo, instale o driver adequado para o seu telefone específico. Em seguida, habilite "Depuração USB" em Configurações -> Opções do desenvolvedor. Se você não vir as Opções do desenvolvedor, precisará habilitá-lo acessando Configurações -> Sobre o telefone e tocando em Número da versão 7 vezes. Por fim, certifique-se de que o ADB esteja funcionando iniciando um prompt de comando no mesmo diretório do binário ADB (clique com o botão direito -> "abrir prompt de comando aqui") e execute o seguinte comando:

adb devices

Se você vir o número de série do seu dispositivo (e não diz não autorizado), você está certo. Se você vir um pop-up em seu telefone solicitando que você conceda acesso ADB ao seu computador, diga sim. Se você não perceber nada disso, tente reiniciar o computador/telefone e reconectá-lo ao computador. Caso contrário, tente reinstalar o driver.


Configurando o Matlog

Agora que você tem o ADB instalado e funcionando (espero), tudo o que você precisa fazer para permitir que o Matlog capture Logcats é emitir o seguinte comando em um shell ADB. Novamente, se o seu dispositivo já estiver enraizado, você não precisa executar este comando, pois isso só é necessário para telefones não enraizados.

adbshellpmgrantcom.pluscubed.matlogandroid.permission.READ_LOGS
Widget de registro Matlog junto com o aplicativo com defeito

Uma vez habilitado e aberto, o Matlog exibirá os eventos do sistema em tempo real. Você pode tocar no botão de pausa para interromper isso, depois tocar no menu de reticências e selecionar “limpar” para livrar o campo de dados estranhos. É recomendado fazer isso na preparação para registrar o aplicativo com defeito, a fim de reduzir o tamanho do registro. Para encurtar as etapas e, portanto, o comprimento do log ainda mais, adicione o widget Matlog à sua tela inicial ao lado do aplicativo com falha em questão, conforme mostrado à direita. Neste caso, Apktool X é nosso aplicativo com defeito.

Tocar no widget permite nomear e começar a gravar um registro. Em seguida, basta reproduzir o mau funcionamento imediatamente após iniciar o registro, o que preencherá o Logcat com informações pertinentes ao seu problema. Assim que o problema for reproduzido, basta tocar no widget novamente para concluir a gravação do log.

Ao fazer isso, o Matlog abrirá o log capturado. Toque nas reticências e selecione “enviar” para enviar o registro por e-mail como um arquivo de texto anexado junto com informações gerais do dispositivo. É isso! Seu Logcat foi capturado e enviado com sucesso para o Professor Carvalho.

No meu exemplo acima, posso dizer que o motivo pelo qual o Apktool X travou é porque meu dispositivo não está enraizado. Dá! eu deveria ter totalmente Leia o artigo antes de tentar usar o aplicativo.

Isso foi muito fácil

É claro que nem todos os problemas são tão fáceis de capturar. Às vezes, problemas relacionados à inicialização ou problemas que se estendem por longos períodos de tempo podem exigir recursos diferentes do aplicativo para serem capturados. Nesses casos, você desejará deixar o Matlog ser executado em segundo plano (não pausá-lo ou apagá-lo) e utilizar as funções Nível de log e Filtro para analisar os dados.

Embora normalmente não seja o único método necessário para coletar dados pertinentes – algumas situações exigem mais contexto – cada uma dessas ferramentas pode ser usada em logs mais longos para classificar e especificar dados para o desenvolvedor. Naturalmente, isso depende da natureza do erro e do que o desenvolvedor solicita. Para usar qualquer um deles, basta executar o Matlog, reproduzir seu problema, navegar de volta ao Matlog, tocar no menu de pontos e selecionar um desses dois métodos de classificação.

Seleção de nível de log mostrando apenas erros

Nível de registro

Outro comando ADB simplificado pelo Matlog, a função Log Level pode ser usada para visualizar tipos específicos de eventos e mensagens do sistema. Abaixo está uma breve descrição dos vários tipos de mensagens, conforme descrito pelo site Android Developers e codificados por cores para corresponder à rotulagem do Matlog.

Da prioridade mais baixa para a mais alta:

  • V: Verbose (eventos gerais do sistema)
  • D: Depurar
  • EU: Informação
  • C: Aviso
  • E: Erro
  • F: Fatal
  • S: Silencioso (Prioridade mais alta, em que nada é impresso)

O recurso Log Level possui uma lista correspondente dessas mensagens, que pode filtrar o log em cada nível de prioridade. A seleção de um nível de registro mostrará apenas eventos em seu próprio nível de prioridade e superiores, facilitando a identificação e o agrupamento de erros, em vez de exigir a rolagem manual por inúmeras linhas de texto - que às vezes podem chegar aos milhares - para fazer então.

Conjunto de filtros de pesquisa para “Apktool”

Filtros

Filtros também podem ser empregados para classificar os dados de log. Ao iniciar uma pesquisa por palavra-chave, o usuário pode ver apenas mensagens que fazem referência explícita a essa palavra-chave. Palavras-chave úteis podem envolver o nome do aplicativo com defeito ou até mesmo a palavra “erro”, pois abrange instâncias do termo em todos os níveis de prioridade, embora não abrange todos os erros de “nível de log”.

Se você estiver pesquisando/filtrando muitas palavras-chave ao ajudar um desenvolvedor a depurar um aplicativo (ou se o desenvolvedor criou explicitamente um evento de log exclusivo que você pode pesquisar), então você também pode salvar um filtro ao qual pode retornar em o futuro. Isso é útil quando você sabe de antemão o que está procurando, o que acontecerá com bastante frequência se você estiver trabalhando em conjunto com um desenvolvedor.

Pronto para depurar?

Embora você possa não agora ser um especialista em depuração de aplicativos Android, aprender como coletar e enviar Logcats pode ser um ótimo recurso para os desenvolvedores de seus aplicativos favoritos. Usando o Matlog e os recursos descritos acima, nunca foi tão fácil coletar, classificar e enviar informações pertinentes sobre um aplicativo com defeito.


Você usou o Matlog ou outro aplicativo Logcat? Você achou este guia útil? Deixe-nos saber nos comentários abaixo!