Android günlüğünü nasıl görüntüleyebilir ve inceleyebilirim?


109

Android sistem günlüğünde bir çok ilginç şey var, bu birçok yönden yardımcı oluyor

  • sorunların kök nedenlerini bulmak
  • yaramazlık uygulamalarını tanımlayın

Android günlüğünü nasıl görüntüleyebilir ve inceleyebilirim?


Yorumlar uzun tartışmalar için değildir; bu konuşma sohbete taşındı .
Matthew

Yanıtlar:


59

Android 4.1 ve daha yenisi

Tercih edilen yol SDK'yı indirmek ve kullanmaktır adb logcat(cihazda "geliştirici seçeneklerini" etkinleştirmeyi gerektirir).

Tam sistem günlüğünü görüntülemek için kullanılabilecek uygulamalar vardır, ancak yalnızca köklü aygıtlarda çalışırlar veya çalışması için el ile komut verilmesini gerektirir adb. Daha fazla bilgi için bu soruya bakınız.

Android 4.0 ve üstü

Günlükleri doğrudan telefonunuzda gösteren Google Play Store'dan SDK'yı indirebilir ve Logcat Extrem'i kullanabilir adb logcatveya alabilirsiniz .


2
Alternatif olarak, günlüğün SD Kartındaki bir dosyaya sürekli yazılması için "logcat> /sdcard/log.txt" komutuyla Terminal Emulator'ı kullanabilirsiniz. Bu, rastgele yeniden başlatmalarla ilgili sorunları çözmenize yardımcı olabilir.
Chahk

İyi bir nokta. Bazı telefonlar günlüğü önemsiz bilgilerle spam olarak eğilimindedir, bu nedenle dosya boyutlarını ve verileri en aza indirmek istiyorsanız developer.android.com/guide/developing/tools/adb.html
onik 11:11

LogCat Apps JellyBean ile herhangi bir şekilde çalışmaz. Google Android API’yı değiştirdi, uygulamalar artık kendi uygulamalarından başka uygulamalardan gelen günlükleri okuma iznine sahip değil.
Leandros

Bir PC'den Günlükleri almak için basit bir yardımcı program oluşturduk: gist.github.com/hrj/5983971
HRJ

Logcat Extreme günlüğü görmek için güzel bir uygulama
Arpit Patel

57

Günlük Dosyası konumları

Kütüklerin (çökmeler dahil olanlar dahil) görünebileceği birkaç dizin vardır - bunların hepsi standartlaştırılmamıştır (yani bazıları ROM'a özgü olabilir).

  • /data/anr: Bazı izleme dosyaları burada almak gibi (Dalvik ANR burada yığın izleri yazıyor, yani "Uygulama Yanıt Vermiyor" aka "Kuvvet-Close"; örneğin bkz alıntılar log burada )
  • /data/dontpanicStandart bir konum (AOSP) gibi görünüyor ve izleri içeren bazı kilitlenme günlükleri içeriyor (bkz. örneğin viaForensics ve StackOverflow )
  • /data/kernelpanics başka bir yer - Android cihazlarımda herhangi bir "çekirdek panik" olmadı, henüz orada içerik görmedim.
  • /data/panic/panic_daemon.configyapılandırılmış başka yerlere mayıs noktası - benim Droid 2 Sözü edilen/sdcard/panic_data/
  • Droid 2'de ayrıca bir /data/panicreportsdizin var (burada boş)
  • /data/tombstonesbirkaç tombstone_nndosya tutabilir ( nnseri halinde, her yeni dosyada artmış). Ölüler için mezar taşları yerleştirildiği için, burada “kazayla ölen süreçler” (yani kaza) için yapılır - ve Linux / Unix sistemlerinde “çekirdek dökümü” olarak adlandırılır. Ancak, tüm uygulamalar mezar taşları oluşturmaz; bunun geliştirici tarafından açıkça etkinleştirilmesi gerekir (bkz . Android Çekirdek Dökümlerini Hata Ayıklama ).

Benden kaçan başka yerler olabilir; ancak çoğu günlüğe kaydetme işleminin yapıldığı gibi tmpfs, bu veriler bir yeniden başlatma ile kaybolur ve OP sorusu ile eşleşmez.

Bir terminal uygulamasıyla (veya adb) kullanılacak komutları günlüğe kaydetme

Birkaç komut size tonlarca bilgi verebilir. Bunların çoğu için, onları bir dosyaya ( > filename.ext) yeniden yönlendirmek ya da bir filtre ( | grep search-for-this) ile borulamak önerilir :

Çekirdek günlüğü

Kök olmadan çalışanlar:

$ 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

Burada örneğin ilgilendiğiniz alanı belirtebilirsiniz - radyo, olaylar ...

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

Cihaz bilgisi alınıyor

Ve bunun tonu: Cihaz özellikleri, hesap bilgileri, hizmetler ...

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

Hepsi bir arada

Logcat’ten dumptate’e kadar her şeyle birlikte büyük bir top yapın:

$ bugreport > /mnt/sdcard/bugreport.txt

Bu son komutu gerçekten yönlendirmek istediğinden eminim ... xD

İzinlerle ilgili bir şey

Not: Doğal olarak, bu bilgilere erişim, kaynakların çoğu dahili depoda bulunduğundan, kök gerektirebilir.


Adb logcat komutları hakkında daha fazla bilgi edinmek için buraya bakın .
test

Ya da sadece logging-wiki @testingimizi kontrol edin - daha da fazla referansları var :)
Izzy

"Android Core Dumps Debugging" bağlantısı kesildi, alternatif bulabilir miyiz?
Spidey

1
@Spidey her zaman bu tür bir sorun için Archive.ORG var (bağlantı orada çalışan bir kopyaya gider).
Izzy

12

Bir tespit catlog Android aLogcat sonra biraz daha iyi log görüntüler. Ayrıca adb logcat, ben de onu kullanıyorum.


LogCat uygulamaları ile ilgili yukarıdaki yorumuma bakın.
Leandros 11:12

2
Soruyu güncelledim. Lütfen cevapların sırası zamanla değişebileceğinden, göreceli konum bilgilerinin (örneğin "yukarıda") kolayca eski haline gelebileceğini unutmayın.
Akış

3

Yeni Android sürümleriyle bile çalışan, köksüz bir yöntem:

Ön şartlar:

  • Linux, Windows veya Mac
  • Cihazınız için USB kablosu
  • Android Cihazı

Talimatlar:

  1. Adb kullanmak için aygıt sürücünüzü yükleyin. İhtiyacın olan her şeyi burada bulacaksın
  2. İşletim sisteminiz için çalıştırılabilir adb dosyasını indirin. Android SDK'nın bir parçasıdır, ancak adb'yi ayrı ayrı çalıştırılabilir bulabilirsiniz.
  3. Android cihazını bağlayın.
  4. Geliştirici seçeneklerini etkinleştirin .
  5. Usb hata ayıklamasını etkinleştir.
  6. Bir komut satırı (pencere) veya terminal (linux / mac) açın. Nasıl Yapılır: Windows'ta: windows + r> "cmd" girin (tırnak işaretleri olmadan)> enter | Linux'ta: Nasıl terminal açılacağını bilmiyor musunuz? LOL | Mac'te: TerminalSpotlight'a yazın ve açın
  7. Adb yürütülebilir dosyasının bulunduğu dizine CD. Windows'ta: Yürütülebilir adb dosyasını indirdiğiniz dizine gidin, Shift + Sağ Tıkla ve "Konsolu Aç" (veya benzeri) | Linux / Mac'te: Dizine sağ tıklayın ve "Terminali burada aç" ı seçin (veya dizine CD'yi kolayca yerleştirin).
  8. adb devicesCihazınızın doğru bağlandığını doğrulamak için cmd / terminalinizi girin:
  9. Cihazınız doğru seçildiyse, adb logcatgüçlü ve sihirli logcat aka stacktrace'i göstermek için yazın .
  10. Hatanızı (ya da her neyse) cihazınızda tekrarlayın.
  11. Hemen sonra, cmd / terminal penceresinin tamamını http://pastebin.com/ gibi bir yapıştırma hizmetine yapıştırın ve bize gönderin.

(Çoğunlukla Leandros'tan kopyalanmıştır )


2

Ücretsiz uygulama SysInfo ( Proje Sayfası ), sistem günlüklerini ve ayrıca e-posta, dropbox, NFC, vb. Yoluyla göndermek için eksiksiz bir sistem raporunu zip olarak görüntüler.


(Evet, neredeyse bir yıl geciktim, ama bunun bir söze ihtiyacı var)
JRobert

Her iki bağlantı şimdi koptu.
jk7

İkinci bağlantı (proje sayfası) hala benim için çalışıyor ancak içeriğindeki son girişler 2010'dan itibaren. Android, bir süre sonra değişiyor, o zamandan beri Sysinfo'nun işlevselliğini bozdu.
JRobert

-1

İçinde bulunur /sdcard/bugreports.


3
Telefonumda hiç böyle bir klasör yoktu, bu bir üretici veya cihaza özgü mü?
Matthew

2
Gönderen LogCat - CyanogenMod Wiki : Sen / sdcard / bugreports bir hata raporu dosyası oluşturmak için sihirli bir tuş kombinasyonunu kullanabilirsiniz. Öyleyse bu, a) biraz spesifik (muhtemelen CM'ye) ve b) OP'nin "otomatik olarak oluşturulan" ifadeleri aradığı gibi sorunun cevabını değil gibi görünüyor.
Izzy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.