Android-järjestelmälokissa on paljon mielenkiintoisia juttuja, joista on hyötyä monin tavoin.
- löytää syyt ongelmista
- tunnistaa väärin käyttäytyvät sovellukset
Kuinka voin tarkastella ja tutkia Android-lokia?
Kommentit
- Kommentteja ei ole laajennettu keskustelu; tämä keskustelu on siirretty chatiin .
Vastaa
Android 4.1 ja uudemmat
Ensisijainen tapa on ladata SDK ja käyttää adb logcat
(vaatii aktivoimaan " -kehittäjäasetukset " laitteella).
Kohteille on käytettävissä sovelluksia Tarkasteltaessa koko järjestelmälokia ne toimivat kuitenkin vain juurtuneilla laitteilla tai edellyttävät manuaalisen komennon antamista adb
kautta, jotta ne toimisivat. Lisätietoja näkymästä on tässä kysymyksessä.
Android 4.0 ja vanhemmat
Voit joko ladata SDK ja käytä adb logcat
tai hae Logcat Extrem Google Play Store, joka näyttää lokin suoraan puhelimellasi.
Kommentit
- Vaihtoehtoisesti voit käyttää pääteemulaattoria komennolla " logcat > /sdcard/log.txt" lokin jatkuvaan kirjoittamiseen SD-tiedostoon Kortti. Tämä voi auttaa selvittämään satunnaisten uudelleenkäynnistysten ongelmat.
- Hyvä asia. Joissakin puhelimissa on yleensä roskapostia lokista, joka on täynnä triviaalia tietoa, joten jos haluat pienentää tiedostokokoa ja tietoja, tutustu osioon " Lokilähdön suodatus " developer.android.com/guide/developing/tools/adb.html#logcat
- LogCat-sovelluksissa ei ole ' ei toimi anymory JellyBeanin kanssa. Google muutti Android-sovellusliittymää, sovelluksilla <
ei ole enää lupaa lukea muiden kuin omien sovellusten lokeja.
Vastaa
Lokitiedostojen sijainnit
Lokeja (myös kaatumisia) on useita hakemistoja saattaa näkyä – kaikki eivät ole standardoituja (ts. jotkut saattavat olla ROM-kohtaisia).
-
/data/anr
: Jotkut jäljitystiedostot näyttävät saapuvan tähän (Dalvik kirjoittaa pinon jäljet tähän ANR: ään, ts. ”Application Not Responding” eli ”Force-Close”; katso esim. Lokilohkot täältä ) -
/data/dontpanic
näyttää olevan vakio sijainti (AOSP) ja sisältää joitain kaatumislokeja, mukaan lukien jäljet (katso esim. viaForensics ja St ackOverflow ) -
/data/kernelpanics
on toinen sijainti – koska Android-laitteillani ei ollut ydinpaniikkia, en nähnyt siellä vielä sisältöä. -
/data/panic/panic_daemon.config
saattaa osoittaa muita määritettyjä sijainteja – Droid 2: ssa mainitaan/sdcard/panic_data/
- mainitussa Droid 2: ssa on myös
/data/panicreports
-hakemisto (tyhjä tässä) -
/data/tombstones
voi olla useitatombstone_nn
-tiedostot (nn
on sarja, kasvaa jokaisen uuden tiedoston kanssa). Kun hautakivet asetetaan kuolleille, se tehdään täällä ”vahingossa kuolleiden prosessien” (eli kaatuneiden) vuoksi – ja siihen viitataan ”ydinjätteinä” Linux / Unix-järjestelmissä. Kaikki sovellukset eivät kuitenkaan luo hautakiviä; kehittäjän on sallittava tämä nimenomaisesti (katso Android Core Dumpien virheenkorjaus ).
Saattaa olla joitain muita sijainteja, jotka pakeni minut; mutta koska suurin osa kirjaamisesta tapahtuu osoitteessa tmpfs
, nämä tiedot menetetään uudelleenkäynnistyksen yhteydessä, eivätkä ne sovi yhteen OP-kysymyksen kanssa.
Lokikomennot, joita käytetään päätelaitteen kanssa sovellus (tai adb)
Useat komennot antavat sinulle paljon tietoa. Suurimmalle osalle niistä on suositeltavaa ohjata ne uudelleen tiedostoon (> filename.ext
) tai siirtää ne suodattimen läpi (| grep search-for-this
):
Ytimen loki
Seuraava toimii ilman juuria:
$ 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
Täällä voit esim määritä mikä alue sinua kiinnostaa – radio, tapahtumat …
# 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>
Laitetietojen saaminen
Ja paljon sitä: Laite yksityiskohdat, tilitiedot, palvelut …
$ 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
Tee iso pallo kaikesta yhdessä, lokikissasta kaatopaikkaan:
$ bugreport > /mnt/sdcard/bugreport.txt
Olen melko varma, että haluat todella ohjata tuon viimeisen komennon … xD
Jotain käyttöoikeuksista
PS: Luonnollisesti pääsy näihin tietoihin voi vaatia juuria, koska suurin osa lähteistä sijaitsee sisäisessä tallennustilassa.
Kommentit
- Saat lisää oivalluksia adb logcat -komennoista katso täältä .
- Tai tarkista vain -lokitunniste-wiki @testimme – siinä on vielä enemmän viitteitä 🙂
- Linkki kohteelle " Android-ydinjätteiden virheenkorjaus " on kuollut. Voimmeko löytää vaihtoehdon?
- @Spidey siellä ' s aina Archive.ORG tällaiselle ongelmalle (linkki menee työkopioon t täällä).
- Kaikille muille kuin minä, joka on uusi Android-käyttäjä, yllä olevien komentojen suorittamiseksi sinun on ensin suoritettava
$ adb shell
muodostaaksesi yhteyden laitteeseen. terminaalin kautta. (Varmista tietysti, että laitteesi on kytketty tietokoneeseesi ja että USB-virheenkorjaus on käytössä.)
Vastaa
Todettiin, että CatLog näyttää Android-lokin hieman paremmin kuin aLogcat. adb logcat
: n lisäksi sitä käytän.
Kommentit
- Katso kommenttini yllä, LogCat-sovelluksista.
- Olen päivittänyt kysymyksen. Huomaa, että suhteelliset sijaintitiedot (esim. " yllä " ) voi helposti vanhentua, koska vastausten järjestys voi muuttua ajan myötä.
Vastaa
A menetelmä ilman juuria, joka toimii myös uusien Android-versioiden kanssa:
Edellytykset:
- Linux, Windows tai Mac
- Laitteen USB-kaapeli
- Android-laite
Ohjeet:
- Asenna laiteohjain ADB: n käyttöä varten. Löydät kaiken tarvitsemasi täältä
- Lataa adb-suoritettava käyttöjärjestelmäsi. Se on osa Android SDK: ta, mutta saatat löytää adb-suoritettavan erikseen.
- Liitä Android-laitteesi.
- Ota kehittäjäasetukset käyttöön .
- Ota käyttöön USB-virheenkorjaus.
- Avaa komentokehote (Windows) tai pääte (linux / mac). Kuinka tehdä se: Windows: Windows + r> kirjoita ”cmd” (ilman lainausmerkkejä)> napsauta Enter | Linux: Etkö osaa avata päätelaitetta? LOL | Mac: Kirjoita
Terminal
Spotlightiin ja avaa se - CD hakemistoon, jossa adb-suoritettava tiedosto sijaitsee. Windows: Siirry hakemistoon, johon latasit adb-suoritettavan, Vaihto + hiiren kakkospainikkeella ja valitse ”Avaa konsoli” (tai vastaava) | Linux / Mac: Napsauta hiiren kakkospainikkeella hakemistoa ja valitse ”Avaa pääte täällä (tai yksinkertaisesti CD hakemistoon)
- Kirjoita cmd / terminal:
adb devices
varmistaaksesi, että laitteesi on kytketty oikein. - Jos laitteesi on valittu oikein, kirjoita
adb logcat
näyttääksesi mahtavan ja maagisen logcat-nimisen pinonjäljen. - Toista virheesi (tai mikä tahansa muu) laitteellasi.
- Liitä koko cmd / pääte-ikkuna heti sen jälkeen paste-palveluun, kuten http://pastebin.com/ ja lähetä se meille.
(Kopioitu enimmäkseen Leandrosista )
An swer
Se sijaitsee paikassa /sdcard/bugreports
.
Kommentit
- Minulla ' ei ole koskaan ollut tällaista kansiota puhelimessani … onko kyse vain valmistajasta tai laitteesta?
- Lähettäjä Logcat – CyanogenMod Wiki : Voit luoda taika-avainyhdistelmällä virheraporttitiedoston kansioon / sdcard / bugreports. Joten tämä näyttää olevan ) vähän spesifinen (luultavasti CM: lle), ja b) ei vastausta kysymykseen, koska OP etsii automaattisesti generoitua " " yksi.