0Pricing
Android Academy · Lektion

Debugging und Profiling

Beherrschen Sie die Debugging- und Profiling-Tools von Android Studio: Breakpoints, Logcat, Timber, Memory Profiler, LeakCanary, CPU Profiler, Network Inspector und Layout Inspector.

Debugging und Profiling ist eine kostenlose Android Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Android Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.

Übersicht zum Debugging

Debugging ist der Prozess, Fehler zu finden und zu beheben. Android Studio bietet leistungsstarke Werkzeuge:

  • Debugger — Ausführung anhalten, Variablen untersuchen, schrittweise durch den Code gehen
  • Logcat — Protokollausgabe des Geräts in Echtzeit
  • Layout Inspector — die aktuelle UI-Hierarchie untersuchen
  • Android Profiler — Analyse von CPU, Arbeitsspeicher und Netzwerk
  • Database Inspector — Room-Datenbanken live anzeigen und abfragen

Logcat — Ihr erstes Debugging-Werkzeug

Verwenden Sie Log, um Nachrichten in Logcat auszugeben. Verwenden Sie ein TAG, um Ihre Protokolle zu filtern:

import android.util.Log

class UserRepository {
    companion object {
        private const val TAG = "UserRepo"
    }

    fun fetchUsers() {
        Log.d(TAG, "fetchUsers() called")        // Debug
        Log.i(TAG, "Fetching ${users.size} users") // Info
        Log.w(TAG, "Cache is empty")               // Warning
        Log.e(TAG, "Network error: $exception")    // Error
    }
}

Timber — besseres Logging

Timber ist ein dünner Wrapper um Log, der Log-Aufrufe aus Release-Builds entfernt und automatisch den Klassennamen als TAG hinzufügt:

// app/build.gradle:
// implementation 'com.jakewharton.timber:timber:5.0.1'

// In Application.onCreate():
if (BuildConfig.DEBUG) {
    Timber.plant(Timber.DebugTree())
}

// Usage anywhere in the app (no TAG needed):
Timber.d("User loaded: %s", user.name)
Timber.e(exception, "Failed to fetch data")
Timber.w("Cache miss for key: %s", key)

Breakpoints und der Debugger

So debuggen Sie mit Breakpoints in Android Studio:

  1. Klicken Sie neben einer Codezeile in den Randbereich links — ein roter Punkt wird angezeigt
  2. Starten Sie die App mit Debug (Fehlersymbol) statt mit Run
  3. Wenn die Ausführung den Breakpoint erreicht, wird sie angehalten
  4. Untersuchen Sie die Variablen im Bereich Variables
  5. Verwenden Sie Step Over (F8), um Zeile für Zeile weiterzugehen, und Step Into (F7), um eine Funktion aufzurufen

Ausdruck auswerten

Verwenden Sie an einem Breakpoint im angehaltenen Zustand Evaluate Expression (Alt+F8), um Kotlin-Code im aktuellen Gültigkeitsbereich auszuführen. Testen Sie Ihre Annahmen, ohne die App neu zu starten:

  • Prüfen Sie list.size und user.email.isNotBlank()
  • Rufen Sie eine beliebige Methode auf und sehen Sie sich den Rückgabewert an
  • Untersuchen Sie komplexe Objekte direkt im Editor

Memory Profiler

Finden Sie Speicherlecks mit dem Memory Profiler (View → Tool Windows → Profiler):

  • Beobachten Sie die Heap-Größe im Zeitverlauf — ein stetiger Anstieg deutet wahrscheinlich auf ein Leck hin
  • Erzwingen Sie eine GC und beobachten Sie, ob der Speicherverbrauch sinkt
  • Erstellen Sie einen Heap-Dump, um zu sehen, welche Objekte noch vorhanden sind
  • Suchen Sie nach Activity- oder Fragment-Instanzen, die bereits von der GC bereinigt worden sein sollten

LeakCanary — automatische Erkennung von Speicherlecks

LeakCanary erkennt Speicherlecks automatisch und meldet sie in Debug-Builds als Benachrichtigungen:

// app/build.gradle:
debugImplementation 'com.squareup.leakcanary:leakcanary-android:2.12'

// That's it — no code changes needed!
// LeakCanary auto-installs via ContentProvider.
// When a leak is detected, it shows a notification with the leak trace.

// Common causes to watch for:
// - Static references to Context/Activity
// - Not releasing ViewBinding in onDestroyView()
// - Listeners registered to singletons but not unregistered

CPU Profiler

Finden Sie Performance-Engpässe mit dem CPU Profiler:

  • Zeichnen Sie einen Trace auf, während Sie eine Aktion ausführen
  • Sehen Sie sich ein Flame-Chart an, um zu erkennen, welche Methoden am meisten Zeit benötigen
  • Suchen Sie nach lang laufenden Vorgängen im main thread — sie verursachen eine ruckelige UI
  • Verschieben Sie aufwendige Berechnungen nach Dispatchers.IO oder Dispatchers.Default

Network Inspector

Der Network Inspector zeigt alle HTTP-Aufrufe Ihrer App in Echtzeit:

  • Zeigen Sie Request-URL, Methode, Header und Body an
  • Zeigen Sie Response-Code, Body und Zeitangaben an
  • Erkennen Sie langsame oder fehlschlagende Requests
  • Funktioniert standardmäßig mit OkHttp (wird von Retrofit verwendet)

Sie erreichen ihn über View → Tool Windows → App Inspection → Network Inspector.

Database Inspector

Untersuchen und bearbeiten Sie Ihre Room-Datenbank live auf einem laufenden Gerät:

  • Zeigen Sie Tabellen und deren Inhalte an
  • Führen Sie eigene SQL-Abfragen aus
  • Beobachten Sie, wie sich die Daten während der Nutzung der App ändern

Sie erreichen ihn über App Inspection → Database Inspector. Funktioniert mit Room ab API 26.

Layout Inspector

Der Layout Inspector zeigt eine live aktualisierte 3D-Ansicht Ihrer UI-Hierarchie:

  • Wählen Sie eine beliebige View aus, um ihre Attribute anzuzeigen (Ränder, Innenabstände, Text, Farbe)
  • Erkennen Sie überlappende Views oder eine falsche Sichtbarkeit
  • Beheben Sie Layout-Probleme, ohne raten zu müssen

Sie erreichen ihn über View → Tool Windows → Layout Inspector. Stellen Sie eine Verbindung zu einer laufenden App auf einem Gerät oder Emulator her.

StrictMode

StrictMode erkennt versehentlich langsame Vorgänge im main thread (Festplattenzugriffe, Netzwerkaufrufe) und protokolliert sie oder lässt die App in Debug-Builds abstürzen:

// In Application.onCreate() — debug builds only:
if (BuildConfig.DEBUG) {
    StrictMode.setThreadPolicy(
        StrictMode.ThreadPolicy.Builder()
            .detectDiskReads()
            .detectDiskWrites()
            .detectNetwork()
            .penaltyLog()      // log violations instead of crashing
            .build()
    )
}

Kurze Überprüfung

Welches Tool erkennt Speicherlecks in Android-Debug-Builds automatisch, ohne dass zusätzlicher Code erforderlich ist?

Rückblick: Debugging und Profiling

Finden und beheben Sie Probleme effizient:

  • Logcat + Timber — schlankes Logging, wird in Release-Builds automatisch entfernt
  • Breakpoints + Debugger — laufende Ausführung anhalten und untersuchen
  • Memory Profiler — Heap-Wachstum und Speicherlecks erkennen
  • LeakCanary — automatische Erkennung von Speicherlecks mit Stacktrace
  • CPU Profiler — langsame Methoden im main thread finden
  • Network Inspector — HTTP-Aufrufe überwachen
  • Database Inspector — Room-Datenbanken live abfragen
  • StrictMode — versehentliche E/A im main thread erkennen

Herzlichen Glückwunsch — Sie haben den vollständigen Kurs zur Android-Entwicklung abgeschlossen!

Häufig gestellte Fragen

Ist die Lektion „Debugging und Profiling“ kostenlos?

Ja — der vollständige Text von „Debugging und Profiling“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Android Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Android Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Debugging und Profiling“?

Beherrschen Sie die Debugging- und Profiling-Tools von Android Studio: Breakpoints, Logcat, Timber, Memory Profiler, LeakCanary, CPU Profiler, Network Inspector und Layout Inspector. Du übst Android Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Android Academy zu starten?

Keine Vorkenntnisse erforderlich. Android Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Debugging und Profiling“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Android Academy-Lektion Code schreiben und ausführen?

Ja. Jede Android Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Unit-Tests mit JUnit
  2. Mocking mit Mockito
  3. UI-Tests mit Espresso
  4. Debugging und Profiling
← Zurück zu Android Academy