Ci sono molte cose interessanti nel registro di sistema di Android, che sono utili in molti modi
- trovare le cause alla radice di problemi
- identificare app che si comportano male
Come posso visualizzare ed esaminare il registro di Android?
Commenti
- I commenti non sono per discussioni estese; questa conversazione è stata spostata nella chat .
Risposta
Android 4.1 e versioni successive
Il modo migliore è scaricare l SDK e utilizzare adb logcat
(richiede lattivazione delle ” opzioni sviluppatore ” sul dispositivo).
Sono disponibili app per visualizzando il registro di sistema completo, tuttavia funzionano solo su dispositivi rooted o richiedono di inviare un comando manuale tramite adb
per farli funzionare. Per ulteriori informazioni, visualizza vedi questa domanda.
Android 4.0 e versioni precedenti
Puoi scaricare SDK e utilizza adb logcat
o ottieni Logcat Extrem dal Google Play Store, che mostra il registro direttamente sul tuo telefono.
Commenti
- In alternativa, puoi utilizzare Terminal Emulator con il comando ” logcat > /sdcard/log.txt” per la scrittura continua del log in un file sulla SD Carta. Questo può aiutare a risolvere i problemi con i riavvii casuali.
- 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 esaminare, controlla la sezione ” Filtro output log ” su developer.android.com/guide/developing/tools/adb.html#logcat
- LogCat Apps non funziona ‘ t funziona in qualsiasi momento con JellyBean. Google ha cambiato lAPI Android, le app don ‘ non hanno più lautorizzazione a leggere i log di altre app oltre alla propria.
- Ho creato una semplice utility per raccogliere log da un PC: gist.github.com/hrj/5983971
- Logcat Extreme è la bella app per vedere i log
Risposta
Posizioni dei file di registro
Esistono diverse directory in cui i registri (inclusi quelli degli arresti anomali) potrebbero apparire – non tutti sono standardizzati (cioè alcuni potrebbero essere specifici della ROM).
-
/data/anr
: alcuni file di traccia sembrano arrivare qui (Dalvik scrive le tracce dello stack qui su ANR, ad esempio “Applicazione non risponde” aka “Chiusura forzata”; vedere ad es. Estratti di log qui ) -
/data/dontpanic
sembra essere una posizione standard (AOSP) e contiene alcuni log degli arresti anomali, comprese le tracce (vedi ad esempio viaForensics e St. ackOverflow ) -
/data/kernelpanics
è unaltra posizione: non avendo avuto alcun “kernel panic” sui miei dispositivi Android, non ho ancora visto alcun contenuto lì. -
/data/panic/panic_daemon.config
potrebbe puntare ad altre posizioni configurate: sul mio Droid 2 menziona/sdcard/panic_data/
- Droid 2 menzionato ha anche una
/data/panicreports
directory (vuota qui) -
/data/tombstones
può contenere diversitombstone_nn
file (dovenn
è un seriale, aumentato con ogni nuovo file). Quando le lapidi vengono posizionate per i morti, viene fatto qui per “processi morti per sbaglio” (cioè crash) – ed è ciò che viene chiamato “core dump” sui sistemi Linux / Unix. Tuttavia, non tutte le app creano lapidi; deve essere esplicitamente abilitato dallo sviluppatore (vedere Debug di Android Core Dump ).
Potrebbero esserci altre posizioni che mi è sfuggito; ma poiché la maggior parte della registrazione viene eseguita su tmpfs
, questi dati vengono persi con un riavvio e non corrisponderebbero alla domanda degli OP.
Comandi di log da utilizzare con un terminale app (o adb)
Diversi 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 es specifica 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 tantissime cose: Dispositivo specifiche, informazioni sullaccount, servizi …
$ 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
Crea una grande palla con tutto insieme, da logcat a dumpstate:
$ bugreport > /mnt/sdcard/bugreport.txt
Sono abbastanza sicuro che tu voglia davvero reindirizzare lultimo comando … xD
Qualcosa sui permessi
PS: Naturalmente, laccesso a queste informazioni potrebbe richiedere root, poiché la maggior parte delle fonti si trova nella memoria interna.
Commenti
- Per ottenere ulteriori informazioni sui comandi adb logcat, vedere qui .
- Oppure controlla il nostro logging tag-wiki @testing – che ha ancora più riferimenti 🙂
- Il link per ” Il debug di Android Core Dump ” è morto, possiamo trovare unalternativa?
- @Spidey lì ‘ s sempre Archive.ORG per questo tipo di problema (il link rimanda a una copia funzionante t qui).
- Per chiunque altro come me sia nuovo su Android, per eseguire i comandi precedenti devi prima eseguire
$ adb shell
per connetterti al dispositivo tramite un terminale. (Ovviamente, assicurati che il tuo dispositivo sia collegato al computer e che il debug USB sia stato attivato.)
Risposta
È stato rilevato che CatLog visualizza il registro di Android un po meglio di aLogcat. Oltre a adb logcat
, è quello che sto usando.
Commenti
- Vedi il mio commento sopra, per quanto riguarda le app LogCat.
- Ho aggiornato la domanda. Tieni presente che le informazioni sulla posizione relativa (ad es. ” sopra ” ) possono facilmente diventare obsoleti, poiché lordine delle risposte potrebbe cambiare con il tempo.
Risposta
A 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:
- Installa il driver del dispositivo per lutilizzo di adb. Troverai tutto ciò di cui hai bisogno qui
- Scarica leseguibile adb per il tuo sistema operativo. Fa parte di Android SDK, ma potresti riuscire a trovare leseguibile adb singolarmente.
- Collega il tuo dispositivo Android.
- Abilita le opzioni sviluppatore .
- Abilita il debug USB.
- Apri un comando promt (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
Terminal
in Spotlight e aprilo - CD nella directory in cui Leseguibile adb si trova. Su Windows: vai alla directory in cui hai scaricato leseguibile adb, Maiusc + clic destro e seleziona “Apri console” (o simile) | Su Linux / Mac: fai clic con il pulsante destro nella directory e seleziona “Apri terminale qui” (o semplicemente CD nella directory)
- Digita il tuo cmd / terminal:
adb devices
per verificare che il tuo dispositivo sia collegato correttamente. - Se il tuo dispositivo è selezionato correttamente, digita
adb logcat
per mostrare il potente e magico logcat aka stacktrace. - Riproduci il tuo errore (o qualsiasi altra cosa) sul tuo dispositivo.
- Subito dopo, incolla lintera finestra di cmd / terminal in un servizio incolla come http://pastebin.com/ e invialo a noi.
(Per lo più copiato da Leandros )
An swer
Si trova in /sdcard/bugreports
.
Commenti
- Io ‘ non ho mai avuto una cartella del genere sul mio telefono … è specifica per un produttore o un dispositivo?
- Da Logcat – CyanogenMod Wiki : Puoi utilizzare una combinazione di tasti magici per creare un file di segnalazione bug in / sdcard / bugreports. Quindi questo sembra essere un ) un po specifico (probabilmente per CM) eb) non la risposta alla domanda, poiché lOP cerca ” generato automaticamente ” quelli.