Análise de Logs Andróide

>

Capítulo Logs Andróide

Como um desenvolvedor Android, todos vocês sabem que a análise de Logs é uma fase de desenvolvimento e nós a encontramos de tempos em tempos.
But Log Analysis é o principal desafio para o mantenedor de código ou Engenheiro de Suporte.

Once Qualquer produto Android lançado no mercado e os clientes começam a usá-lo. Então bugs/ problemas reais do cenário começam a chegar e é o principal trabalho para o Engenheiro de Suporte/ Engenheiro de manutenção do Projeto analisar o Bug/ problema com o conjunto de logs fornecidos.

Primeiro Começamos com o tipo de Log disponível no Android Eco-system:-

  • Log de aplicação
  • Log de sistema
  • Log de evento
  • Log de rádio

Sistema de log de andróide consiste em:

  • a driver do kernel e buffers do kernel para armazenar mensagens de log
  • C, classes C++ e Java para fazer entradas de log e acessar as mensagens de log.
  • Logcat (um programa autónomo para visualizar mensagens de log)
  • DDMS (capacidade para visualizar e filtrar as mensagens de log da máquina anfitriã)

Buffer/contentor de log android

  • main – o log da aplicação principal
  • eventos – para informação de eventos do sistema
  • rádio – para rádio e telefone…informação relacionada
  • sistema – um log para mensagens de sistema de baixo nível e depuração

O que contém a mensagem de log:-

Cada mensagem no log consiste em

  • Uma etiqueta indicando a parte do sistema ou aplicação de onde veio a mensagem
  • Um carimbo de data/hora (a que horas chegou esta mensagem)
  • O nível de log de mensagens (ou prioridade do evento representado pela mensagem) e
  • A própria mensagem de log (descrição detalhada do erro ou exceção ou informação etc)

O que cada tipo de log contém:-

1. Log de aplicação

  • utilizar android.util.Métodos de classes de log para escrever mensagens de prioridade diferente no log
  • As classes Java declaram sua tag estaticamente como uma string, que passam para o método de log
  • O método de log usado indica a mensagem “severidade” (ou nível de log)
  • As mensagens podem ser filtradas por tag ou prioridade quando os logs são processados por ferramentas de recuperação (logcat)

2. Log do sistema

  • Utilizar o android.util.Classe slog para escrever uma mensagem com prioridade diferente com suas mensagens associadas
  • Muitas classes de framework Android utilizam o log do sistema para manter suas mensagens separadas de (possivelmente ruidosas) mensagens de log da aplicação
  • Uma mensagem formatada é entregue através da biblioteca C/C++ até o driver do kernel, que armazena a mensagem no buffer (buffer do sistema)

3. Event log

  • Event logs são criados usando a classe android.util.EventLog, que cria mensagens de log em formato binário.
  • Entradas de log consistem em códigos de tag binários, seguidos por parâmetros binários.
  • Os códigos de tag da mensagem são armazenados no sistema em: /system/etc/event-log-tags.
  • Cada mensagem tem a string para a mensagem de log, assim como códigos indicando os valores associados a (armazenados com) essa entrada.

4. Log de rádio

  • Usado para informações relacionadas a rádio e telefone(modem)
  • Entradas de log consistem em código de tags binárias e mensagem para informações de rede
  • Sistema de log log encaminha automaticamente mensagens com tags específicas para o buffer de rádio

Formato de log no Android

Baixo é o formato de log comum no android

tv_sec tv_nsec priority pid tid tag messageLen Message

tag: log tag
tv_sec & tv_nsec: o timestamp das mensagens de log
pid: o id do processo de onde vêm as mensagens de log
tid: o id da thread
valor da prioridade é um dos seguintes valores de caracteres, ordenados da menor para a maior prioridade:
V – Verbose (menor prioridade)*
D – Debug*
I – Info*
W – Warning*
E – Error*
F – Fatal*
S – Silent (maior prioridade, na qual nada é impresso)

Log-File locations
Existem vários diretórios onde os logs (incluindo os de crashes) são armazenados e não são padronizados(i.e. alguns podem ser específicos da ROM). Eu estou colocando alguns comuns aqui.

  • /data/anr : Dalvik escreve aqui em ANR traços de pilha, i.e. “Application Not Responding” aka “Force-Close”
  • /data/dontpanic : contém alguns logs de crash incluindo traces
  • /data/kernelpanics :- Armazena logs relacionados ao “kernel panic”
  • /data/tombstones :- pode conter vários arquivos tombstone_nn (nn é um número de 0 a 10 e depois de 10 novamente repeti-lo)

‘Log’ ferramenta de linha de comando
Para capturar Logs dos dispositivos/emulador androide Abaixo está alguma ferramenta de linha de comando. Em projetos da vida real, existem aplicativos/ferramentas de captura de logs usados para capturar os logs no dispositivo do usuário e compartilhados de volta para o Desenvolvedor/Mantenedor para análise.

  • adb logcat (mostra todos os logs do tipo para o sistema android atual
  • adb logcat -v threadtime (incluirá data e hora)
  • adb logcat -v threadtime > logfile.txt (Armazena logs em logfile.txt)

Padrão de filtragem útil
Você pode usar o filtro abaixo no seu comando adb para filtrar logs. Você também pode usar este filtro para procurar no seu ficheiro de logs(logs fornecidos pelo dispositivo do utilizador).

  • adb logcat -f <output_file> Save all logs into a file
  • adb logcat “*:E” Get all errors and fatals
  • adb logcat | grep -i “foo.example”. #get all logs related to “foo.example.*” tagname
  • adb logcat “application_or_tag_name:*” “*:S” Obter todos os logs por nome de aplicação
  • adb logcat -b eventos “gsm_service_state_change” “*:S” Obter todas as alterações de estado GSM
  • adb logcat -b radio Obter todos os eventos de rádio

Análise de log
Até agora obtemos toda a exposição fundamental do Sistema de Registo do Android. Agora o tempo para analisar os logs que vêm do seu aplicativo ou usuário final. Aqui podemos dividir a análise dos logs em duas partes

  1. Debug Log:- arquivo de logs vindo durante a fase de desenvolvimento e teste
  2. Log de produção:- arquivo de logs vindo diretamente do usuário final.

Então adivinhe qual é difícil Log de produção, certo? Então qual é a melhor abordagem para depurar e obter a informação desejada a partir dos logs capturados? Como discuti acima, podemos fazê-lo usando

  • “Padrões de Filtros Úteis” e
  • Usando Algumas Ferramentas (exemplo LogRabit, GoogleLogTool e SonyLogTool)

Então na última análise de logs do Android é a aprendizagem contínua e utilizando o seu processo de experiência. Pessoalmente eu analisei logs via filtro e ferramenta relevante com minha experiência passada.

Mas uma coisa é boa Toda análise de andróide (problema de usuário final/log de bugs) dá a você uma nova aprendizagem e experiência. Então continue fazendo e aproveite sua vida como codificador e mantenedor do andróide system😎😎😎

Deixe uma resposta

O seu endereço de email não será publicado.