Database Inspector: mi ez, hogyan dolgozzunk SQLite-tal és végezzünk Room hibakeresést

Szerző: IT Sectr Megjelenés: 2026-05-07 Olvasási idő: 8 perc

A Database Inspector az Android Studio-ban — egy beépített eszköz a mobilalkalmazás SQLite adatbázisainak valós idejű megtekintésére és hibakeresésére. A Android Developers (2025) hivatalos dokumentációja szerint az eszköz lehetővé teszi SQL lekérdezések végrehajtását az aktív adatbázisra, a táblák szerkezetének megtekintését és rekordok szerkesztését az alkalmazás leállítása nélkül. Az eszköz támogatja a Roomot, SQLiteOpenHelper-t és bármilyen in-app adatbázist, automatikusan észlelve azokat a profilozás indításakor.

Főbb pontok

  • Database Inspector — az Android Studio egy komponense az alkalmazás SQLite adatbázisainak valós idejű megtekintésére lekérdezések végrehajtásának lehetőségével
  • Room támogatás — teljes integráció a Roommal, beleértve a DAO lekérdezések megtekintését és az adatbázis változásainak nyomon követését
  • Adatok szerkesztése — táblázat cellaértékeinek módosítása közvetlenül az inspektor felületéről, azonnali tükrözéssel az alkalmazásban
  • SQL végrehajtás — lehetőség tetszőleges SQL lekérdezések írására és végrehajtására, beleértve a JOIN, GROUP BY és allekérdezéseket
  • Adatbázis exportálása — az adatbázis dumpjának mentése a számítógépre elemzéshez vagy kollégáknak továbbításhoz

Mi az a Database Inspector?

Database Inspector — egy Android Studio eszköz a helyi adatbázisok ellenőrzésére és hibakeresésére a mobilalkalmazásban. Lehetővé teszi az alkalmazás által létrehozott összes SQLite adatbázis megtekintését, beleértve a Room, SQLiteOpenHelper és harmadik féltől származó könyvtárak adatbázisait. Az eszköz Android Studio 4.1-től elérhető, és az Android Profileren keresztül vagy közvetlenül a View menüből indítható.

Cél és lehetőségek

A Database Inspector fő feladata az adatok vizualizációja a fejlesztési folyamat során. Ahelyett, hogy az adatbázis tartalmát naplóba írná, vagy külön képernyőt írna az adatok megtekintéséhez, a fejlesztő megnyithatja a Database Inspector-t, és azonnal láthatja az összes táblát, azok sémáját és tartalmát. Az eszköz támogatja mind a relációs SQLite adatbázisokat, mind a Roomot Auto-migrációkkal.

Mikor használjuk a Database Inspector-t

Az eszköz nélkülözhetetlen olyan forgatókönyvekben, amikor ellenőrizni kell az adatok mentésének helyességét egy művelet végrehajtása után: felhasználói regisztráció, szinkronizálás a szerverrel, listák gyorsítótárazása. A teszt UI írása helyett az adatbázis dumpja a Database Inspector-on keresztül tekinthető meg. Az eszközt aktívan használják Room migrációk hibakeresésére is — a táblák aktuális sémája minden sémafrissítés után megtekinthető.

Hogyan működik a Database Inspector

A Database Inspector csatlakozik az Android alkalmazás folyamatához az Android Profiler Service-en keresztül. Észleli az alkalmazás összes nyitott SQLite kapcsolatát, és megjeleníti azokat az oldalsó panelen. A működéshez az alkalmazás Debug build-je szükséges API Level 26 (Android 8.0) és magasabb verziókkal.

Architektúra és működési mechanizmus

Indításkor a Database Inspector létrehoz egy ADB alagutat az eszközön futó alkalmazás és a számítógép IDE-je között. Az SQLite adatbázis WAL (Write-Ahead Logging) fájljai ezen az alagúton keresztül kerülnek továbbításra a tartalom megjelenítéséhez. Az SQL parancsok közvetlenül az alkalmazás SQLite motorjába kerülnek küldésre a Database Inspector támogatásán keresztül a Roomban és az SQLiteDatabase-ben. Az eszköz automatikusan észleli, amikor az alkalmazás megnyit egy adatbázist, és hozzáadja azt a vizsgált adatbázisok listájához.

Környezeti követelmények

A Database Inspector helyes működéséhez szükséges: Android Studio 4.1+, API Level 26+ eszköz vagy emulátor, az alkalmazás Debug build-je. Room esetén továbbá szükséges a room-runtime könyvtár 2.2+ verziója. Ha az adatbázis WAL módban jött létre, ami a Room 2.2+ esetén szabványos, az eszköz képes az adatokat olvasni a főalkalmazás blokkolása nélkül.

kotlin
// Példa a Database Inspector által támogatott Room adatbázisra
@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
}

A Database Inspector fő funkciói

A Database Inspector teljes funkciókészletet biztosít a helyi adatokkal való munkához: a táblaséma megtekintésétől az összetett SQL lekérdezések végrehajtásáig és a rekordok szerkesztéséig.

Táblák és séma megtekintése

A bal oldali panelen az összes adatbázis és tábla megjelenik. Egy tábla kiválasztásakor annak tartalma táblázatos formában nyílik meg oszlopokkal: a rekord összes mezője oszlopként jelenik meg, minden sor egy külön rekord. A tábla sémája (név, típus, megszorítások) felül látható. A külső kulcsokhoz a táblák közötti kapcsolatok jelennek meg.

AdattípusSQLite típusRoom típusPélda
Egész számINTEGERInt, Long42
KarakterláncTEXTString„John”
Tört számREALDouble, Float3.14
Bináris adatBLOBByteArray[0x00, 0x01]
Dátum/időINTEGER (Unix epoch)Long, Date1720000000

SQL lekérdezések végrehajtása

A Query fül lehetővé teszi tetszőleges SQL parancsok közvetlen végrehajtását a kiválasztott adatbázison. A SELECT, INSERT, UPDATE, DELETE, CREATE INDEX, JOIN és bármely más SQLite operátor támogatott. Az eredmények táblázatos formában jelennek meg a lekérdezés-szerkesztő alatt. A lekérdezések előzményei a munkamenet során megmaradnak.

Rekordok szerkesztése

A táblázat cellái közvetlenül szerkeszthetők — elég rákattintani az értékre és beírni az újat. A változtatások azonnal alkalmazásra kerülnek a futó alkalmazásban. Ez különösen hasznos határesetek teszteléséhez: null beállítása kötelező mezőben, ID cseréje nem létezőre, hosszú karakterláncok feldolgozásának ellenőrzése. Minden változtatás valós időben rögzítésre kerül.

Room hibakeresés Database Inspectorral

A Database Inspector mély integrációval rendelkezik a Roommal, ami nélkülözhetetlenné teszi az ezzel a könyvtárral történő alkalmazásfejlesztés során. A szabványos funkciókon túl az inspektor Room-specifikus lehetőségeket is biztosít.

DAO lekérdezések megtekintése

A Room adatbázisok esetén a Database Inspector megjeleníti a generált SQL lekérdezéseket minden DAO metódushoz. Ez lehetővé teszi annak ellenőrzését, hogy a Room helyes SQL-t generál, különösen összetett, JOIN, @Relation és @Transaction lekérdezések esetén. Ha a Room nem hatékony lekérdezést hajt végre (például N+1 lekérdezést egy JOIN helyett), az azonnal látható a Database Inspector lekérdezési naplójában.

Migrációk hibakeresése

A Room séma AutoMigration vagy kézi migrációval történő frissítésekor a Database Inspector a táblák aktuális szerkezetét mutatja a migráció után. Elég megnyitni az inspektort az alkalmazás elindítása után, és ellenőrizni, hogy minden oszlop, index és külső kulcs helyesen jött létre. Ha a migráció hibával végződött, az adatbázis nem nyílik meg — az eszköz az utolsó elérhető verziót mutatja.

Relations és Embedded ellenőrzése

A Room lehetővé teszi adatok egyesítését több táblából a @Relation és @Embedded segítségével. A Database Inspector segít a kapcsolatok helyességének vizuális ellenőrzésében a kapcsolódó táblák adatainak egymás melletti megjelenítésével. Minden külső kulcshoz egy kattintással navigálhat a kapcsolódó táblához.

kotlin
// Entity Relation-nel a Database Inspectoron keresztüli ellenőrzéshez
@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>
)

A Database Inspector használatának gyakorlati forgatókönyvei

A Database Inspector speciális programozási feladatokat old meg, amelyek a helyi adattárolással való munka során merülnek fel. Tekintsük át az eszköz leggyakoribb használati forgatókönyveit a mindennapi munkában.

Adatok gyorsítótárazásának ellenőrzése

Gyakran az alkalmazás gyorsítótárazza az API válaszokat a helyi adatbázisban. A Database Inspector lehetővé teszi a gyorsítótárazás helyességének ellenőrzését: a szinkronizálás végrehajtása után az aktuális rekordok megtekinthetők a gyorsítótár táblában. Ha az adatok nem jelennek meg — a probléma a mentési kódban van. Ha duplikátumok jelennek meg — a probléma az upsert logikában van.

Adatbeviteli hibák hibakeresése

Amikor egy DAO metódus nem menti az adatokat, de nem dob kivételt, a Database Inspector megmutatja a tábla aktuális állapotát. Tipikus okok: Primary Key ütközés (OnConflictStrategy beállítás), helytelen adattípus az oszlopban, NOT NULL megszorítások megsértése vagy Foreign Key violation. Az inspektor lehetővé teszi az adatbázis változáskészletének megtekintését a művelet előtt és után. Az adatok pillanatképeinek összehasonlítása a DAO hívása előtt és után — az egyik leghatékonyabb módja a tranzakciós hibák hibakeresésének és az alkalmazás üzleti logikája helyességének ellenőrzésének összetett írási műveleteknél.

Adatbázis séma refaktorálása

A táblaséma megváltoztatásakor — oszlopok hozzáadása, mezők átnevezése, táblák felosztása — a Database Inspector segít ellenőrizni a migráció eredményét. Elég elindítani az alkalmazást az adatbázis új verziójával, és meggyőződni arról, hogy minden adat helyesen került át az új struktúrába. Ha a migráció után az adatok eltűntek, visszaállíthatók a refaktorálás előtt mentett dumpból. Ez a forgatókönyv különösen fontos az SQLiteOpenHelper-ről Room-ra való áttéréskor, vagy a meglévő táblák szerkezetének megváltoztatásakor az alkalmazás új verziójában.

Lekérdezések teljesítményének figyelése

A Database Inspector használható SQL lekérdezések teljesítményének értékelésére is. A Query fülön keresztül végrehajtott SELECT és a válaszidő mérése segítségével azonosíthatók az indexekkel nem rendelkező lekérdezések. A Room automatikusan naplózza a lassú lekérdezéseket a Logcat-ben SLOW SQL jelöléssel, és a Database Inspector lehetővé teszi azonnali EXPLAIN QUERY PLAN végrehajtását a végrehajtási terv elemzéséhez.

Gyakran Ismételt Kérdések

Miért nem látja a Database Inspector az adatbázisomat?

Győződjön meg arról, hogy az alkalmazás Debug módban fut, és az eszköz API Level-je 26 vagy magasabb. Ha az adatbázis külön folyamatban vagy SQLCipher (titkosítás) használatával jött létre, a Database Inspector előfordulhat, hogy nem érzékeli. SQLCipher esetén használjon titkosítás nélküli segéd debug-adatbázist.

Lehet adatokat szerkeszteni a Database Inspectoron keresztül?

Igen, az adatok szerkesztése közvetlenül a táblázat celláiban lehetséges. Kattintson duplán az értékre a módosításhoz. A változtatások azonnal alkalmazásra kerülnek a futó alkalmazás adatbázisában. Új rekordok hozzáadásához használjon INSERT SQL lekérdezést a Query fülön keresztül.

Támogatja a Database Inspector a Realm adatbázisokat?

Nem, a Database Inspector nem támogatja a Realm-öt, mivel a Realm nem használ SQLite-ot. A Realm hibakereséséhez használja a Realm Object Server-t, Realm Studio-t vagy naplózást az alkalmazásban. A MongoDB Realm SDK-hoz saját Realm Studio eszköz áll rendelkezésre macOS, Windows és Linux rendszereken.

Hogyan exportálhatok adatbázist a Database Inspector-ból?

A Database Inspector lehetővé teszi az adatbázis teljes exportálását. Kattintson jobb gombbal az adatbázis nevére a listában, és válassza az Export Database lehetőséget. A .db fájl a számítógépre mentésre kerül. Megtekintéséhez használjon bármilyen SQLite böngészőt, például a DB Browser for SQLite-ot.

Befolyásolja a Database Inspector az alkalmazás teljesítményét?

A Google szerint a többletterhelés minimális — a Database Inspector az adatbázis WAL fájljait olvassa, anélkül hogy blokkolná az írást. Az egyéni SQL lekérdezések végrehajtása ideiglenesen megterhelheti az adatbázist, de ezt a fejlesztő kontrollálja. Production build-ek esetén az eszköz automatikusan kikapcsol.

Összefoglalás

  • Database Inspector — egy Android Studio-ba épített eszköz az alkalmazás SQLite adatbázisainak valós idejű megtekintésére és szerkesztésére
  • Room támogatás magában foglalja a DAO lekérdezések megtekintését, a migrációk hibakeresését és a @Relation és @Embedded ellenőrzését
  • SQL lekérdezések végrehajtása a Query fülön keresztül az összes SQLite operátor támogatásával és előzmények megőrzésével
  • Valós idejű szerkesztés lehetővé teszi a cellaértékek módosítását és az eredmény azonnali megtekintését a futó alkalmazásban
  • Adatbázis exportálása .db fájlba külső eszközökben történő elemzéshez vagy kollégáknak továbbításhoz
  • A működéshez Android Studio 4.1+, Debug build és API Level 26+ szükséges — ellenőrizze ezeket a követelményeket, ha az eszköz nem jeleníti meg az adatbázist
  • Használja a Database Inspector-t rendszeresen a helyi adattárolással kapcsolatos funkciók fejlesztésekor — ez többszörösére gyorsítja a hibakeresést

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is