Database Inspector: wat is het, hoe te werken met SQLite en Room debuggen

Auteur: IT Sectr Gepubliceerd: 2026-05-07 Leestijd: 8 min

Database Inspector in Android Studio — is een ingebouwde tool voor het bekijken en debuggen van SQLite-databases van mobiele applicaties in realtime. Volgens de officiële documentatie van Android Developers (2025), stelt de tool in staat SQL-query's uit te voeren op de actieve database, de tabellenstructuur te bekijken en records te bewerken zonder de applicatie te stoppen. De tool ondersteunt Room, SQLiteOpenHelper en elke in-app database, en detecteert ze automatisch bij het starten van profilering.

Belangrijkste punten

  • Database Inspector — is een Android Studio-component voor het in realtime bekijken van SQLite-databases van de applicatie met de mogelijkheid query's uit te voeren
  • Room-ondersteuning — volledige integratie met Room, inclusief het bekijken van DAO-query's en het volgen van wijzigingen in de database
  • Gegevens bewerken — het wijzigen van tabelcelwaarden rechtstreeks vanuit de inspector-interface met onmiddellijke weerspiegeling in de applicatie
  • SQL uitvoeren — de mogelijkheid om willekeurige SQL-query's te schrijven en uit te voeren, inclusief JOIN, GROUP BY en subquery's
  • Database exporteren — het opslaan van een database-dump op de computer voor analyse of overdracht aan collega's

Wat is Database Inspector?

Database Inspector — is een Android Studio-tool voor het inspecteren en debuggen van lokale databases in de mobiele applicatie. Het maakt het mogelijk alle SQLite-databases te bekijken die door de applicatie zijn gemaakt, inclusief Room-, SQLiteOpenHelper- en externe bibliotheekdatabases. De tool is beschikbaar vanaf Android Studio 4.1 en wordt gestart via Android Profiler of direct vanuit het View-menu.

Doel en mogelijkheden

De hoofdtaak van Database Inspector is datavisualisatie tijdens het ontwikkelproces. In plaats van de database-inhoud in de log weer te geven of een apart scherm te schrijven voor het bekijken van gegevens, kan de ontwikkelaar Database Inspector openen en onmiddellijk alle tabellen, hun schema en inhoud zien. De tool ondersteunt zowel relationele SQLite-databases als Room met Auto-migraties.

Wanneer Database Inspector gebruiken

De tool is onmisbaar in scenario's waarin de juistheid van gegevensopslag moet worden gecontroleerd na het uitvoeren van een bewerking: gebruikersregistratie, synchronisatie met de server, caching van lijsten. In plaats van een test-UI te schrijven, wordt de database-dump bekeken via Database Inspector. De tool wordt ook actief gebruikt voor het debuggen van Room-migraties — het actuele tabellenschema kan worden bekeken na elke schema-update.

Hoe werkt Database Inspector

Database Inspector maakt verbinding met het proces van de Android-applicatie via Android Profiler Service. Het detecteert alle open SQLite-verbindingen in de applicatie en toont ze in het zijpaneel. Voor werking is een Debug-build van de applicatie vereist met API Level 26 (Android 8.0) en hoger.

Architectuur en werkingsmechanisme

Bij het starten maakt Database Inspector een ADB-tunnel tussen de applicatie op het apparaat en de IDE op de computer. De WAL-bestanden (Write-Ahead Logging) van de SQLite-database worden via deze tunnel gestreamd om de inhoud weer te geven. SQL-opdrachten worden rechtstreeks naar de SQLite-engine van de applicatie gestuurd via de Database Inspector-ondersteuning in Room en SQLiteDatabase. De tool detecteert automatisch het moment waarop de applicatie een database opent en voegt deze toe aan de lijst van geïnspecteerde databases.

Omgevingsvereisten

Voor correcte werking van Database Inspector is vereist: Android Studio 4.1+, apparaat of emulator met API Level 26+, Debug-build van de applicatie. Voor Room is daarnaast de room-runtime bibliotheek versie 2.2+ vereist. Als de database in WAL-modus is gemaakt, wat standaard is voor Room 2.2+, kan de tool gegevens lezen zonder de hoofdapplicatie te blokkeren.

kotlin
// Voorbeeld van een Room-database ondersteund door Database Inspector
@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
}

Belangrijkste functionaliteiten van Database Inspector

Database Inspector biedt een volledige set functies voor het werken met lokale gegevens: van het bekijken van het tabellenschema tot het uitvoeren van complexe SQL-query's en het bewerken van records.

Tabellen en schema bekijken

In het linkerpaneel worden alle databases en tabellen weergegeven. Bij het selecteren van een tabel wordt de inhoud geopend in tabelvorm met kolommen: alle recordvelden worden als kolommen weergegeven, elke rij is een afzonderlijk record. Het tabelschema (naam, type, constraints) wordt bovenaan weergegeven. Voor externe sleutels worden de relaties tussen tabellen getoond.

GegevenstypeSQLite-typeRoom-typeVoorbeeld
Geheel getalINTEGERInt, Long42
TekenreeksTEXTString„John”
Decimaal getalREALDouble, Float3.14
Binaire gegevensBLOBByteArray[0x00, 0x01]
Datum/tijdINTEGER (Unix epoch)Long, Date1720000000

SQL-query's uitvoeren

Het tabblad Query maakt het mogelijk willekeurige SQL-opdrachten rechtstreeks op de geselecteerde database uit te voeren. SELECT, INSERT, UPDATE, DELETE, CREATE INDEX, JOIN en alle andere SQLite-operatoren worden ondersteund. Resultaten worden in tabelvorm onder de query-editor weergegeven. De querygeschiedenis wordt tijdens de sessie bewaard.

Records bewerken

Tabelcellen kunnen direct worden bewerkt — klik eenvoudig op de waarde en voer een nieuwe in. Wijzigingen worden onmiddellijk toegepast op de actieve applicatie. Dit is vooral handig voor het testen van randgevallen: null instellen in een verplicht veld, ID vervangen door een niet-bestaande, verwerking van lange tekenreeksen controleren. Alle wijzigingen worden in realtime vastgelegd.

Room debuggen met Database Inspector

Database Inspector heeft een diepe integratie met Room, wat het onmisbaar maakt bij het ontwikkelen van applicaties met deze bibliotheek. Naast de standaard functionaliteit biedt de inspector specifieke mogelijkheden voor Room.

DAO-query's bekijken

Voor Room-databases toont Database Inspector de gegenereerde SQL-query's voor elke DAO-methode. Dit maakt het mogelijk te verifiëren dat Room correcte SQL genereert, vooral voor complexe query's met JOIN, @Relation en @Transaction. Als Room een inefficiënte query uitvoert (bijvoorbeeld N+1 query's in plaats van één JOIN), is dit direct zichtbaar in de query-log van Database Inspector.

Migraties debuggen

Bij het updaten van het Room-schema met AutoMigration of handmatige migraties, toont Database Inspector de actuele tabelstructuur na de migratie. Het volstaat de inspector te openen na het starten van de applicatie en te controleren of alle kolommen, indexen en externe sleutels correct zijn aangemaakt. Als de migratie met een fout is mislukt, wordt de database niet geopend — de tool toont de laatst beschikbare versie.

Relations en Embedded controleren

Room maakt het mogelijk gegevens uit meerdere tabellen te combineren via @Relation en @Embedded. Database Inspector helpt bij het visueel controleren van de juistheid van relaties door gegevens van gerelateerde tabellen naast elkaar weer te geven. Voor elke externe sleutel kan met één klik naar de gerelateerde tabel worden genavigeerd.

kotlin
// Entity met Relation voor controle via 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 gebruiksscenario's van Database Inspector

Database Inspector lost specifieke programmeertaken op die ontstaan bij het werken met lokale gegevensopslag. Laten we de meest voorkomende gebruiksscenario's van de tool in het dagelijkse werk bekijken.

Controleren van gegevenscaching

Vaak cached de applicatie API-antwoorden in een lokale database. Database Inspector maakt het mogelijk de juistheid van caching te verifiëren: na het uitvoeren van synchronisatie kunnen de actuele records in de cachetabel worden bekeken. Als de gegevens niet verschijnen — ligt het probleem in de opslagcode. Als er duplicaten verschijnen — ligt het probleem in de upsert-logica.

Debuggen van gegevensinvoerfouten

Wanneer een DAO-methode geen gegevens opslaat maar geen uitzondering gooit, toont Database Inspector de actuele staat van de tabel. Typische oorzaken: Primary Key-conflict (OnConflictStrategy-instelling), onjuist gegevenstype in kolom, schending van NOT NULL-constraints of Foreign Key violation. De inspector maakt het mogelijk de changeset van de database voor en na de bewerking te bekijken. Het vergelijken van gegevensmomentopnamen voor en na het aanroepen van DAO — een van de meest effectieve manieren om transactiefouten te debuggen en de juistheid van de bedrijfslogica van de applicatie bij complexe schrijfbewerkingen te controleren.

Refactoren van databaseschema

Bij het wijzigen van het tabellenschema — toevoegen van kolommen, hernoemen van velden, splitsen van tabellen — helpt Database Inspector het resultaat van de migratie te controleren. Het volstaat de applicatie te starten met de nieuwe databaseversie en te verifiëren dat alle gegevens correct naar de nieuwe structuur zijn overgebracht. Als gegevens na de migratie zijn verdwenen, kunnen ze worden hersteld uit de dump die voor het refactoren is opgeslagen. Dit scenario is met name relevant bij de overgang van SQLiteOpenHelper naar Room of bij het wijzigen van de structuur van bestaande tabellen in een nieuwe versie van de applicatie.

Prestatiemonitoring van query's

Database Inspector kan ook worden gebruikt voor het evalueren van de prestaties van SQL-query's. Door SELECT uit te voeren via het tabblad Query en de responstijd te meten, kunnen query's worden geïdentificeerd die indexen missen. Room logt automatisch langzame query's in Logcat met de aanduiding SLOW SQL, en Database Inspector maakt het mogelijk direct EXPLAIN QUERY PLAN uit te voeren voor analyse van het uitvoeringsplan.

Veelgestelde vragen

Waarom ziet Database Inspector mijn database niet?

Zorg ervoor dat de applicatie in de Debug-modus draait en dat het API Level van het apparaat 26 of hoger is. Als de database in een apart proces of met SQLCipher (versleuteling) wordt gemaakt, kan Database Inspector deze mogelijk niet detecteren. Gebruik voor SQLCipher een hulpdebug-database zonder versleuteling.

Kunnen gegevens worden bewerkt via Database Inspector?

Ja, gegevens bewerken is rechtstreeks in de tabelcellen mogelijk. Dubbelklik op de waarde om deze te wijzigen. Wijzigingen worden onmiddellijk toegepast op de database van de actieve applicatie. Gebruik voor het toevoegen van nieuwe records een INSERT SQL-query via het tabblad Query.

Ondersteunt Database Inspector Realm-databases?

Nee, Database Inspector ondersteunt Realm niet, omdat Realm geen SQLite gebruikt. Gebruik voor het debuggen van Realm: Realm Object Server, Realm Studio of logging in de applicatie. Voor MongoDB Realm SDK is een eigen Realm Studio-tool beschikbaar voor macOS, Windows en Linux.

Hoe exporteer ik een database uit Database Inspector?

Database Inspector maakt het mogelijk de database volledig te exporteren. Klik met de rechtermuisknop op de databasenaam in de lijst en selecteer Export Database. Het .db-bestand wordt op de computer opgeslagen. Gebruik voor het bekijken elke SQLite-browser, bijvoorbeeld DB Browser for SQLite.

Beïnvloedt Database Inspector de prestaties van de applicatie?

Volgens Google is de overhead minimaal — Database Inspector leest de WAL-bestanden van de database zonder het schrijven te blokkeren. Het uitvoeren van aangepaste SQL-query's kan de database tijdelijk belasten, maar dit wordt door de ontwikkelaar gecontroleerd. Voor productie-builds wordt de tool automatisch uitgeschakeld.

Samenvatting

  • Database Inspector — is een in Android Studio ingebouwde tool voor het in realtime bekijken en bewerken van SQLite-databases van de applicatie
  • Room-ondersteuning omvat het bekijken van DAO-query's, debuggen van migraties en controleren van @Relation en @Embedded
  • SQL-query's uitvoeren via het tabblad Query met ondersteuning voor alle SQLite-operatoren en het bewaren van geschiedenis
  • Realtime bewerken maakt het mogelijk celwaarden te wijzigen en het resultaat direct in de actieve applicatie te zien
  • Database exporteren naar .db-bestand voor analyse in externe tools of overdracht aan collega's
  • Voor werking is Android Studio 4.1+, Debug-build en API Level 26+ vereist — controleer deze vereisten als de tool de database niet toont
  • Gebruik Database Inspector regelmatig bij het ontwikkelen van functies die verband houden met lokale gegevensopslag — dit versnelt het debuggen aanzienlijk

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook