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
- Os comentários não são para discussão extensa; esta conversa foi movida para o chat .
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áriostombstone_nn
arquivos (comnn
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:
- Instale o driver do seu dispositivo para usar o adb. Tudo que você precisa, você encontrará aqui
- 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.
- Conecte seu dispositivo Android.
- Habilite as opções do desenvolvedor .
- Habilite a depuração USB.
- 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 - 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)
- Digite seu cmd / terminal:
adb devices
para verificar se seu dispositivo está conectado corretamente. - Se seu dispositivo está selecionado corretamente, digite
adb logcat
para mostrar o poderoso e mágico logcat aka stacktrace. - Reproduza seu erro (ou qualquer outro) em seu dispositivo.
- 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.