Há muitas coisas interessantes no log do sistema Android, que são úteis de várias maneiras

  • encontrar as causas raiz de problemas
  • identificar aplicativos com comportamento inadequado

Como posso visualizar e examinar o registro do Android?

Comentários

Resposta

Android 4.1 e mais recente

A forma preferida é fazer o download do SDK e usar o adb logcat (requer a ativação das " opções do desenvolvedor " no dispositivo).

Existem aplicativos disponíveis para visualizar o registro completo do sistema, entretanto, eles só funcionam em dispositivos com acesso root ou requerem a emissão de um comando manual via adb para fazê-los funcionar. Para obter mais informações, veja veja esta pergunta.

Android 4.0 e anteriores

Você pode baixar o SDK e use adb logcat ou obtenha Logcat Extrem no Google Play Store, que mostra o log diretamente no seu telefone.

Comentários

  • Como alternativa, você pode usar o Terminal Emulator com o comando " logcat > /sdcard/log.txt" para gravação contínua do log em um arquivo no SD Cartão. Isso pode ajudar a descobrir problemas com reinicializações aleatórias.
  • Bom ponto. Alguns telefones tendem a enviar spam para o log cheio de informações triviais, portanto, se você deseja minimizar o tamanho do arquivo e os dados a serem examinados, verifique a seção " Filtrando a saída do log " em developer.android.com/guide/developing/tools/adb.html#logcat
  • LogCat Apps não ' para trabalhar com o JellyBean. O Google mudou a API do Android, os aplicativos não ' não têm mais permissão para ler registros de outros aplicativos além dos seus.
  • Criei um utilitário simples para coletar registros de um PC: gist.github.com/hrj/5983971
  • Logcat Extreme é o aplicativo legal para ver o registro

Resposta

Locais do arquivo de registro

Existem vários diretórios onde os registros (incluindo aqueles de travamentos) pode aparecer – nem todos eles são padronizados (ou seja, alguns podem ser específicos da ROM).

  • /data/anr: Alguns arquivos de rastreamento parecem chegar aqui (Dalvik grava rastreamentos de pilha aqui no ANR, ou seja, “Aplicativo não está respondendo” ou “Forçar fechamento”; consulte, por exemplo, trechos de registro aqui )
  • /data/dontpanic parece ser um local padrão (AOSP) e contém alguns registros de falhas, incluindo rastreamentos (consulte, por exemplo, viaForensics e St ackOverflow )
  • /data/kernelpanics é outro local – não tendo tido nenhum “kernel panic” em meus dispositivos Android, não vi nenhum conteúdo lá ainda.
  • o /data/panic/panic_daemon.config pode apontar para outros locais configurados – no meu Droid 2, ele menciona /sdcard/panic_data/
  • mencionado Droid 2 também tem um diretório /data/panicreports (vazio aqui)
  • /data/tombstones pode conter vários tombstone_nn arquivos (com nn sendo um serial, aumentado a cada novo arquivo). Como as lápides são colocadas para os mortos, isso é feito aqui para “processos mortos por acidente” (ou seja, travados) – e é o que é referido como “despejos de núcleo” em sistemas Linux / Unix. No entanto, nem todos os aplicativos criam marcas de exclusão; isso deve ser explicitamente ativado pelo desenvolvedor (consulte Depuração de despejos principais do Android ).

Pode haver mais alguns locais que escapou de mim; mas como a maioria dos registros são feitos em tmpfs, esses dados são perdidos com uma reinicialização e não corresponderiam à pergunta dos OPs.

Comandos de registro para usar com um terminal app (ou adb)

Vários comandos podem fornecer toneladas de informações. Para a maioria deles, é recomendável redirecioná-los para um arquivo (> filename.ext) ou canalizá-los por meio de um filtro (| grep search-for-this ):

Log do kernel

O seguinte funciona sem root:

$ dmesg <6>[82839.126586] PM: Syncing filesystems ... done. <7>[82839.189056] PM: Preparing system for mem sleep <4>[82839.189361] Freezing user space processes ... (elapsed 0.05 seconds) done. <4>[82839.240661] Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done. <snip> 

Logcat

Aqui você pode, por exemplo especifique em qual área você está interessado – rádio, eventos …

# logcat -b events I/am_create_service( 3457): [1085416560,nitro.phonestats/.widget.WidgetProvider4x1$WidgetUpdateService4x1,,3721] I/am_destroy_service( 3457): [1085416560,nitro.phonestats/.widget.WidgetProvider4x1$WidgetUpdateService4x1,3721] I/notification_cancel( 3457): [nitro.phonestats,4,0] <snip> 

Obtendo informações do dispositivo

E muito: Dispositivo especificidades, informações de conta, serviços …

$ dumpsys Currently running services: LocationProxyService SurfaceFlinger accessibility account activity <snip> DUMP OF SERVICE account: Accounts: 1 Account {[email protected], type=com.google} <snip> $ dumpstate ======================================================== == dumpstate: 2012-08-18 23:39:53 ======================================================== Build: Gingerbread GWK74 - CyanogenMilestone2 Bootloader: 0x0000 Radio: unknown <snip> ------ MEMORY INFO (/proc/meminfo) ------ MemTotal: 487344 kB MemFree: 10436 kB <snip> 

All-in-One

Faça uma grande bola com tudo junto, de logcat a dumpstate:

$ bugreport > /mnt/sdcard/bugreport.txt 

Tenho certeza que você realmente deseja redirecionar esse último comando … xD

Algo sobre permissões

PS: Naturalmente, o acesso a essas informações pode exigir root, já que a maioria das fontes estão localizadas no armazenamento interno.

Comentários

  • Para obter mais informações sobre os comandos adb logcat, consulte aqui .
  • Ou apenas verifique nosso tag-wiki de registro em log @testing – que tem ainda mais referências 🙂
  • O link para " Depuração de despejos principais do Android " está morta, podemos obter uma alternativa?
  • @Spidey lá ' s sempre Archive.ORG para este tipo de problema (o link vai para uma cópia de trabalho t aqui).
  • Para qualquer pessoa como eu que seja novo no Android, para executar os comandos acima, você precisa primeiro executar $ adb shell para se conectar ao dispositivo através de um terminal. (Obviamente, certifique-se de que seu dispositivo esteja conectado ao computador e que a depuração USB tenha sido ativada.)

Resposta

A descobriu que CatLog exibe o log do Android um pouco melhor do que o aLogcat. Além de adb logcat, é isso que estou usando.

Comentários

  • Veja meu comentário acima, em relação aos aplicativos LogCat.
  • Eu atualizei a pergunta. Observe as informações de posição relativa (por exemplo, " acima " ) pode ficar desatualizado facilmente, pois a ordem das respostas pode mudar com o tempo.

Resposta

A método sem root, que funciona mesmo com novas versões do Android:

Pré-requisitos:

  • Linux, Windows ou Mac
  • Cabo USB para o seu dispositivo
  • Dispositivo Android

Instruções:

  1. Instale o driver do seu dispositivo para usar o adb. Tudo que você precisa, você encontrará aqui
  2. Baixe o executável adb para o seu sistema operacional. Ele faz parte do SDK do Android, mas você pode encontrar o executável adb individualmente.
  3. Conecte seu dispositivo Android.
  4. Habilite as opções do desenvolvedor .
  5. Habilite a depuração USB.
  6. Abra um prompt de comando (windows) ou terminal (linux / mac). Como fazer: No Windows: windows + r> digite “cmd” (sem aspas)> clique em entrar | No Linux: você não sabe como abrir um terminal? LOL | No Mac: digite Terminal no Spotlight e abra-o
  7. CD no diretório onde o O executável adb está localizado. No Windows: vá para o diretório onde você baixou o executável adb, Shift + clique com o botão direito e selecione “Abrir console” (ou semelhante) | No Linux / Mac: clique com o botão direito no diretório e selecione “Abrir terminal aqui” (ou simplesmente CD no diretório)
  8. Digite seu cmd / terminal: adb devices para verificar se seu dispositivo está conectado corretamente.
  9. Se seu dispositivo está selecionado corretamente, digite adb logcat para mostrar o poderoso e mágico logcat aka stacktrace.
  10. Reproduza seu erro (ou qualquer outro) em seu dispositivo.
  11. Logo em seguida, cole toda a janela cmd / terminal em um serviço de colagem como http://pastebin.com/ e envie-nos.

(Principalmente copiado de Leandros )

Um swer

Ele está localizado em /sdcard/bugreports.

Comentários

  • Eu ' nunca tive essa pasta em meu telefone … isso é específico de um fabricante ou dispositivo?
  • De Logcat – CyanogenMod Wiki : Você pode usar uma combinação mágica de teclas para criar um arquivo de relatório de bug em / sdcard / bugreports. Portanto, este parece ser um ) um pouco específico (provavelmente para o CM) eb) não é a resposta à pergunta, pois o OP procura " gerado automaticamente " uns.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *