Das Android-Systemprotokoll enthält viele interessante Dinge, die in vielerlei Hinsicht hilfreich sind.

  • Ursachen finden

Wie kann ich das Android-Protokoll anzeigen und untersuchen?

Kommentare

Antwort

Android 4.1 und neuer

Der bevorzugte Weg ist das Herunterladen des SDK und die Verwendung von adb logcat (erfordert die Aktivierung von “ Entwickleroptionen “ auf dem Gerät).

Für sind Apps verfügbar Anzeigen des vollständigen Systemprotokolls funktionieren jedoch nur auf gerooteten Geräten oder erfordern die Ausgabe eines manuellen Befehls über adb, damit sie funktionieren. Weitere Informationen finden Sie unter in dieser Frage.

Android 4.0 und älter

Sie können entweder die SDK und verwenden Sie adb logcat oder holen Sie sich Logcat Extrem vom Google Play Store, in dem das Protokoll direkt auf Ihrem Telefon angezeigt wird.

Kommentare

  • Alternativ können Sie den Terminal-Emulator mit dem Befehl logcat > /sdcard/log.txt“ zum kontinuierlichen Schreiben des Protokolls in eine Datei auf der SD Karte. Dies kann helfen, Probleme mit zufälligen Neustarts herauszufinden.
  • Guter Punkt. Einige Telefone neigen dazu, das Protokoll mit trivialen Informationen zu spammen. Wenn Sie also die Dateigröße und die Daten minimieren möchten, lesen Sie den Abschnitt “ Filtern der Protokollausgabe “ on developer.android.com/guide/developing/tools/adb.html#logcat
  • LogCat Apps funktioniert nicht ‚ funktioniert mit JellyBean nicht. Google hat die Android-API geändert. Apps ‚ haben nicht mehr die Berechtigung, Protokolle von anderen Apps als ihren eigenen zu lesen.
  • Ich habe ein einfaches Dienstprogramm zum Sammeln erstellt Protokolle von einem PC: gist.github.com/hrj/5983971
  • Logcat Extreme ist die nette App zum Anzeigen von Protokollen

Antwort

Speicherorte der Protokolldatei

Es gibt mehrere Verzeichnisse, in denen Protokolle (einschließlich der von Abstürzen) erstellt werden. Möglicherweise werden nicht alle standardisiert (dh einige sind möglicherweise ROM-spezifisch).

  • /data/anr: Einige Tracedateien scheinen hierher zu gelangen (Dalvik schreibt hier Stapelspuren auf ANR, dh „Anwendung reagiert nicht“, auch bekannt als „Force-Close“; siehe z. B. Protokollauszüge hier )
  • /data/dontpanic scheint ein Standardspeicherort (AOSP) zu sein und enthält einige Absturzprotokolle einschließlich Traces (siehe z. B. viaForensics und St. ackOverflow )
  • /data/kernelpanics ist ein anderer Ort – da ich auf meinen Android-Geräten keine „Kernel-Panik“ hatte, habe ich dort noch keinen Inhalt gesehen.
  • Die /data/panic/panic_daemon.config verweist möglicherweise auf andere konfigurierte Speicherorte. Auf meinem Droid 2 wird /sdcard/panic_data/
  • erwähnt

  • erwähnt, dass Droid 2 auch ein /data/panicreports -Verzeichnis hat (hier leer)
  • /data/tombstones kann mehrere tombstone_nn -Dateien (wobei nn eine serielle Datei ist, die mit jeder neuen Datei erhöht wird). Da Grabsteine für die Toten platziert werden, wird dies hier für „versehentlich gestorbene Prozesse“ (d. H. Abgestürzt) durchgeführt – und dies wird auf Linux / Unix-Systemen als „Core Dumps“ bezeichnet. Allerdings erstellen nicht alle Apps Grabsteine. Dies muss vom Entwickler explizit aktiviert werden (siehe Debuggen von Android Core Dumps ).

Möglicherweise gibt es weitere Speicherorte entkam mir; Da die meisten Protokollierungsvorgänge jedoch auf tmpfs ausgeführt werden, gehen diese Daten bei einem Neustart verloren und stimmen nicht mit der Frage des Betriebssystems überein.

Protokollieren Sie Befehle, die mit einem Terminal verwendet werden sollen app (oder adb)

Mit mehreren Befehlen erhalten Sie unzählige Informationen. Für die meisten von ihnen empfiehlt es sich, sie in eine Datei umzuleiten (> filename.ext) oder sie durch einen Filter zu leiten (| grep search-for-this) ):

Kernel-Protokoll

Folgendes funktioniert ohne 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

Hier können Sie zB Geben Sie an, für welchen Bereich Sie sich interessieren – Radio, Ereignisse …

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

Geräteinformationen abrufen

Und jede Menge davon: Gerät Besonderheiten, Kontoinformationen, Dienstleistungen …

$ 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

Machen Sie einen großen Ball mit allem zusammen, vom Logcat bis zum Dumpstate:

$ bugreport > /mnt/sdcard/bugreport.txt 

Ich bin mir ziemlich sicher, dass Sie diesen letzten Befehl wirklich umleiten möchten … xD

Etwas über Berechtigungen

PS: Natürlich erfordert der Zugriff auf diese Informationen möglicherweise root, da sich die meisten Quellen im internen Speicher befinden.

Kommentare

  • Weitere Informationen zu adb logcat-Befehlen finden Sie unter hier .
  • Oder überprüfen Sie einfach unser Protokollierungs-Tag-Wiki @testing – das enthält noch mehr Referenzen 🙂
  • Der Link für “ Debuggen von Android Core Dumps “ ist tot. Können wir dort eine Alternative finden?
  • @Spidey there ‚ ist immer Archive.ORG für diese Art von Problem (Link führt zu einer Arbeitskopie t Hier).
  • Für alle anderen wie mich, die neu in Android sind, müssen Sie zum Ausführen der oben genannten Befehle zuerst $ adb shell ausführen, um eine Verbindung zum Gerät herzustellen über ein Terminal. (Stellen Sie natürlich sicher, dass Ihr Gerät an Ihren Computer angeschlossen ist und das USB-Debugging aktiviert ist.)

Antwort

A hat festgestellt, dass CatLog das Android-Protokoll etwas besser anzeigt als aLogcat. Neben adb logcat verwende ich das.

Kommentare

  • Siehe meinen Kommentar oben, In Bezug auf LogCat-Apps.
  • Ich habe die Frage aktualisiert. Bitte beachten Sie die relativen Positionsinformationen (z. B. “ über “ ) kann leicht veraltet sein, da sich die Reihenfolge der Antworten mit der Zeit ändern kann.

Antwort

A. Methode ohne Root, die auch mit neuen Android-Versionen funktioniert:

Voraussetzungen:

  • Linux-, Windows- oder Mac
  • USB-Kabel für Ihr Gerät
  • Android-Gerät

Anleitung:

  1. Installieren Sie Ihren Gerätetreiber für die Verwendung von adb. Alles, was Sie benötigen, finden Sie hier
  2. Laden Sie die ausführbare ADB-Datei für Ihr Betriebssystem herunter. Sie ist Teil des Android SDK, aber Sie können die ausführbare ADB-Datei möglicherweise einzeln finden.
  3. Schließen Sie Ihr Android-Gerät an.
  4. Aktivieren Sie die Entwickleroptionen .
  5. Aktivieren Sie das USB-Debugging.
  6. Öffnen Sie eine Eingabeaufforderung (Windows) oder ein Terminal (Linux / Mac). Vorgehensweise: Unter Windows: Windows + R> Geben Sie „cmd“ (ohne Anführungszeichen) ein> klicken Sie auf die Eingabetaste | Unter Linux: Sie wissen nicht, wie man ein Terminal öffnet? LOL | Auf Mac: Geben Sie Terminal in Spotlight ein und öffnen Sie die
  7. CD in dem Verzeichnis, in dem sich das Terminal befindet Die ausführbare Datei von adb befindet sich. Unter Windows: Wechseln Sie in das Verzeichnis, in das Sie die ausführbare Datei von adb heruntergeladen haben, mit Umschalt + Rechtsklick und wählen Sie „Konsole öffnen“ (oder ähnlich). | Unter Linux / Mac: Klicken Sie mit der rechten Maustaste in das Verzeichnis und wählen Sie „Terminal hier öffnen“. (oder einfach CD in das Verzeichnis)
  8. Geben Sie Ihr cmd / terminal ein: adb devices, um zu überprüfen, ob Ihr Gerät ordnungsgemäß angeschlossen ist.
  9. Wenn Wenn Ihr Gerät richtig ausgewählt ist, geben Sie adb logcat ein, um den mächtigen und magischen Logcat alias Stacktrace anzuzeigen.
  10. Reproduzieren Sie Ihren Fehler (oder was auch immer) auf Ihrem Gerät.
  11. Fügen Sie gleich danach das gesamte cmd / terminal-Fenster in einen Einfügedienst wie http://pastebin.com/ und ein Senden Sie es uns.

(Meistens kopiert von Leandros )

An swer

Es befindet sich in /sdcard/bugreports.

Kommentare

  • Ich ‚ hatte noch nie einen solchen Ordner auf meinem Telefon … ist dies spezifisch für einen Hersteller oder ein Gerät?
  • Von Logcat – CyanogenMod Wiki : Sie können eine magische Tastenkombination verwenden, um eine Bugreport-Datei in / sdcard / bugreports zu erstellen. Dies scheint also eine zu sein ) ein bisschen spezifisch (wahrscheinlich für CM) und b) nicht die Antwort auf die Frage, da das OP nach “ generiert automatisch “ diejenigen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.