Come posso visualizzare ed esaminare il registro Android?


109

Ci sono molte cose interessanti nel registro di sistema di Android, che sono utili in molti modi

  • trovare le cause alla radice dei problemi
  • identificare le app che si comportano male

Come posso visualizzare ed esaminare il registro Android?


I commenti non sono per una discussione estesa; questa conversazione è stata spostata in chat .
Matteo Leggi il

Risposte:


59

Android 4.1 e versioni successive

Il modo preferito è scaricare l' SDK e utilizzarlo adb logcat(richiede l'attivazione di "opzioni sviluppatore" sul dispositivo).

Esistono app disponibili per visualizzare il registro di sistema completo, tuttavia funzionano solo su dispositivi rooted o richiedono di emettere un comando manuale adbper farle funzionare. Per ulteriori informazioni, vedere questa domanda.

Android 4.0 e versioni precedenti

Puoi scaricare l' SDK e utilizzare adb logcato ottenere Logcat Extrem dal Google Play Store, che mostra il registro direttamente sul tuo telefono.


2
In alternativa, è possibile utilizzare Terminal Emulator con il comando "logcat> /sdcard/log.txt" per la scrittura continua del registro in un file sulla scheda SD. Questo può aiutare a capire i problemi con i riavvii casuali.
Chahk,

Buon punto. Alcuni telefoni tendono a spammare il registro pieno di informazioni banali, quindi se desideri ridurre al minimo le dimensioni del file e i dati da consultare, consulta la sezione "Output del registro dei filtri" su developer.android.com/guide/developing/tools/adb.html #logcat
onik,

Le app LogCat non funzionano affatto con JellyBean. Google ha modificato l'API Android, le app non dispongono più dell'autorizzazione per leggere i registri da altre app diverse dalla propria.
Leandros,

Ho creato una semplice utility per raccogliere i registri da un PC: gist.github.com/hrj/5983971
HRJ

Logcat Extreme è la bella app per vedere il registro
Arpit Patel,

57

Posizioni dei file di registro

Esistono diverse directory in cui potrebbero comparire i registri (compresi quelli provenienti da arresti anomali) - non tutte sono standardizzate (ad esempio alcune potrebbero essere specifiche della ROM).

  • /data/anr: Alcuni file di traccia sembrano arrivare qui (Dalvik scrive le tracce dello stack qui su ANR, ovvero "Applicazione non rispondente" alias "Chiusura forzata"; vedere ad esempio gli estratti del registro qui )
  • /data/dontpanicsembra essere un percorso standard (AOSP) e contiene alcuni registri degli arresti anomali che includono tracce (vedere ad esempio viaForensics e StackOverflow )
  • /data/kernelpanics è un'altra posizione - non avendo avuto alcun "panico nel kernel" sui miei dispositivi Android, non ho ancora visto alcun contenuto.
  • il /data/panic/panic_daemon.configpunto di maggio ad altre posizioni configurate - sul mio Droid 2 si parla/sdcard/panic_data/
  • menzionato Droid 2 ha anche una /data/panicreportsdirectory (vuota qui)
  • /data/tombstonespuò contenere diversi tombstone_nnfile ( nnessendo un seriale, aumentato con ogni nuovo file). Dato che le pietre tombali vengono collocate per i morti, qui viene fatto per "processi morti per caso" (ovvero crash) - ed è ciò che viene chiamato "core dump" sui sistemi Linux / Unix. Tuttavia, non tutte le app creano lapidi; questo deve essere esplicitamente abilitato dallo sviluppatore (vedi Debug Android Core Dump ).

Potrebbero esserci altre posizioni che mi sono sfuggite; ma poiché la maggior parte della registrazione viene eseguita tmpfs, questi dati vengono persi con un riavvio e non corrisponderebbero alla domanda dei PO.

Registra i comandi da utilizzare con un'app terminale (o adb)

Numerosi comandi possono fornirti tonnellate di informazioni. Per la maggior parte di essi, è consigliabile reindirizzarli a un file ( > filename.ext) o reindirizzarli attraverso un filtro ( | grep search-for-this):

Registro del kernel

Il seguente funziona senza 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

Qui puoi ad esempio specificare a quale area sei interessato - radio, eventi ...

# 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>

Ottenere informazioni sul dispositivo

E tonnellate: specifiche del dispositivo, informazioni sull'account, servizi ...

$ dumpsys
Currently running services:
  LocationProxyService
  SurfaceFlinger
  accessibility
  account
  activity
<snip>
DUMP OF SERVICE account:
Accounts:
  1 Account {name=xxxxxxx@googlemail.com, 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>

Tutto in uno

Crea una grande palla con tutto insieme, dal logcat al dumpstate:

$ bugreport > /mnt/sdcard/bugreport.txt

Sono abbastanza sicuro che vuoi davvero reindirizzare l'ultimo comando ... xD

Qualcosa sulle autorizzazioni

PS: Naturalmente, l'accesso a tali informazioni potrebbe richiedere il root, poiché la maggior parte delle fonti si trova nella memoria interna.


Per ulteriori informazioni sui comandi di logcat adb, consultare qui .
test

O semplicemente controlla il nostro tag di registrazione-wiki @testing - che ha ancora più riferimenti :)
Izzy

Il link per "Debug Android Core Dump" è morto, possiamo trovare un'alternativa?
Spidey

1
@Spidey c'è sempre Archive.ORG per questo tipo di problema (il link va a una copia funzionante lì).
Izzy

12

È emerso che CatLog mostra il registro Android un po 'meglio di aLogcat. Inoltre adb logcat, è quello che sto usando.


Vedi il mio commento sopra, riguardo alle app LogCat.
Leandros,

2
Ho aggiornato la domanda. Si noti che le informazioni relative alla posizione (ad es. "Sopra") possono facilmente diventare obsolete, poiché l'ordine delle risposte potrebbe cambiare nel tempo.
Flusso

3

Un metodo senza root, che funziona anche con le nuove versioni di Android:

Prerequisiti:

  • Linux, Windows o Mac
  • Cavo USB per il tuo dispositivo
  • Dispositivo Android

Istruzioni:

  1. Installa il tuo driver di dispositivo per l'utilizzo di adb. Tutto ciò di cui hai bisogno lo troverai qui
  2. Scarica eseguibile adb per il tuo sistema operativo. Fa parte dell'SDK di Android, ma potresti trovare individualmente l'eseguibile adb.
  3. Collega il tuo dispositivo Android.
  4. Abilita le opzioni dello sviluppatore .
  5. Abilita debug USB.
  6. Apri un prompt dei comandi (windows) o un terminale (linux / mac). Come farlo: Su Windows: windows + r> inserisci "cmd" (senza virgolette)> fai clic su invio | Su Linux: non sai come aprire un terminale? LOL | Su Mac: digita TerminalSpotlight e aprilo
  7. CD nella directory in cui si trova l'eseguibile adb. Su Windows: vai alla directory in cui hai scaricato l'eseguibile adb, Maiusc + tasto destro del mouse e seleziona "Apri console" (o simile) | Su Linux / Mac: fai clic con il pulsante destro del mouse nella directory e seleziona "Apri terminale qui" (o semplicemente CD nella directory)
  8. Digita il tuo cmd / terminale: adb devicesper verificare che il tuo dispositivo sia correttamente collegato.
  9. Se il dispositivo è selezionato correttamente, digitare adb logcatper mostrare il logcat potente e magico aka stacktrace.
  10. Riproduci il tuo errore (o qualsiasi altra cosa) sul tuo dispositivo.
  11. Subito dopo, incolla l'intera finestra cmd / terminal in un servizio incolla come http://pastebin.com/ e invialo a noi.

(Principalmente copiato da Leandros )


2

L'app gratuita SysInfo ( Pagina del progetto ) visualizzerà i registri di sistema e comprimerà un rapporto di sistema completo da inviare via e-mail, dropbox, NFC, ecc. Per non parlare di molte altre informazioni di sistema interessanti.


(Sì, sono in ritardo di quasi un anno, ma questo ha bisogno di una menzione).
JRobert,

Entrambi i collegamenti sono interrotti ora.
jk7

Il secondo collegamento (pagina del progetto) funziona ancora per me, ma le ultime voci in esso sono del 2010. Android cambia da allora in poi ha rotto molte funzionalità di Sysinfo.
JRobert

-1

Si trova in /sdcard/bugreports.


3
Non ho mai avuto una cartella del genere sul mio telefono ... è specifica per un produttore o dispositivo?
Matthew Leggi il

2
Da Logcat - CyanogenMod Wiki : è possibile utilizzare una combinazione di tasti magici per creare un file bugreport in / sdcard / bugreports. Quindi questa sembra essere a) un po 'specifica (probabilmente a CM) eb) non la risposta alla domanda, poiché l'OP cerca quelli "generati automaticamente".
Izzy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.