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 — 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ó.
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.
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ő.
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.
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.
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.
// 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 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.
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ípus | SQLite típus | Room típus | Példa |
|---|---|---|---|
| Egész szám | INTEGER | Int, Long | 42 |
| Karakterlánc | TEXT | String | „John” |
| Tört szám | REAL | Double, Float | 3.14 |
| Bináris adat | BLOB | ByteArray | [0x00, 0x01] |
| Dátum/idő | INTEGER (Unix epoch) | Long, Date | 1720000000 |
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.
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.
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.
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.
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.
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.
// 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 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.
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.
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.
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.
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
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.
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.
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.
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.
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
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.
Olvassa el is