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

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.

  • Olen luonut yksinkertaisen apuohjelman kerätäksesi lokit PC: ltä: gist.github.com/hrj/5983971
  • Logcat Extreme on mukava sovellus lokiin
  • 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 useita tombstone_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:

    1. Asenna laiteohjain ADB: n käyttöä varten. Löydät kaiken tarvitsemasi täältä
    2. Lataa adb-suoritettava käyttöjärjestelmäsi. Se on osa Android SDK: ta, mutta saatat löytää adb-suoritettavan erikseen.
    3. Liitä Android-laitteesi.
    4. Ota kehittäjäasetukset käyttöön .
    5. Ota käyttöön USB-virheenkorjaus.
    6. 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
    7. 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)
    8. Kirjoita cmd / terminal: adb devices varmistaaksesi, että laitteesi on kytketty oikein.
    9. Jos laitteesi on valittu oikein, kirjoita adb logcat näyttääksesi mahtavan ja maagisen logcat-nimisen pinonjäljen.
    10. Toista virheesi (tai mikä tahansa muu) laitteellasi.
    11. 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.

    Vastaa

    Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *