Database Inspector: vad är det, hur man arbetar med SQLite och felsöker Room

Författare: IT Sectr Publicerad: 2026-05-07 Lästid: 8 min

Database Inspector i Android Studio — är ett inbyggt verktyg för att visa och felsöka SQLite-databaser i mobilapplikationen i realtid. Enligt officiella dokumentationen från Android Developers (2025), gör verktyget det möjligt att utföra SQL-frågor mot den aktiva databasen, visa tabellstruktur och redigera poster utan att stoppa applikationen. Verktyget stöder Room, SQLiteOpenHelper och alla in-app-databaser, och upptäcker dem automatiskt vid start av profilering.

Huvudpunkter

  • Database Inspector — är en komponent i Android Studio för att visa applikationens SQLite-databaser i realtid med möjlighet att utföra frågor
  • Room-stöd — full integration med Room, inklusive visning av DAO-frågor och spårning av ändringar i databasen
  • Redigering av data — ändring av tabellcellsvärden direkt från inspektörens gränssnitt med omedelbar återspegling i applikationen
  • SQL-exekvering — möjlighet att skriva och utföra godtyckliga SQL-frågor, inklusive JOIN, GROUP BY och underfrågor
  • Export av databas — spara en databasdump på datorn för analys eller överföring till kollegor

Vad är Database Inspector?

Database Inspector — är ett Android Studio-verktyg för inspektion och felsökning av lokala databaser i mobilapplikationen. Det gör det möjligt att visa alla SQLite-databaser som skapats av applikationen, inklusive Room-, SQLiteOpenHelper- och tredjepartsbiblioteksdatabaser. Verktyget är tillgängligt från Android Studio 4.1 och startas via Android Profiler eller direkt från View-menyn.

Syfte och möjligheter

Huvuduppgiften för Database Inspector är visualisering av data under utvecklingsprocessen. Istället för att skriva ut databasinnehållet i loggen eller skriva en separat skärm för att visa data, kan utvecklaren öppna Database Inspector och omedelbart se alla tabeller, deras schema och innehåll. Verktyget stöder både relationsdatabaser med SQLite och Room med Auto-migreringar.

När du ska använda Database Inspector

Verktyget är oumbärligt i scenarier där du behöver kontrollera korrektheten av datalagring efter en operation: användarregistrering, synkronisering med servern, cachning av listor. Istället för att skriva ett test-UI visas databasdumpen via Database Inspector. Verktyget används också aktivt för felsökning av Room-migreringar — det aktuella tabellschemat kan ses efter varje schemauppdatering.

Hur fungerar Database Inspector

Database Inspector ansluter till processen för Android-applikationen via Android Profiler Service. Den upptäcker alla öppna SQLite-anslutningar i applikationen och visar dem i sidopanelen. För att fungera krävs en Debug-build av applikationen med API Level 26 (Android 8.0) och högre.

Arkitektur och funktionsmekanism

Vid start skapar Database Inspector en ADB-tunnel mellan applikationen på enheten och IDE på datorn. WAL-filerna (Write-Ahead Logging) för SQLite-databasen strömmas via denna tunnel för att visa innehåll. SQL-kommandon skickas direkt till applikationens SQLite-motor via Database Inspector-stöd i Room och SQLiteDatabase. Verktyget upptäcker automatiskt när applikationen öppnar en databas och lägger till den i listan över inspekterade databaser.

Miljökrav

För korrekt funktion av Database Inspector krävs: Android Studio 4.1+, enhet eller emulator med API Level 26+, Debug-build av applikationen. För Room krävs dessutom room-runtime-biblioteket version 2.2+. Om databasen skapas i WAL-läge, vilket är standard för Room 2.2+, kan verktyget läsa data utan att blockera huvudapplikationen.

kotlin
// Exempel på Room-databas som stöds av 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
}

Huvudfunktioner i Database Inspector

Database Inspector erbjuder en fullständig uppsättning funktioner för att arbeta med lokal data: från visning av tabellschema till exekvering av komplexa SQL-frågor och redigering av poster.

Visa tabeller och schema

I den vänstra panelen visas alla databaser och tabeller. När du väljer en tabell öppnas dess innehåll i tabellform med kolumner: alla postfält visas som kolumner, varje rad är en separat post. Tabellschemat (namn, typ, begränsningar) visas högst upp. För främmande nycklar visas relationerna mellan tabellerna.

DatatypSQLite-typRoom-typExempel
HeltalINTEGERInt, Long42
SträngTEXTString“John”
DecimaltalREALDouble, Float3.14
Binär dataBLOBByteArray[0x00, 0x01]
Datum/tidINTEGER (Unix epoch)Long, Date1720000000

Utföra SQL-frågor

Fliken Query gör det möjligt att utföra godtyckliga SQL-kommandon direkt på den valda databasen. SELECT, INSERT, UPDATE, DELETE, CREATE INDEX, JOIN och alla andra SQLite-operatorer stöds. Resultaten visas i tabellform under frågeredigeraren. Frågehistoriken sparas under sessionen.

Redigera poster

Tabellceller kan redigeras direkt — klicka bara på värdet och ange ett nytt. Ändringarna tillämpas omedelbart på den aktiva applikationen. Detta är särskilt användbart för att testa gränsfall: sätta null i ett obligatoriskt fält, ersätta ID med ett obefintligt, kontrollera hantering av långa strängar. Alla ändringar registreras i realtid.

Felsökning av Room med Database Inspector

Database Inspector har en djup integration med Room, vilket gör den oumbärlig vid utveckling av applikationer med detta bibliotek. Förutom standardfunktionaliteten erbjuder inspektören specifika möjligheter för Room.

Visa DAO-frågor

För Room-databaser visar Database Inspector de genererade SQL-frågorna för varje DAO-metod. Detta gör det möjligt att verifiera att Room genererar korrekt SQL, särskilt för komplexa frågor med JOIN, @Relation och @Transaction. Om Room utför en ineffektiv fråga (till exempel N+1 frågor istället för en JOIN), syns detta omedelbart i Database Inspectors frågelogg.

Felsökning av migreringar

Vid uppdatering av Room-schemat med AutoMigration eller manuella migreringar, visar Database Inspector den aktuella tabellstrukturen efter migreringen. Öppna bara inspektören efter att applikationen startats och kontrollera att alla kolumner, index och främmande nycklar har skapats korrekt. Om migreringen misslyckades med ett fel öppnas inte databasen — verktyget visar den senast tillgängliga versionen.

Kontroll av Relations och Embedded

Room gör det möjligt att kombinera data från flera tabeller via @Relation och @Embedded. Database Inspector hjälper till att visuellt kontrollera korrektheten av relationer genom att visa data från relaterade tabeller sida vid sida. För varje främmande nyckel kan du navigera till den relaterade tabellen med ett klick.

kotlin
// Entitet med Relation för kontroll 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>
)

Praktiska användningsscenarier för Database Inspector

Database Inspector löser specifika programmeringsuppgifter som uppstår vid arbete med lokal datalagring. Låt oss titta på de vanligaste användningsscenarierna för verktyget i det dagliga arbetet.

Kontroll av datacachning

Ofta cachar applikationen API-svar i en lokal databas. Database Inspector gör det möjligt att verifiera korrektheten av cachning: efter synkronisering kan aktuella poster ses i cachtabellen. Om data inte visas — ligger problemet i lagringskoden. Om dubbletter visas — ligger problemet i upsert-logiken.

Felsökning av datainmatningsfel

När en DAO-metod inte sparar data men inte kastar ett undantag, visar Database Inspector tabellens aktuella tillstånd. Typiska orsaker: Primary Key-konflikt (OnConflictStrategy-inställning), felaktig datatyp i kolumn, brott mot NOT NULL-begränsningar eller Foreign Key violation. Inspektören gör det möjligt att se databasens changeset före och efter operationen. Jämförelse av dataögonblicksbilder före och efter DAO-anrop — ett av de mest effektiva sätten att felsöka transaktionsfel och kontrollera korrektheten av applikationens affärslogik vid komplexa skrivoperationer.

Refaktorering av databasschema

Vid ändring av tabellschema — lägga till kolumner, byta namn på fält, dela tabeller — hjälper Database Inspector att kontrollera migreringsresultatet. Starta bara applikationen med den nya databasversionen och verifiera att all data har överförts korrekt till den nya strukturen. Om data försvann efter migreringen kan de återställas från dumpen som sparades före refaktoreringen. Detta scenario är särskilt relevant vid övergång från SQLiteOpenHelper till Room eller vid ändring av strukturen på befintliga tabeller i en ny version av applikationen.

Övervakning av frågeprestanda

Database Inspector kan också användas för att utvärdera prestanda hos SQL-frågor. Genom att utföra SELECT via fliken Query och mäta svarstiden kan frågor som saknar index identifieras. Room loggar automatiskt långsamma frågor i Logcat med märkningen SLOW SQL, och Database Inspector gör det möjligt att omedelbart utföra EXPLAIN QUERY PLAN för analys av exekveringsplanen.

Vanliga frågor

Varför ser Database Inspector inte min databas?

Se till att applikationen körs i Debug-läge och att enhetens API Level är 26 eller högre. Om databasen skapas i en separat process eller med SQLCipher (kryptering) kan Database Inspector inte upptäcka den. För SQLCipher, använd en hjälpdebug-databas utan kryptering.

Kan jag redigera data via Database Inspector?

Ja, dataredigering är möjlig direkt i tabellcellerna. Dubbelklicka på värdet för att ändra det. Ändringarna tillämpas omedelbart på databasen i den aktiva applikationen. För att lägga till nya poster, använd en INSERT SQL-fråga via fliken Query.

Stöder Database Inspector Realm-databaser?

Nej, Database Inspector stöder inte Realm, eftersom Realm inte använder SQLite. För felsökning av Realm, använd Realm Object Server, Realm Studio eller loggning i applikationen. För MongoDB Realm SDK finns ett eget Realm Studio-verktyg för macOS, Windows och Linux.

Hur exporterar jag en databas från Database Inspector?

Database Inspector gör det möjligt att exportera databasen fullständigt. Högerklicka på databasnamnet i listan och välj Export Database. .db-filen sparas på datorn. För visning, använd valfri SQLite-webbläsare, till exempel DB Browser for SQLite.

Påverkar Database Inspector applikationens prestanda?

Enligt Google är overheaden minimal — Database Inspector läser databasens WAL-filer utan att blockera skrivning. Exekvering av anpassade SQL-frågor kan tillfälligt belasta databasen, men detta kontrolleras av utvecklaren. För produktionsbyggen stängs verktyget automatiskt av.

Sammanfattning

  • Database Inspector — är ett inbyggt verktyg i Android Studio för att visa och redigera applikationens SQLite-databaser i realtid
  • Room-stöd inkluderar visning av DAO-frågor, felsökning av migreringar och kontroll av @Relation och @Embedded
  • Exekvering av SQL-frågor via fliken Query med stöd för alla SQLite-operatorer och lagring av historik
  • Realtidsredigering gör det möjligt att ändra cellvärden och omedelbart se resultatet i den aktiva applikationen
  • Export av databas till .db-fil för analys i externa verktyg eller överföring till kollegor
  • För funktion krävs Android Studio 4.1+, Debug-build och API Level 26+ — kontrollera dessa krav om verktyget inte visar databasen
  • Använd Database Inspector regelbundet vid utveckling av funktioner relaterade till lokal datalagring — detta påskyndar felsökningen avsevärt

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också