Database Inspector v Android Studio — je vestavěný nástroj pro prohlížení a ladění SQLite databází mobilní aplikace v reálném čase. Podle oficiální dokumentace Android Developers (2025), nástroj umožňuje provádět SQL dotazy na aktivní databázi, prohlížet strukturu tabulek a upravovat záznamy bez zastavení aplikace. Nástroj podporuje Room, SQLiteOpenHelper a jakékoli in-app databáze, automaticky je detekuje při spuštění profilování.
Hlavní body
Database Inspector — je nástroj Android Studio pro inspekci a ladění lokálních databází v mobilní aplikaci. Umožňuje prohlížet všechny SQLite databáze vytvořené aplikací, včetně databází Room, SQLiteOpenHelper a knihoven třetích stran. Nástroj je dostupný od Android Studio 4.1 a spouští se přes Android Profiler nebo přímo z nabídky View.
Hlavním úkolem Database Inspector je vizualizace dat v procesu vývoje. Místo vypisování obsahu databáze do logu nebo psaní samostatné obrazovky pro prohlížení dat může vývojář otevřít Database Inspector a okamžitě vidět všechny tabulky, jejich schéma a obsah. Nástroj podporuje jak relační SQLite databáze, tak Room s Auto-migracemi.
Nástroj je nepostradatelný ve scénářích, kdy je třeba zkontrolovat správnost ukládání dat po provedení operace: registrace uživatele, synchronizace se serverem, ukládání seznamů do mezipaměti. Místo psaní testovacího UI se dump databáze prohlíží přes Database Inspector. Nástroj se také aktivně používá pro ladění migrací Room — aktuální schéma tabulek lze vidět po každé aktualizaci schématu.
Database Inspector se připojuje k procesu Android aplikace přes Android Profiler Service. Detekuje všechna otevřená SQLite připojení v aplikaci a zobrazuje je v bočním panelu. Pro práci je vyžadován Debug build aplikace s API Level 26 (Android 8.0) a vyšším.
Při spuštění Database Inspector vytvoří ADB tunel mezi aplikací na zařízení a IDE v počítači. WAL (Write-Ahead Logging) soubory databáze SQLite jsou přenášeny tímto tunelem pro zobrazení obsahu. SQL příkazy jsou odesílány přímo do SQLite enginu aplikace prostřednictvím podpory Database Inspector v Room a SQLiteDatabase. Nástroj automaticky detekuje okamžik, kdy aplikace otevře databázi, a přidá ji do seznamu inspektovaných.
Pro správnou funkci Database Inspector je potřeba: Android Studio 4.1+, zařízení nebo emulátor s API Level 26+, Debug build aplikace. Pro Room je navíc vyžadována knihovna room-runtime verze 2.2+. Pokud je databáze vytvořena v režimu WAL, což je standard pro Room 2.2+, nástroj může číst data bez blokování hlavní aplikace.
// Příklad Room databáze podporované 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 poskytuje plnou sadu funkcí pro práci s lokálními daty: od prohlížení schématu tabulek až po provádění složitých SQL dotazů a úpravu záznamů.
V levém panelu se zobrazují všechny databáze a tabulky. Při výběru tabulky se její obsah otevře ve formě tabulky se sloupci: všechna pole záznamu se zobrazí jako sloupce, každý řádek je samostatný záznam. Schéma tabulky (název, typ, omezení) se zobrazuje nahoře. Pro cizí klíče se ukazují vazby mezi tabulkami.
| Datový typ | SQLite typ | Room typ | Příklad |
|---|---|---|---|
| Celé číslo | INTEGER | Int, Long | 42 |
| Řetězec | TEXT | String | „John” |
| Desetinné číslo | REAL | Double, Float | 3.14 |
| Binární data | BLOB | ByteArray | [0x00, 0x01] |
| Datum/čas | INTEGER (Unix epoch) | Long, Date | 1720000000 |
Karta Query umožňuje provádět libovolné SQL příkazy přímo na vybrané databázi. Jsou podporovány SELECT, INSERT, UPDATE, DELETE, CREATE INDEX, JOIN a jakékoli další SQLite operátory. Výsledky se zobrazují v tabulkové podobě pod editorem dotazů. Historie dotazů je uchovávána během relace.
Buňky tabulky lze upravovat přímo — stačí kliknout na hodnotu a zadat novou. Změny se okamžitě projeví v běžící aplikaci. To je zvláště užitečné pro testování okrajových případů: nastavení null v povinném poli, nahrazení ID neexistujícím, kontrola zpracování dlouhých řetězců. Všechny změny jsou zaznamenávány v reálném čase.
Database Inspector má hlubokou integraci s Room, což ho činí nepostradatelným při vývoji aplikací s touto knihovnou. Kromě standardní funkcionality poskytuje inspektor specifické možnosti pro Room.
Pro Room databáze Database Inspector zobrazuje vygenerované SQL dotazy pro každou DAO metodu. To umožňuje ověřit, že Room generuje správný SQL, zejména pro složité dotazy s JOIN, @Relation a @Transaction. Pokud Room provádí neefektivní dotaz (např. N+1 dotazů místo jednoho JOIN), je to okamžitě vidět v logu dotazů Database Inspector.
Při aktualizaci schématu Room s AutoMigration nebo ručními migracemi, Database Inspector ukazuje aktuální strukturu tabulek po migraci. Stačí otevřít inspektora po spuštění aplikace a zkontrolovat, že všechny sloupce, indexy a cizí klíče byly vytvořeny správně. Pokud migrace selhala s chybou, databáze se neotevře — nástroj zobrazí poslední dostupnou verzi.
Room umožňuje kombinovat data z více tabulek pomocí @Relation a @Embedded. Database Inspector pomáhá vizuálně zkontrolovat správnost vazeb zobrazením dat souvisejících tabulek vedle sebe. Pro každý cizí klíč lze jedním kliknutím přejít na související tabulku.
// Entita s Relation pro kontrolu přes 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 řeší konkrétní programátorské úkoly, které vznikají při práci s lokálním ukládáním dat. Podívejme se na nejčastější scénáře použití nástroje v každodenní práci.
Často aplikace ukládá odpovědi API do mezipaměti v lokální databázi. Database Inspector umožňuje ověřit správnost ukládání do mezipaměti: po provedení synchronizace lze vidět aktuální záznamy v tabulce mezipaměti. Pokud se data neobjevila — problém je v kódu ukládání. Pokud se objevily duplicity — problém je v logice upsert.
Když DAO metoda neukládá data, ale nevyhazuje výjimku, Database Inspector ukazuje aktuální stav tabulky. Typické příčiny: konflikt Primary Key (nastavení OnConflictStrategy), nesprávný datový typ ve sloupci, porušení omezení NOT NULL nebo Foreign Key violation. Inspektor umožňuje vidět changeset databáze před a po operaci. Porovnání snímků dat před a po volání DAO — jeden z nejúčinnějších způsobů ladění transakčních chyb a kontroly správnosti business logiky aplikace při složitých zápisových operacích.
Při změně schématu tabulek — přidávání sloupců, přejmenovávání polí, rozdělování tabulek — Database Inspector pomáhá zkontrolovat výsledek migrace. Stačí spustit aplikaci s novou verzí databáze a ujistit se, že všechna data byla správně přenesena do nové struktury. Pokud data po migraci zmizela, lze je obnovit z dumpu uloženého před refaktorováním. Tento scénář je zvláště důležitý při přechodu z SQLiteOpenHelper na Room nebo při změně struktury existujících tabulek v nové verzi aplikace.
Database Inspector lze také použít pro hodnocení výkonu SQL dotazů. Provedením SELECT přes kartu Query a měřením doby odezvy lze identifikovat dotazy, kterým chybí indexy. Room automaticky loguje pomalé dotazy do Logcat s označením SLOW SQL a Database Inspector umožňuje okamžitě provést EXPLAIN QUERY PLAN pro analýzu plánu provedení.
Často kladené otázky
Ujistěte se, že aplikace běží v režimu Debug a API Level zařízení je 26 nebo vyšší. Pokud je databáze vytvořena v samostatném procesu nebo s použitím SQLCipher (šifrování), Database Inspector ji nemusí detekovat. Pro SQLCipher použijte pomocnou debug databázi bez šifrování.
Ano, úprava dat je možná přímo v buňkách tabulky. Dvojité kliknutí na hodnotu umožňuje její změnu. Změny se okamžitě aplikují na databázi běžící aplikace. Pro přidání nových záznamů použijte SQL dotaz INSERT přes kartu Query.
Ne, Database Inspector nepodporuje Realm, protože Realm nepoužívá SQLite. Pro ladění Realm použijte Realm Object Server, Realm Studio nebo logování v aplikaci. Pro MongoDB Realm SDK je k dispozici vlastní nástroj Realm Studio pro macOS, Windows a Linux.
Database Inspector umožňuje exportovat databázi celou. Klikněte pravým tlačítkem na název databáze v seznamu a vyberte Export Database. Soubor .db se uloží do počítače. Pro prohlížení použijte libovolný SQLite prohlížeč, například DB Browser for SQLite.
Podle Google je režie minimální — Database Inspector čte WAL soubory databáze, aniž by blokoval zápis. Provádění vlastních SQL dotazů může dočasně zatížit databázi, ale to je kontrolováno vývojářem. Pro produkční sestavení se nástroj automaticky vypíná.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také