Database Inspector: Was es ist, wie man mit SQLite arbeitet und Room debuggt

Autor: IT Sectr Veröffentlicht: 2026-05-07 Lesezeit: 8 Min.

Database Inspector in Android Studio ist ein integriertes Tool zum Anzeigen und Debuggen von SQLite-Datenbanken einer mobilen Anwendung in Echtzeit. Laut der offiziellen Android Developers-Dokumentation (2025) ermöglicht das Tool die Ausführung von SQL-Abfragen in der aktiven Datenbank, das Anzeigen von Tabellenstrukturen und das Bearbeiten von Datensätzen ohne Stoppen der Anwendung. Das Tool unterstützt Room, SQLiteOpenHelper und alle In-App-Datenbanken und erkennt sie automatisch beim Start der Profilerstellung.

Wichtige Punkte

  • Database Inspector ist eine Android Studio-Komponente zum Anzeigen von SQLite-Datenbanken einer Anwendung in Echtzeit mit der Möglichkeit, Abfragen auszuführen
  • Room-Unterstützung — vollständige Integration mit Room, einschließlich Anzeigen von DAO-Abfragen und Verfolgen von Änderungen in der Datenbank
  • Datenbearbeitung — Ändern von Tabellenzellenwerten direkt aus der Inspektor-Oberfläche mit sofortiger Rückmeldung in der Anwendung
  • SQL-Ausführung — die Möglichkeit, beliebige SQL-Abfragen zu schreiben und auszuführen, einschließlich JOIN, GROUP BY und Unterabfragen
  • Datenbankexport — Speichern eines Datenbank-Dumps auf dem Computer zur Analyse oder zum Teilen mit Kollegen

Was ist Database Inspector?

Database Inspector ist ein Android Studio-Tool zum Inspizieren und Debuggen lokaler Datenbanken in einer mobilen Anwendung. Es ermöglicht die Anzeige aller von der Anwendung erstellten SQLite-Datenbanken, einschließlich Room-Datenbanken, SQLiteOpenHelper und Drittanbieter-Bibliotheken. Das Tool ist ab Android Studio 4.1 verfügbar und kann über Android Profiler oder direkt über das View-Menü gestartet werden.

Zweck und Fähigkeiten

Der Hauptzweck von Database Inspector ist die Datenvisualisierung während der Entwicklung. Anstatt den Datenbankinhalt in ein Log auszugeben oder einen separaten Bildschirm zum Anzeigen von Daten zu schreiben, kann der Entwickler Database Inspector öffnen und sofort alle Tabellen, deren Schema und Inhalte sehen. Das Tool unterstützt sowohl relationale SQLite-Datenbanken als auch Room mit Auto-Migrationen.

Wann man Database Inspector verwendet

Das Tool ist in Szenarien unverzichtbar, in denen Sie die Korrektheit der Datenspeicherung überprüfen müssen, nachdem Sie einen Vorgang ausgeführt haben: Benutzerregistrierung, Serversynchronisation, Listen-Caching. Anstatt eine Testoberfläche zu schreiben, wird der Datenbank-Dump über Database Inspector angezeigt. Das Tool wird auch aktiv zum Debuggen von Room-Migrationen verwendet — Sie können das tatsächliche Tabellenschema nach jedem Schema-Update sehen.

Wie Database Inspector funktioniert

Database Inspector verbindet sich mit dem Prozess der Android-Anwendung über den Android Profiler Service. Es erkennt alle offenen SQLite-Verbindungen in der Anwendung und zeigt sie im Seitenbereich an. Ein Debug-Build der Anwendung mit API Level 26 (Android 8.0) und höher ist erforderlich.

Architektur und Mechanismus

Beim Start erstellt Database Inspector einen ADB-Tunnel zwischen der Anwendung auf dem Gerät und der IDE auf dem Computer. SQLite WAL (Write-Ahead Logging)-Datenbankdateien werden über diesen Tunnel gestreamt, um den Inhalt anzuzeigen. SQL-Befehle werden direkt an die SQLite-Engine der Anwendung über die Database Inspector-Unterstützung in Room und SQLiteDatabase gesendet. Das Tool erkennt automatisch, wann die Anwendung eine Datenbank öffnet, und fügt sie zur inspizierten Liste hinzu.

Umgebungsanforderungen

Für den korrekten Betrieb von Database Inspector benötigen Sie: Android Studio 4.1+, ein Gerät oder einen Emulator mit API Level 26+ und einen Debug-Build der Anwendung. Für Room ist zusätzlich die room-runtime-Bibliothek Version 2.2+ erforderlich. Wenn die Datenbank im WAL-Modus erstellt wird, der für Room 2.2+ Standard ist, kann das Tool Daten lesen, ohne die Hauptanwendung zu blockieren.

kotlin
// Beispiel einer Room-Datenbank, die von Database Inspector unterstützt wird
@Database(
    entities = [User::class, Order::class],
    version = 2,
    autoMigrations = [AutoMigration(from = 1, to = 2)]
)
abstract class AppDatabase : RoomDatabase() {
    abstract fun userDao(): UserDao
    abstract fun orderDao(): OrderDao
}

Hauptfunktionen von Database Inspector

Database Inspector bietet einen vollständigen Funktionsumfang für die Arbeit mit lokalen Daten: von der Anzeige des Tabellenschemas bis zur Ausführung komplexer SQL-Abfragen und der Bearbeitung von Datensätzen.

Anzeigen von Tabellen und Schema

Im linken Bereich werden alle Datenbanken und Tabellen angezeigt. Wenn eine Tabelle ausgewählt wird, wird ihr Inhalt in einer Tabelle mit Spalten dargestellt: Alle Datensatzfelder werden als Spalten angezeigt, jede Zeile ist ein einzelner Datensatz. Das Tabellenschema (Name, Typ, Einschränkungen) wird oben angezeigt. Für Fremdschlüssel werden Beziehungen zwischen Tabellen dargestellt.

DatentypSQLite-TypRoom-TypBeispiel
Ganze ZahlINTEGERInt, Long42
ZeichenketteTEXTString"John"
DezimalzahlREALDouble, Float3.14
BinärdatenBLOBByteArray[0x00, 0x01]
Datum/UhrzeitINTEGER (Unix-Epoche)Long, Date1720000000

Ausführen von SQL-Abfragen

Der Query-Tab ermöglicht die direkte Ausführung beliebiger SQL-Befehle in der ausgewählten Datenbank. SELECT, INSERT, UPDATE, DELETE, CREATE INDEX, JOIN und alle anderen SQLite-Operatoren werden unterstützt. Ergebnisse werden in tabellarischer Form unter dem Abfrage-Editor angezeigt. Der Abfrageverlauf bleibt während der Sitzung erhalten.

Bearbeiten von Datensätzen

Tabellenzellen können direkt bearbeitet werden — klicken Sie einfach auf einen Wert und geben Sie einen neuen ein. Änderungen werden sofort auf die laufende Anwendung angewendet. Dies ist besonders nützlich zum Testen von Grenzfällen: Setzen von null in einem Pflichtfeld, Ersetzen einer ID durch eine nicht vorhandene, Überprüfen der Verarbeitung langer Zeichenketten. Alle Änderungen werden in Echtzeit übernommen.

Room-Debugging mit Database Inspector

Database Inspector ist tief in Room integriert, was es bei der Entwicklung von Anwendungen mit dieser Bibliothek unverzichtbar macht. Zusätzlich zur Standardfunktionalität bietet der Inspektor Room-spezifische Fähigkeiten.

Anzeigen von DAO-Abfragen

Für Room-Datenbanken zeigt Database Inspector die generierten SQL-Abfragen für jede DAO-Methode an. Dadurch können Sie überprüfen, ob Room korrektes SQL generiert, insbesondere bei komplexen Abfragen mit JOIN, @Relation und @Transaction. Wenn Room eine ineffiziente Abfrage ausführt (z. B. N+1 Abfragen statt eines einzelnen JOIN), ist dies sofort im Database Inspector-Abfrageprotokoll sichtbar.

Debuggen von Migrationen

Beim Aktualisieren des Room-Schemas mit AutoMigration oder manuellen Migrationen zeigt Database Inspector die tatsächliche Tabellenstruktur nach der Migration an. Öffnen Sie einfach den Inspektor nach dem Starten der Anwendung und prüfen Sie, ob alle Spalten, Indizes und Fremdschlüssel korrekt erstellt wurden. Wenn eine Migration mit einem Fehler fehlgeschlagen ist, wird die Datenbank nicht geöffnet — das Tool zeigt die letzte verfügbare Version an.

Überprüfen von Relations und Embedded

Room ermöglicht das Kombinieren von Daten aus mehreren Tabellen über @Relation und @Embedded. Database Inspector hilft, die Korrektheit von Beziehungen visuell zu überprüfen, indem es Daten verwandter Tabellen nebeneinander anzeigt. Für jeden Fremdschlüssel können Sie mit einem Klick zur verknüpften Tabelle navigieren.

kotlin
// Entität mit Relation zur Überprüfung über Database Inspector
@Entity(tableName = "users")
data class User(
    @PrimaryKey val id: Int,
    val name: String
)

data class UserWithOrders(
    @Embedded val user: User,
    @Relation(parentColumn = "id", entityColumn = "user_id")
    val orders: List<Order>
)

Praktische Anwendungsszenarien für Database Inspector

Database Inspector löst spezifische Entwicklungsaufgaben, die bei der Arbeit mit lokaler Datenspeicherung auftreten. Sehen wir uns die häufigsten Anwendungsfälle des Tools im täglichen Gebrauch an.

Überprüfen des Daten-Cachings

Häufig speichert eine Anwendung API-Antworten in einer lokalen Datenbank zwischen. Database Inspector ermöglicht es Ihnen, die Korrektheit des Cachings zu überprüfen: Nach der Synchronisierung können Sie die tatsächlichen Datensätze in der Cache-Tabelle sehen. Wenn keine Daten angezeigt werden — liegt das Problem im Speichercode. Wenn Duplikate auftreten — liegt das Problem in der Upsert-Logik.

Debuggen von Daten-Einfügefehlern

Wenn eine DAO-Methode keine Daten speichert, aber keine Ausnahme auslöst, zeigt Database Inspector den tatsächlichen Zustand der Tabelle. Typische Ursachen: Primary-Key-Konflikt (OnConflictStrategy-Einstellung), falscher Datentyp in einer Spalte, NOT-NULL-Constraint-Verletzung oder Foreign-Key-Verletzung. Der Inspektor ermöglicht es Ihnen, den Datenbank-Änderungssatz vor und nach dem Vorgang zu sehen. Der Vergleich von Daten-Snapshots vor und nach einem DAO-Aufruf ist eine der effektivsten Methoden, um Transaktionsfehler zu debuggen und die Korrektheit der Geschäftslogik der Anwendung bei komplexen Schreibvorgängen zu überprüfen.

Refactoring des Datenbankschemas

Beim Ändern des Tabellenschemas — Hinzufügen von Spalten, Umbenennen von Feldern, Teilen von Tabellen — hilft Database Inspector bei der Überprüfung des Migrationsergebnisses. Starten Sie einfach die Anwendung mit der neuen Datenbankversion und prüfen Sie, ob alle Daten korrekt in die neue Struktur übertragen wurden. Wenn nach der Migration Daten fehlen, können Sie sie aus einem vor dem Refactoring gespeicherten Dump wiederherstellen. Dieses Szenario ist besonders relevant bei der Migration von SQLiteOpenHelper zu Room oder bei der Änderung der Struktur vorhandener Tabellen in einer neuen Version der Anwendung.

Überwachung der Abfrageleistung

Database Inspector kann auch zur Bewertung der SQL-Abfrageleistung verwendet werden. Durch Ausführen von SELECT über den Query-Tab und Messen der Antwortzeit können Sie Abfragen identifizieren, denen Indizes fehlen. Room protokolliert automatisch langsame Abfragen in Logcat mit dem Tag SLOW SQL, und Database Inspector ermöglicht die sofortige Ausführung von EXPLAIN QUERY PLAN zur Analyse des Ausführungsplans.

Häufig gestellte Fragen

Warum sieht Database Inspector meine Datenbank nicht?

Stellen Sie sicher, dass die Anwendung im Debug-Modus läuft und der API-Level des Geräts 26 oder höher ist. Wenn die Datenbank in einem separaten Prozess oder mit SQLCipher (Verschlüsselung) erstellt wird, kann Database Inspector sie möglicherweise nicht erkennen. Verwenden Sie für SQLCipher eine Hilfs-Debug-Datenbank ohne Verschlüsselung.

Kann ich Daten über Database Inspector bearbeiten?

Ja, die Datenbearbeitung ist direkt in Tabellenzellen möglich. Ein Doppelklick auf einen Wert ermöglicht dessen Änderung. Änderungen werden sofort auf die Datenbank der laufenden Anwendung angewendet. Verwenden Sie zum Hinzufügen neuer Datensätze die INSERT-SQL-Abfrage über den Query-Tab.

Unterstützt Database Inspector Realm-Datenbanken?

Nein, Database Inspector unterstützt Realm nicht, da Realm kein SQLite verwendet. Verwenden Sie zum Debuggen von Realm Realm Object Server, Realm Studio oder In-App-Logging. Für das MongoDB Realm SDK ist das Realm Studio-Tool für macOS, Windows und Linux verfügbar.

Wie exportiere ich eine Datenbank aus Database Inspector?

Database Inspector ermöglicht den Export der gesamten Datenbank. Klicken Sie mit der rechten Maustaste auf den Datenbanknamen in der Liste und wählen Sie Export Database. Die .db-Datei wird auf Ihrem Computer gespeichert. Verwenden Sie zum Anzeigen einen beliebigen SQLite-Browser, z. B. DB Browser for SQLite.

Beeinträchtigt Database Inspector die Anwendungsleistung?

Laut Google ist der Overhead minimal — Database Inspector liest WAL-Datenbankdateien, ohne Schreibvorgänge zu blockieren. Die Ausführung benutzerdefinierter SQL-Abfragen kann die Datenbank vorübergehend belasten, aber dies wird vom Entwickler kontrolliert. Für Produktions-Builds wird das Tool automatisch deaktiviert.

Zusammenfassung

  • Database Inspector ist ein in Android Studio integriertes Tool zum Anzeigen und Bearbeiten von SQLite-Datenbanken einer Anwendung in Echtzeit
  • Room-Unterstützung umfasst das Anzeigen von DAO-Abfragen, das Debuggen von Migrationen und die Überprüfung von @Relation und @Embedded
  • SQL-Abfrageausführung über den Query-Tab mit Unterstützung aller SQLite-Operatoren und Verlaufsspeicherung
  • Echtzeit-Bearbeitung ermöglicht das Ändern von Zellenwerten und die sofortige Anzeige des Ergebnisses in der laufenden Anwendung
  • Datenbankexport in eine .db-Datei zur Analyse in Drittanbieter-Tools oder zum Teilen mit Kollegen
  • Erfordert Android Studio 4.1+, Debug-Build und API Level 26+ — überprüfen Sie diese Anforderungen, wenn das Tool die Datenbank nicht anzeigt
  • Verwenden Sie Database Inspector regelmäßig bei der Entwicklung von Funktionen zur lokalen Datenspeicherung — es beschleunigt das Debuggen erheblich

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch