Android Studio für Anfänger, Teil 4: Debugging-Tools und Produktivitäts-Plugins

Aktualisiert: Januar 2020.

Android Studio bietet eine umfangreiche Palette integrierter Entwicklungstools und ein noch umfangreicheres Plugin-Ökosystem. Die ersten drei Artikel dieser Reihe konzentrierten sich auf die Installation und Einrichtung sowie das Codieren und Ausführen einer einfachen mobilen App mit Android Studio. Jetzt lernen Sie einige der fortschrittlicheren Tools kennen: drei integrierte Tools und drei Plugins zum Debuggen und Verbessern der Qualität und Produktivität Ihres Android-Anwendungscodes.

In diesem Artikel werden die folgenden Tools für Android Studio vorgestellt:

Integrierte Debugging-Tools

  • Logcat
  • Debuggen
  • Fussel

Plugins für Entwicklerproduktivität

  • ADB-Idee
  • Codota
  • Lombok Plugin

Was ist neu in Android Studio 3.5

Erfahren Sie, worauf Sie in der neuesten Version von Android Studio achten müssen, einschließlich der Unterstützung von Kotlin und Verbesserungen der Speicherverwaltung und der Reaktionsfähigkeit der Benutzeroberfläche.

Protokollieren und Debuggen von Android-Apps

Eine Buggy-App ist ein sicherer Weg, um potenzielle Kunden zu vertreiben. Logcat und Debug sind zwei in Android Studio integrierte Tools, mit denen Sie Fehler in Ihrem Android-Code identifizieren und beheben können.

Android protokollieren: Logcat

Möglicherweise benötigen oder möchten Sie nicht für jedes "fehlerhafte" Szenario einen vollständigen Debugger. In einigen Fällen reicht es aus, die Werte bestimmter Variablen zu protokollieren und zu korrigieren. Logcat von Android Studio ist perfekt für diese Aufgabe.

Logcat ist ein Befehlszeilentool (integriert in Android Debug Bridge - ADB), das ein Protokoll mit Systemmeldungen erstellt, mit denen Sie Probleme in Ihrem Code finden und beheben können. Zu den Nachrichten gehören Stapelspuren für den Fall, dass das Gerät einen Fehler auslöst, und Protokollnachrichten, die Sie absichtlich in die android.util.LogKlasse eingebettet haben . Logcat ist so nützlich, dass es direkt in Android Studio integriert wurde, wo Sie über das Menü Ansicht oder die Symbolleiste darauf zugreifen können .

Jeff Friesen

Das Logcat- Fenster ist in eine horizontale Reihe von Dropdown-Listen und anderen Steuerelementen unterteilt, gefolgt von einem Nachrichtenbereich. Von links nach rechts sind die Steuerelemente:

  • Eine Dropdown-Liste, die verbundene Geräte und Emulatoren identifiziert. (Siehe Abbildung 1.)
  • Eine Dropdown-Liste mit den installierten APK-Paketen auf dem ausgewählten Gerät.
  • Eine Dropdown-Liste der Protokollierungsstufen:
    • Ausführlich: Alle Nachrichten anzeigen.
    • Debug: Zeigt Debug-Protokollnachrichten an, die nur während der Entwicklung nützlich sind, sowie die niedrigeren Nachrichtenebenen in der Dropdown-Liste.
    • Info: Zeigt die erwarteten Protokollnachrichten für die reguläre Verwendung sowie die niedrigeren Nachrichtenebenen in der Dropdown-Liste an.
    • Warnung: Zeigen Sie mögliche Probleme an, die noch keine Fehler sind, sowie die niedrigeren Nachrichtenebenen in der Dropdown-Liste.
    • Fehler: Zeigen Sie Probleme an, die zu Fehlern geführt haben - ausgelöste Ausnahmen sowie die Ebene der Assert-Nachricht.
    • Behauptung: Zeigen Sie Probleme an, von denen der Entwickler erwartet, dass sie niemals auftreten sollten.
  • Eine Suchleiste, in der nur Nachrichten angezeigt werden, die den Text enthalten, den Sie in dieses Steuerelement eingeben.
  • Ein Kontrollkästchen, mit dem Sie reguläre Ausdrücke in der Suchleiste verwenden können. Im Kontext von Abbildung 1 können Sie beispielsweise SystemClock | angeben AlarmManager (dh die Nachricht muss eines der beiden Wörter enthalten).
  • Eine Dropdown-Liste zum Filtern von Nachrichten, einschließlich der folgenden Optionen:
    • Keine Filter (Standardeinstellung) bewirkt, dass alle Nachrichten für das ausgewählte Gerät angezeigt werden, unabhängig vom ausgewählten APK-Paket.
    • Nur ausgewählte Anwendung anzeigen zeigt nur die Nachrichten für das ausgewählte APK-Paket auf dem ausgewählten Gerät an, die die entsprechende Protokollstufe oder niedriger haben.
    • Mit der Filterkonfiguration bearbeiten können Sie einen benutzerdefinierten Filter erstellen.

Im Quellcode können Sie Aufrufe an verschiedene android.util.LogMethoden einfügen , um Nachrichten zu protokollieren. Sie können beispielsweise aufrufen public static int i(String tag, String msg), um eine INFONachricht auf Ebene oder public static int w(String tag, String msg)eine WARNNachricht auf Ebene zu protokollieren .

Bei beiden Methoden tagidentifiziert die übergebene Zeichenfolge die Quelle der Nachricht (z. B. die Methode, in der diese Protokollierungsmethode aufgerufen wurde), und die übergebene Zeichenfolge msgidentifiziert die zu protokollierende Nachricht.

Alternativ können Sie System.out's und System.err' s print()und println()Methoden aufrufen . Aufrufe der System.outMethoden bewirken dasselbe wie log.i()Aufrufe; Aufrufe der System.errMethoden bewirken dasselbe wie log.w()Aufrufe.

Jeff Friesen

In Abbildung 2 werden nur die Meldungen für den Beispiel-App-Prozess angezeigt, der auf dem emulierten Nexus 5X-Gerät ausgeführt wird. Darüber hinaus müssen diese Nachrichten onCreateden Filter Nur ausgewählte Anwendung anzeigen enthalten und von diesem akzeptiert werden.

Mehr über Logcat

Weitere Informationen zu Logcat finden Sie in Googles "Protokolle mit Logcat schreiben und anzeigen". Lesen Sie auch die android.util.LogDokumentation der Klasse.

Debuggen von Android: Debuggen

Die Verwendung von Logcat zum Protokollieren und Korrigieren von Code ist für sehr einfache Apps in Ordnung. Bei komplizierteren Apps kann diese Form des Debuggens langwierig sein. Stattdessen möchten Sie etwas, mit dem Sie den ausführbaren Code der App debuggen können. Das in Android Studio integrierte Debug-Tool bietet viele Funktionen, darunter die folgenden:

  • Wählen Sie ein Gerät aus, auf dem Sie Ihre App debuggen möchten.
  • Setzen Sie Haltepunkte in Ihrem Anwendungscode (Java, Kotlin oder C / C ++).
  • Untersuchen Sie Variablen und werten Sie Ausdrücke zur Laufzeit aus.

Es gibt einige Voraussetzungen, bevor Sie dieses Debugging-Tool verwenden können:

  1. Wenn Ihre App C / C ++ - Quellcode enthält, müssen Sie LLDB über den SDK-Manager installieren (siehe Abbildung 3). Glücklicherweise enthält die Beispiel-App für diese Serie ( W2A ) keinen C / C ++ - Code, sodass wir diese Voraussetzung ignorieren können.

    Jeff Friesen

  2. Sie müssen das Debuggen auf einem verbundenen Gerät aktivieren. Wenn Sie jedoch einen Emulator verwenden (wie wir es für dieses Beispiel tun), können Sie diese Voraussetzung ignorieren. Das Debuggen ist auf emulierten Geräten standardmäßig aktiviert.
  3. Sie müssen eine debuggbare Build-Variante ausführen. Standardmäßig wird dies für Sie erstellt, sodass Sie sich in vielen Fällen (einschließlich dieses Beispiels) keine Sorgen machen müssen.

Lassen Sie uns eine kurze Debugging-Sitzung durchlaufen.

Einfaches Android-Debugging

Angenommen, Sie führen Android Studio mit geöffnetem Editorfenster für die Beispiel-App ( W2A.java ) aus. Zunächst müssen Sie einen Haltepunkt in der public void onCreate(Bundle savedInstanceState)Zeile festlegen . Setzen Sie den Haltepunkt, indem Sie diese Linie markieren und einen der folgenden Schritte ausführen:

  • Klicken Sie auf den Rinnenbereich links von der Linie. Die Linie sollte als Antwort rosa werden.
  • Wählen Sie im Menü Ausführen die Option Zeilenumbruchpunkt umschalten .
  • Drücken Sie Strg und F8 gleichzeitig.

Wählen Sie nun Debug ‚App‘ aus dem Run - Menü oder klicken Sie auf das entsprechende Symbol in der Werkzeugleiste. Wenn der Emulator nicht ausgeführt wird, wird das Dialogfeld Bereitstellungsziel auswählen angezeigt. Ich habe Nexus 5X API 15 ausgewählt und auf OK geklickt .

Während Sie darauf warten, dass das emulierte Gerät online geschaltet wird , klicken Sie in der Symbolleiste auf die Schaltfläche Debug , um das Debug- Fenster anzuzeigen . Schließlich sollten Sie etwas Ähnliches wie in Abbildung 4 sehen.

Jeff Friesen

Das Debug- Fenster enthält Symbole zum Über-, Ein- und Aussteigen aus einer Methode und mehr. Abbildung 5 zeigt , was passiert , wenn wir über Schritt ein Verfahren.

Jeff Friesen

Klicken Sie auf das entsprechende Symbol und wählen Sie im Menü " Ausführen" die Option " Schritt über" oder drücken Sie F8 . Auf diese Weise können wir onCreate()bei jedem Methodenaufruf tiefer in die Methode einsteigen.

Wählen Sie die Zeile mit dem schließenden }Zeichen für die onCreate()Methode aus und wählen Sie dann Zum Cursor ausführen . Sie erhalten eine Benachrichtigung, dass die Anwendung ausgeführt wird. Nach dem Entsperren des Geräts sollte das Aktivitätsfenster der Beispiel-App angezeigt werden.

Jeff Friesen

Mehr zum Debuggen

Weitere Informationen zum Debuggen in Android Studio finden Sie in Googles "Debuggen Ihrer App". Zum Beispiel, wie man verschiedene Arten von Haltepunkten verwendet.

Debuggen mit GAPID

Obwohl hier nicht behandelt, empfehle ich, GAPID: Graphics API Debugger zu testen, eine Sammlung von Debugging-Tools, mit denen Sie Anrufe von einer Android-App an einen Grafiktreiber überprüfen, optimieren und wiedergeben können.

Code-Inspektion mit Lint

Unabhängig davon, wie sorgfältig Sie es schreiben, enthält Ihr Quellcode wahrscheinlich Fehler und Stilprobleme und verweist möglicherweise auf Ressourcen, die aus dem einen oder anderen Grund inaktiv sind. Ein Linter ist eine Art Werkzeug, das den Quellcode nach Beweisen für diese und andere unangenehme Flusen durchsucht, die er dem Entwickler meldet.

Lint ist ein integrierter Linter für Android SDK. Sie können damit Probleme wie veraltete Elemente und API-Aufrufe suchen, die von Ihrer Ziel-API nicht unterstützt werden.

Um Lint in Android Studio auszuführen , wählen Sie im Menü Analysieren die Option Code überprüfen ... Dadurch wird das Dialogfeld Inspektionsbereich festlegen aktiviert .

Jeff Friesen

Wählen Sie im Dialogfeld den gewünschten Bereich aus (in diesem Fall das gesamte Projekt) und klicken Sie auf OK , um die Überprüfung zu starten. Die Ergebnisse werden im Fenster Inspektionsergebnisse angezeigt , wo sie nach Kategorien geordnet sind.

Jeff Friesen

Lint hat seiner Natur nach ein paar Flusen herausgesucht, die sonst den Anwendungscode überladen könnten. Einmal entdeckt, ist es einfach, die drei in Abbildung 8 gezeigten Java-Warnungen zu beheben: Deklarieren Sie einfach androidAnimationprivatedie Casts und entfernen Sie sie aus den beiden findViewById()Methodenaufrufen.

Mehr über Lint

Weitere Informationen zur Verwendung von Lint in Android Studio und zum eigenständigen Lint-Tool des Android SDK finden Sie unter "Verbessern Sie Ihren Code mit Flusenprüfungen".

Installieren und Verwenden von Android Studio-Plugins

Während eingebaute Tools ihre Vorzüge haben, sind viele andere Tools als Plugins verfügbar. In diesem Abschnitt werden drei Plugins zur Verbesserung der Produktivität Ihrer Codierung in Android Studio vorgestellt:

  • ADB-Idee
  • Codota
  • Lombok Plugin

Android Studio Plugins Manager

Der Plugins-Manager von Android Studio erleichtert das Auffinden und Installieren von Plugins. Aktivieren Sie den Plugins-Manager, indem Sie im Dialogfeld Einstellungen Datei > Einstellungen gefolgt von Plugins auswählen :

Jeff Friesen

Klicken Sie anschließend auf Repositorys durchsuchen ... , um das Dialogfeld Repositorys durchsuchen zu aktivieren , in dem eine vollständige Liste der unterstützten Plugins angezeigt wird. In diesem Dialogfeld wählen wir unser erstes Plugin, ADB Idea, aus.

Jeff Friesen

Steigern Sie Ihre Android-Produktivität

Code-Verknüpfungen: ADB-Idee

ADB Idea beschleunigt die tägliche Android-Entwicklung, indem es schnellen Zugriff auf häufig verwendete ADB-Befehle wie das Starten und Deinstallieren einer App bietet.

Wählen Sie ADB Idea in der Repository-Liste der Plugins aus und klicken Sie auf die Schaltfläche Installieren . Android Studio lädt das Plugin herunter und installiert es. Anschließend wird Install neu gestartet, um Android Studio neu zu starten . Für jedes Plugin musste ich das Plugin erneut auswählen, nachdem ich auf Android Studio neu starten geklickt hatte , und dann ein zweites Mal auf diese Schaltfläche klicken, um Android Studio neu zu starten.

Jeff Friesen

Einmal installiert, können Android Studio zugreifen Sie ADB Idee von seinem Werkzeuge Menü. Wählen Sie Extras> ADB-Idee und wählen Sie den entsprechenden Befehl aus dem daraufhin angezeigten Popup-Menü.

Jeff Friesen

Nachdem ich ADB Restart App ausgewählt hatte , wurden im Ereignisprotokollfenster die folgenden Meldungen sowie die neu gestartete App auf meinem Amazon Kindle-Gerät angezeigt.

Jeff Friesen

Verwendbaren Code finden: Codota

Mit dem Codota- Plugin können Sie auf die Codota-Suchmaschine zugreifen, mit der Sie Millionen öffentlich verfügbarer Java-Quellcode-Schnipsel nach Lösungen für Android-Codierungsprobleme durchsuchen können.

Jeff Friesen

Wählen Sie Codota in der Repository-Liste der Plugins aus und klicken Sie dann auf die Schaltfläche Installieren . Nachdem Android Studio das Plugin heruntergeladen und installiert hat, wird die Schaltfläche Installieren neu beschriftet , um Android Studio neu zu starten . Durch einen Neustart wird Codota aktiviert.

Beim Neustart wird das Dialogfeld Codota-Authentifizierung angezeigt . Klicken Sie auf den Link und folgen Sie den Anweisungen, um das Token zu erhalten. Fügen Sie dann das Token in das oben genannte Dialogfeld ein und klicken Sie auf Los .

Jeff Friesen

Mit Android Studio können Sie auf Codota zugreifen, indem Sie im Editorfenster mit der rechten Maustaste auf Java-Code klicken und den Menüpunkt Relevante Beispiele abrufen auswählen (siehe Abbildung 16).

Jeff Friesen

Wenn Sie auf diesen Menüpunkt klicken, zeigt der Browser eine Seite mit relevanten Codebeispielen an. Auf der folgenden Seite finden Sie beispielsweise Beispiele, die für Folgendes relevant sind findViewById:

Jeff Friesen

Java-Code automatisch generieren: Lombok

Project Lombok bietet eine Reihe von Anmerkungen, die Sie anstelle von Boilerplate-Code verwenden können, wodurch Sie Zeit sparen, diesen Code von Hand zu schreiben.

Jeff Friesen

Wählen Sie Lombok Plugin in der Repository-Liste der Plugins aus und klicken Sie auf Installieren . Nachdem Android Studio das Plugin heruntergeladen und installiert hat, werden Sie aufgefordert, Android Studio neu zu starten . Durch einen Neustart wird das Lombok Plugin aktiviert.