Database Inspector у Android Studio — уграђени је алат за преглед и отклањање грешака SQLite база података мобилне апликације у реалном времену. Према званичној документацији Android Developers (2025), алат омогућава извршавање SQL упита ка активној бази, преглед структуре табела и уређивање записа без заустављања апликације. Алат подржава Room, SQLiteOpenHelper и било које in-app базе података, аутоматски их откривајући при покретању профилисања.
Главно
Database Inspector — алат Android Studio за инспекцију и отклањање грешака локалних база података у мобилној апликацији. Омогућава преглед свих SQLite база података креираних од стране апликације, укључујући Room базе, SQLiteOpenHelper и библиотека трећих страна. Алат је доступан од Android Studio 4.1 и покреће се преко Android Profiler-а или директно из View менија.
Основни задатак Database Inspector-а је визуелизација података у процесу развоја. Уместо исписивања садржаја базе у лог или писања посебног екрана за преглед података, програмер може отворити Database Inspector и одмах видети све табеле, њихову шему и садржај. Алат подржава како релационе SQLite базе, тако и Room са Auto-миграцијама.
Алат је незамењив у сценаријима када је потребно проверити исправност чувања података након извршења операције: регистрација корисника, синхронизација са сервером, кеширање листи. Уместо писања тестног UI-ја, дамп базе се прегледа кроз Database Inspector. Алат се такође активно користи за отклањање грешака миграција Room-а — може се видети актуелна шема табела након сваког ажурирања шеме.
Database Inspector повезује се са процесом Android апликације преко Android Profiler Service-а. Открива све отворене SQLite конекције у апликацији и приказује их у бочном панелу. За рад је потребна Debug верзија апликације са API Level 26 (Android 8.0) и вишим.
При покретању Database Inspector креира ADB тунел између апликације на уређају и IDE-а на рачунару. WAL (Write-Ahead Logging) датотеке базе података се преносе кроз овај тунел ради приказивања садржаја. SQL команде се шаљу директно SQLite мотору апликације преко подршке Database Inspector-а у Room-у и SQLiteDatabase-у. Алат аутоматски открива тренутак када апликација отвара базу података и додаје је на листу инспектираних.
За исправан рад Database Inspector-а потребно је: Android Studio 4.1+, уређај или емулатор са API Level 26+, Debug верзија апликације. За Room додатно је потребна библиотека room-runtime верзије 2.2+. Ако је база података креирана у WAL режиму, што је стандардно за Room 2.2+, алат може читати податке без блокирања главне апликације.
// Пример Room базе података коју подржава 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 пружа пун скуп функција за рад са локалним подацима: од прегледа шеме табела до извршавања сложених SQL упита и уређивања записа.
У левом панелу приказују се све базе података и табеле. При избору табеле отвара се њен садржај у облику табеле са колонама: сва поља записа се приказују као колоне, сваки ред је посебан запис. Шема табеле (име, тип, ограничења) приказује се изнад. За спољне кључеве приказују се везе између табела.
| Тип података | SQLite тип | Room тип | Пример |
|---|---|---|---|
| Цео број | INTEGER | Int, Long | 42 |
| Стринг | TEXT | String | „John” |
| Децимални број | REAL | Double, Float | 3.14 |
| Бинарни подаци | BLOB | ByteArray | [0x00, 0x01] |
| Датум/време | INTEGER (Unix epoch) | Long, Date | 1720000000 |
Картица Query омогућава извршавање произвољних SQL команди директно на изабраној бази података. Подржани су SELECT, INSERT, UPDATE, DELETE, CREATE INDEX, JOIN и било који други SQL оператори SQLite-а. Резултати се приказују у табеларном облику испод уређивача упита. Историја упита се чува током сесије.
Ћелије табеле могу се уређивати директно — довољно је кликнути на вредност и унети нову. Промене се одмах примењују на радну апликацију. Ово је посебно корисно за тестирање граничних случајева: постављање null у обавезно поље, замена ID-а непостојећим, провера обраде дугих стрингова. Све промене се бележе у реалном времену.
Database Inspector има дубоку интеграцију са Room-ом, што га чини незамењивим при развоју апликација са овом библиотеком. Поред стандардне функционалности, инспектор пружа специфичне могућности за Room.
За Room базе, Database Inspector приказује генерисане SQL упите за сваку DAO методу. Ово омогућава проверу да Room генерише исправан SQL, посебно за сложене упите са JOIN, @Relation и @Transaction. Ако Room извршава неефикасан упит (нпр. N+1 упита уместо једног JOIN-а), то је одмах видљиво у дневнику упита Database Inspector-а.
При ажурирању шеме Room-а са AutoMigration или ручним миграцијама, Database Inspector приказује актуелну структуру табела након миграције. Довољно је отворити инспектора након покретања апликације и проверити да су све колоне, индекси и спољни кључеви исправно креирани. Ако је миграција пала са грешком, база података се неће отворити — алат ће приказати последњу доступну верзију.
Room омогућава комбиновање података из више табела преко @Relation и @Embedded. Database Inspector помаже у визуелној провери исправности веза, приказујући податке повезаних табела једно поред другог. За сваки спољни кључ може се прећи на повезану табелу једним кликом.
// Entity са Relation за проверу кроз 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 решава конкретне програмске задатке који се јављају при раду са локалним складиштењем података. Размотримо најчешће сценарије коришћења алата у свакодневном раду.
Често апликација кешира одговоре API-ја у локалну базу података. Database Inspector омогућава проверу исправности кеширања: након извршења синхронизације могу се видети актуелни записи у табели кеша. Ако се подаци нису појавили — проблем је у коду за чување. Ако су се појавили дупликати — проблем је у логици упсерт-а.
Када DAO метода не чува податке, али не баца изузетак, Database Inspector приказује актуелно стање табеле. Типични узроци: конфликт Primary Key (подешавање OnConflictStrategy), нетачан тип података у колони, кршење NOT NULL ограничења или Foreign Key violation. Инспектор омогућава увид у changeset базе пре и после операције. Поређење снимака података пре и после позива DAO-а — један од најефикаснијих начина за отклањање грешака трансакција и проверу исправности пословне логике апликације при сложеним операцијама уписа.
При промени шеме табела — додавању колона, преименовању поља, раздвајању табела — Database Inspector помаже у провери резултата миграције. Довољно је покренути апликацију са новом верзијом базе и уверити се да су сви подаци исправно пренети у нову структуру. Ако су након миграције подаци нестали, могу се обновити из дампа сачуваног пре рефакторисања. Овај сценариј је посебно актуелан при преласку са SQLiteOpenHelper на Room или при промени структуре постојећих табела у новој верзији апликације.
Database Inspector се такође може користити за процену перформанси SQL упита. Извршавањем SELECT-а кроз картицу Query и мерењем времена одговора, могу се идентификовати упити којима недостају индекси. Room аутоматски евидентира споре упите у Logcat-у са ознаком SLOW SQL, а Database Inspector омогућава тренутно извршавање EXPLAIN QUERY PLAN ради анализе плана извршења.
Често постављана питања
Уверите се да је апликација покренута у Debug режиму, а API Level уређаја је 26 или виши. Ако је база креирана у посебном процесу или уз коришћење SQLCipher-а (енкрипција), Database Inspector можда неће моћи да је открије. За SQLCipher користите помоћну debug базу без енкрипције.
Да, уређивање података је могуће директно у ћелијама табеле. Два клика на вредност омогућава њену промену. Промене се одмах примењују на базу података радне апликације. За додавање нових записа користите SQL упит INSERT кроз картицу Query.
Не, Database Inspector не подржава Realm, јер Realm не користи SQLite. За отклањање грешака Realm-а користите Realm Object Server, Realm Studio или евидентирање у апликацији. За MongoDB Realm SDK доступан је сопствени алат Realm Studio за macOS, Windows и Linux.
Database Inspector омогућава извоз базе података у целини. Кликните десним тастером миша на име базе на листи и изаберите Export Database. .db датотека ће се сачувати на рачунару. За преглед користите било који SQLite прегледач, на пример DB Browser for SQLite.
Према Google-у, додатни трошак је минималан — Database Inspector чита WAL датотеке базе података, не блокирајући упис. Извршавање корисничких SQL упита може привремено оптеретити базу, али то контролише програмер. За production верзије алат се аутоматски искључује.
Завршни закључци
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође