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-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.
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.
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.
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.
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.
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.
// 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
}
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.
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.
| Gegevenstype | SQLite-type | Room-type | Voorbeeld |
|---|---|---|---|
| Geheel getal | INTEGER | Int, Long | 42 |
| Tekenreeks | TEXT | String | „John” |
| Decimaal getal | REAL | Double, Float | 3.14 |
| Binaire gegevens | BLOB | ByteArray | [0x00, 0x01] |
| Datum/tijd | INTEGER (Unix epoch) | Long, Date | 1720000000 |
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.
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.
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.
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.
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.
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.
// 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>
)
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.
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.
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.
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.
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
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.
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.
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.
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.
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
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.
Lees ook