Există o mulțime de lucruri interesante în jurnalul de sistem Android, care este util în multe moduri

  • găsiți cauzele principale problemelor
  • identifică aplicațiile care nu se comportă

Cum pot vizualiza și examina jurnalul Android?

Comentarii

  • Comentariile nu sunt pentru discuții extinse; această conversație a fost mutată în chat .

Răspuns

Android 4.1 și versiuni ulterioare

Modul preferat este să descărcați SDK și să utilizați adb logcat (necesită activarea ” opțiuni pentru dezvoltatori ” pe dispozitiv).

Există aplicații disponibile pentru vizualizarea jurnalului complet al sistemului, cu toate acestea funcționează numai pe dispozitive înrădăcinate sau necesită o comandă manuală prin adb pentru a le face să funcționeze. Pentru mai multe informații vizualizați consultați această întrebare.

Android 4.0 și versiuni anterioare

Puteți descărca fie SDK și utilizați adb logcat sau obțineți Logcat Extrem din Magazin Google Play, care afișează jurnalul direct pe telefonul dvs.

Comentarii

  • Alternativ, puteți utiliza Terminal Emulator cu comanda ” logcat > /sdcard/log.txt” pentru scrierea continuă a jurnalului într-un fișier de pe SD Card. Acest lucru vă poate ajuta să descoperiți problemele cu repornirile aleatorii.
  • Punct bun. Unele telefoane tind să trimită spam jurnalului plin de informații banale, așa că, dacă doriți să minimizați dimensiunea fișierului și datele care trebuie parcurse, consultați secțiunea ” Filtrare ieșire jurnal ” pe developer.android.com/guide/developing/tools/adb.html#logcat
  • LogCat Apps doesn ‘ nu funcționează nimic cu JellyBean. Google a schimbat API-ul Android, aplicațiile nu mai au ‘ permisiunea de a citi jurnalele din alte aplicații decât ale lor.
  • Am creat un utilitar simplu pentru a colecta jurnale de pe un computer: gist.github.com/hrj/5983971
  • Logcat Extreme este aplicația drăguță pentru a vedea jurnalul

Răspuns

Locații fișier jurnal

Există mai multe directoare în care jurnalele (inclusiv cele din blocări) ar putea apărea – nu toate sunt standardizate (adică unele pot fi specifice ROM-ului).

  • /data/anr: Unele fișiere de urmărire par să ajungă aici (Dalvik scrie urmele stivei aici pe ANR, adică „Aplicația nu răspunde”, denumită „Închidere forțată”; vezi, de exemplu, extrase din jurnal aici )
  • /data/dontpanic pare a fi o locație standard (AOSP) și conține câteva jurnale de blocare, inclusiv urme (vezi de exemplu viaForensics și St. ackOverflow )
  • /data/kernelpanics este o altă locație – neavând nicio „panică de nucleu” pe dispozitivele mele Android, nu am văzut încă conținut acolo.
  • /data/panic/panic_daemon.config poate indica alte locații configurate – pe Droid 2 menționează /sdcard/panic_data/
  • Droid 2 menționat are, de asemenea, un director /data/panicreports (gol aici)
  • /data/tombstones poate conține mai multe tombstone_nn fișiere (cu nn fiind un serial, mărit cu fiecare fișier nou). Deoarece pietrele funerare sunt plasate pentru morți, se face aici pentru „procese moarte accidental” (adică prăbușite) – și este ceea ce se numește „core dumps” pe sistemele Linux / Unix. Cu toate acestea, nu toate aplicațiile creează pietre funerare; acest lucru trebuie activat în mod explicit de către dezvoltator (consultați Depanarea Android Core Dumps ).

S-ar putea să mai existe câteva locații care mi-a scăpat; dar întrucât majoritatea înregistrării se face pe tmpfs, aceste date se pierd cu o repornire și nu se potrivesc cu întrebarea OPs.

Comenzi jurnal pentru a fi utilizate cu un terminal app (sau adb)

Mai multe comenzi vă pot oferi o mulțime de informații. Pentru majoritatea acestora, este recomandat să le redirecționați către un fișier (> filename.ext) sau să le introduceți printr-un filtru (| grep search-for-this ):

Jurnal de kernel

Următoarele funcționează fără 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

Aici puteți, de exemplu specificați în ce zonă vă interesează – radio, evenimente …

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

Obținerea informațiilor despre dispozitiv

Și multe din acestea: Dispozitiv specific, informații despre cont, servicii …

$ 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

Faceți o minge mare cu totul împreună, de la logcat la dumpstate:

$ bugreport > /mnt/sdcard/bugreport.txt 

Sunt destul de sigur că doriți cu adevărat să redirecționați ultima comandă … xD

Ceva despre permisiuni

PS: Bineînțeles, accesul la aceste informații poate necesita root, deoarece majoritatea surselor sunt situate pe stocarea internă.

Comentarii

  • Pentru a obține mai multe informații despre comenzile adb logcat, consultați aici .
  • Sau pur și simplu verificați tag-wiki de înregistrare @testing – care are și mai multe referințe 🙂
  • Link-ul pentru ” Depanarea Android Core Dumps ” este moartă, putem obține o alternativă?
  • @Spidey there ‘ este întotdeauna Archive.ORG pentru acest tip de problemă (linkul merge la o copie de lucru t aici).
  • Pentru oricine altcineva ca mine care este nou în Android, pentru a rula comenzile de mai sus, trebuie mai întâi să executați $ adb shell pentru a vă conecta la dispozitiv printr-un terminal. (Desigur, asigurați-vă că dispozitivul este conectat la computer și că depanarea USB a fost activată.)

Răspuns

A constatat că CatLog afișează jurnalul Android puțin mai bine decât aLogcat. Pe lângă adb logcat, asta sunt ceea ce folosesc.

Comentarii

  • Vedeți comentariul meu de mai sus, în ceea ce privește aplicațiile LogCat.
  • Am actualizat întrebarea. Vă rugăm să rețineți că informațiile privind poziția relativă (de ex. ” de mai sus ” ) poate deveni cu ușurință depășit, deoarece ordinea răspunsurilor se poate schimba odată cu trecerea timpului.

Răspuns

A metodă fără root, care funcționează chiar și cu noile versiuni de Android:

Cerințe preliminare:

  • Linux, Windows sau Mac
  • Cablu USB pentru dispozitivul dvs.
  • Dispozitiv Android

Instrucțiuni:

  1. Instalați driverul dispozitivului pentru utilizarea adb. Tot ce aveți nevoie veți găsi aici
  2. Descărcați executabilul adb pentru sistemul dvs. de operare. Face parte din SDK-ul Android, dar este posibil să puteți găsi executabilul adb individual.
  3. Conectați dispozitivul Android.
  4. Activați opțiunile pentru dezvoltatori .
  5. Activați depanarea USB.
  6. Deschideți o comandă promt (windows) sau un terminal (linux / mac). Cum se face: Pe Windows: windows + r> introduceți „cmd” (fără ghilimele)> faceți clic pe Enter | Pe Linux: Nu știți cum să deschideți un terminal? LOL | Pe Mac: Tastați Terminal în Spotlight și deschideți-l
  7. CD în directorul unde se află executabilul adb. Pe Windows: Accesați directorul de unde ați descărcat executabilul adb, Shift + Faceți clic dreapta și selectați „Deschideți consola” (sau similar) | Pe Linux / Mac: Faceți clic dreapta în director și selectați „Deschideți terminalul aici” (sau pur și simplu CD în director)
  8. Tastați cmd / terminalul dvs.: adb devices pentru a verifica dacă dispozitivul este conectat corect.
  9. Dacă dispozitivul dvs. este selectat corect, tastați adb logcat pentru a afișa logcatul puternic și magic, denumit și stacktrace.
  10. Reproduceți eroarea (sau orice altceva) de pe dispozitiv.
  11. Imediat după aceea, lipiți întreaga fereastră cmd / terminal într-un serviciu de lipire precum http://pastebin.com/ și trimiteți-ne la noi.

(Copiat în cea mai mare parte din Leandros )

An swer

Se află în /sdcard/bugreports.

Comentarii

  • Eu ‘ nu am avut niciodată un astfel de folder pe telefonul meu … acest lucru este specific unui producător sau dispozitiv?
  • De la Logcat – CyanogenMod Wiki : Puteți utiliza o combinație de taste magice pentru a crea un fișier de raportare bug în / sdcard / bugreports. Deci, acesta pare să fie un ) un pic specific (probabil pentru CM) și b) nu răspunsul la întrebare, deoarece OP caută ” generat automat ” unele.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *