Haben Sie schon einmal erlebt, dass Ihre Lieblings-App plötzlich abgestürzt ist? Möchten Sie dem Entwickler beim Debuggen helfen, was passiert ist? Erfahren Sie in unserem Leitfaden, wie Sie Logcats erfassen und filtern.
Kroaten schwenken eine EU-Flagge, während sie am 30. Juni 2013 auf dem Ban-Jelesic-Platz in Zagreb den Beitritt Kroatiens zur Europäischen Union feiern. Zehntausende Kroaten jubelten am Sonntag um Mitternacht (2200 GMT) dem Beitritt des Landes zur Europäischen Union zu, fast zwei Jahrzehnte nach dem Ende des blutigen Unabhängigkeitskrieges der ehemaligen jugoslawischen Republik. AFP-FOTO / STRINGER
Es ist uns allen schon einmal passiert. Es ist keine Schande, es zuzugeben. Manchmal stürzen Android-Apps ab. Egal, ob Sie ein komplett standardmäßiges Gerät zum Ausführen von Google Maps oder ein hochgradig angepasstes ROM mit einem Xposed-Modul verwenden Verbessern Sie Google Hangouts, Anwendungsabstürze und andere Probleme können auftreten und sogar zu einem ziemlichen Hindernis werden. Dies gilt insbesondere für die Entwicklung kleinerer Optimierungen und Anwendungen, wie sie auf unserer Website zahlreich zu finden sind. Wenn Probleme auftreten, ist die Bereitstellung einer der konstruktivsten und hilfreichsten Erkenntnisse, die der Benutzer dem Entwickler über die Art des Absturzes geben kann
Logcat. Obwohl sie für Entwickler äußerst hilfreich sind, kann die Beschaffung dieser Informationen für einen normalen Benutzer etwas entmutigend wirken.Typischerweise miteinbeziehend Befehlszeilentools über ADB, ist Logcat für viele Benutzer unerreichbar, die kaum oder gar keine Erfahrung mit der Befehlszeile haben. Durch die Veröffentlichung bestimmter Apps wurde jedoch die Beteiligung von ADB-Befehlen beim Abrufen und Senden eines Logcat eliminiert oder zumindest stark reduziert, sodass dies nur noch ein paar Fingertipps auf den Bildschirm erfordert. In unserer nie endenden Mission, die Entwicklung für Entwickler zu unterstützen, finden Sie hier einen Leitfaden für Einsteiger, der Benutzern beibringt, wie man einen Logcat sendet.
Was ist ein Logcat und wie ziehen wir einen?
Ein Logcat ist ein ADB-Shell-Tool, mit dem ein Protokoll aller Systemereignisse erstellt wird. Dazu gehören Fehler, Warnungen, Stack-Traces und allgemeine Systemereignisse. Wenn ein Fehler auftritt, werden in diesem Protokoll wichtige Informationen zur Fehlerquelle ausgegeben, was es zu einem sehr nützlichen Tool zur Fehlerbehebung macht. Normalerweise werden diese über ADB-Befehle abgerufen und gefiltert. Allerdings sind Apps wie aLogcat, Katalog, und unser bevorzugtes Tool für diesen Artikel, Matloghaben Benutzern den Aufwand erspart, indem sie diese Befehlstools in die GUI einer im Play Store herunterladbaren App kompiliert haben.
Wie bereits erwähnt, verwenden wir Matlog zum Sammeln von Logcats. Matlog wurde aufgrund seiner schnörkellosen und dennoch benutzerfreundlichen Oberfläche ausgewählt und vom XDA-Junior-Mitglied erstellt plusCubed und basierend auf Nolan Lawsons Open-Source-App Catlog. Wie Catlog, Matlog kann sein aus der Quelle zusammengestellt, oder kostenlos im Google Play Store heruntergeladen. Obwohl Sie durch das Rooten einen Schritt während der Einrichtung überspringen können, Zum Sammeln von Logcats ist kein Root-Zugriff erforderlich. Wenn Ihr Gerät nicht gerootet ist, gewährt ein einzelner ADB-Shell-Befehl der Anwendung Zugriff zum Lesen der Protokolle Ihres Geräts. Haben Sie ADB noch nicht auf Ihrem Computer eingerichtet? Kein Problem, befolgen Sie einfach diese Schritte, um es zum Laufen zu bringen.
Hinweis: Huawei-Telefone haben die Logcat-Ausgabe vollständig deaktiviert. Sie müssen eine ausgeblendete Einstellung ändern bevor Sie mit dem Rest dieses Handbuchs fortfahren.
ADB einrichten
Erste, Laden Sie die ADB-Binärdatei direkt von Google herunter für Ihr bestimmtes Betriebssystem und extrahieren Sie es in ein separates Verzeichnis auf Ihrem Computer. Nächste, Installieren Sie den richtigen Treiber für Ihr bestimmtes Telefon. Aktivieren Sie dann „USB-Debugging“ unter „Einstellungen“ -> „Entwickleroptionen“. Wenn die Entwickleroptionen nicht angezeigt werden, müssen Sie sie aktivieren, indem Sie zu Einstellungen -> Über das Telefon gehen und dann siebenmal auf Build-Nummer tippen. Stellen Sie abschließend sicher, dass ADB funktioniert, indem Sie eine Eingabeaufforderung im selben Verzeichnis wie die ADB-Binärdatei starten (Rechtsklick -> „Eingabeaufforderung hier öffnen“) und den folgenden Befehl ausführen:
adb devices
Wenn Sie die Seriennummer Ihres Geräts sehen (und dort nicht „Unautorisiert“ steht), sind Sie goldrichtig. Wenn auf Ihrem Telefon ein Popup-Fenster angezeigt wird, in dem Sie aufgefordert werden, Ihrem Computer ADB-Zugriff zu gewähren, sagen Sie „Ja“. Wenn beides nicht auftritt, versuchen Sie, Ihren Computer/Ihr Telefon neu zu starten und es erneut an Ihren Computer anzuschließen. Andernfalls versuchen Sie, den Treiber erneut zu installieren.
Matlog einrichten
Nachdem Sie ADB nun (hoffentlich) zum Laufen gebracht haben, müssen Sie nur noch den folgenden Befehl in einer ADB-Shell ausgeben, um Matlog die Möglichkeit zu geben, Logcats zu erfassen. Auch hier gilt: Wenn Ihr Gerät bereits gerootet ist, müssen Sie diesen Befehl nicht ausführen, da dies nur für nicht gerootete Telefone erforderlich ist.
adbshellpmgrantcom.pluscubed.matlogandroid.permission.READ_LOGS
Sobald Matlog aktiviert und geöffnet ist, zeigt es Systemereignisse in Echtzeit an. Sie können auf die Pause-Schaltfläche tippen, um den Vorgang anzuhalten. Tippen Sie dann auf das Ellipsenmenü und wählen Sie „Löschen“, um das Feld von überflüssigen Daten zu befreien. Es wird empfohlen, dies als Vorbereitung für die Protokollierung der fehlerhaften App zu tun, um die Protokollgröße zu reduzieren. Um die Schritte und damit die Protokolllänge noch weiter zu verkürzen, fügen Sie das Matlog-Widget zu Ihrem Startbildschirm neben der betreffenden abstürzenden Anwendung hinzu, wie rechts gezeigt. In diesem Fall, Apktool X ist unsere fehlerhafte App.
Durch Tippen auf das Widget können Sie einem Protokoll einen Namen geben und mit der Aufzeichnung beginnen. Reproduzieren Sie dann einfach die Fehlfunktion unmittelbar nach dem Start der Protokollierung, wodurch Logcat mit relevanten Informationen für Ihr Problem gefüllt wird. Sobald das Problem reproduziert wurde, tippen Sie einfach erneut auf das Widget, um die Protokollaufzeichnung abzuschließen.
Daraufhin öffnet Matlog das erfasste Protokoll. Tippen Sie auf die Auslassungspunkte und wählen Sie „Senden“, um das Protokoll als angehängte Textdatei zusammen mit allgemeinen Geräteinformationen per E-Mail zu versenden. Das ist es! Ihr Logcat wurde erfolgreich erfasst und gesendet an Professor Oak.
In meinem obigen Beispiel kann ich erkennen, dass der Grund für den Absturz von Apktool X darin liegt, dass mein Gerät nicht gerootet ist. Doh! Ich hätte es voll haben sollen lesen Sie den Artikel bevor Sie versuchen, die App zu verwenden.
Das war zu einfach
Natürlich sind nicht alle Probleme so einfach zu erfassen. Manchmal erfordern Probleme beim Booten oder Probleme, die sich über einen längeren Zeitraum erstrecken, die Erfassung verschiedener Funktionen der App. In solchen Fällen sollten Sie Matlog im Hintergrund laufen lassen (nicht pausieren oder löschen) und die Protokollebenen- und Filterfunktionen verwenden, um Daten zu analysieren.
Obwohl dies normalerweise nicht die einzig notwendige Methode zum Sammeln relevanter Daten ist, ist es in einigen Situationen erforderlich mehr Kontext – jedes dieser Tools kann für längere Protokolle verwendet werden, um Daten für die zu sortieren und anzugeben Entwickler. Dies hängt natürlich von der Art des Fehlers und den Anforderungen des Entwicklers ab. Um eine davon zu verwenden, führen Sie einfach Matlog aus, reproduzieren Sie Ihr Problem, navigieren Sie zurück zu Matlog, tippen Sie auf das Punktmenü und wählen Sie eine dieser beiden Sortiermethoden aus.
Protokollebene
Ein weiterer durch Matlog vereinfachter ADB-Befehl, die Log Level-Funktion, kann zum Anzeigen bestimmter Arten von Systemereignissen und -meldungen verwendet werden. Nachfolgend finden Sie eine kurze Beschreibung der verschiedenen Nachrichtentypen, wie sie auf der Android-Entwickler-Website beschrieben und farblich gekennzeichnet sind, um der Beschriftung von Matlog zu entsprechen.
Von der niedrigsten zur höchsten Priorität:
- V: Ausführlich (Allgemeine Systemereignisse)
- D: Debuggen
- ICH: Information
- W: Warnung
- E: Fehler
- F: Tödlich
- S: Still (Höchste Priorität, auf der nie etwas gedruckt wird)
Die Protokollebenenfunktion verfügt über eine entsprechende Liste dieser Nachrichten, mit der das Protokoll nach jeder Prioritätsebene gefiltert werden kann. Durch die Auswahl einer Protokollebene werden nur Ereignisse mit der eigenen Prioritätsebene und höher angezeigt, was die einfache Identifizierung und Gruppierung erleichtert Fehler, anstatt manuell durch zahlreiche Textzeilen scrollen zu müssen – was manchmal in die Tausende gehen kann Also.
Filter
Filter können auch zum Sortieren von Protokolldaten eingesetzt werden. Durch das Einleiten einer Stichwortsuche wird dem Benutzer ermöglicht, nur Nachrichten zu sehen, die explizit auf dieses Stichwort verweisen. Nützliche Schlüsselwörter können der Name der fehlerhaften App oder sogar das Wort „Fehler“ sein, da es Vorkommen des Begriffs auf allen Prioritätsstufen umfasst nicht umfassen alle „Log Level“-Fehler.
Wenn Sie häufig nach bestimmten Schlüsselwörtern suchen/filtern, wenn Sie einem Entwickler beim Debuggen einer Anwendung helfen (oder wenn Wenn der Entwickler explizit ein eindeutiges Protokollereignis erstellt hat, nach dem Sie suchen können), können Sie auch einen Filter speichern, zu dem Sie zurückkehren können die Zukunft. Dies ist nützlich, wenn Sie im Voraus wissen, wonach Sie suchen, was häufig vorkommt, wenn Sie mit einem Entwickler zusammenarbeiten.
Bereit zum Debuggen?
Während Sie vielleicht nicht Jetzt Seien Sie ein Experte im Debuggen von Android-Apps. Wenn Sie lernen, wie man Logcats sammelt und sendet, können Sie eine großartige Ressource für die Entwickler Ihrer Lieblings-Apps sein. Mit Matlog und den oben beschriebenen Funktionen war das Sammeln, Sortieren und Versenden relevanter Informationen über eine fehlerhafte App noch nie so einfach.
Haben Sie Matlog oder eine andere Logcat-App verwendet? Fanden Sie diesen Leitfaden hilfreich? Lass es uns unten in den Kommentaren wissen!