Database Inspector: шта је то, како радити са SQLite и отклањати грешке Room

Аутор: IT Sectr Објављено: 2026-05-07 Време читања: 8 мин

Database Inspector у Android Studio — уграђени је алат за преглед и отклањање грешака SQLite база података мобилне апликације у реалном времену. Према званичној документацији Android Developers (2025), алат омогућава извршавање SQL упита ка активној бази, преглед структуре табела и уређивање записа без заустављања апликације. Алат подржава Room, SQLiteOpenHelper и било које in-app базе података, аутоматски их откривајући при покретању профилисања.

Главно

  • Database Inspector — компонента Android Studio за преглед SQLite база података апликације у реалном времену с могућношћу извршавања упита
  • Подршка за Room — потпуна интеграција са Room-ом, укључујући преглед DAO упита и праћење промена у бази података
  • Уређивање података — промена вредности ћелија табеле директно из интерфејса инспектора са тренутним одразом у апликацији
  • Извршавање SQL-а — могућност писања и извршавања произвољних SQL упита, укључујући JOIN, GROUP BY и подупите
  • Извоз базе — чување дамп базе података на рачунар за анализу или прослеђивање колегама

Шта је Database Inspector?

Database Inspector — алат Android Studio за инспекцију и отклањање грешака локалних база података у мобилној апликацији. Омогућава преглед свих SQLite база података креираних од стране апликације, укључујући Room базе, SQLiteOpenHelper и библиотека трећих страна. Алат је доступан од Android Studio 4.1 и покреће се преко Android Profiler-а или директно из View менија.

Намена и могућности

Основни задатак Database Inspector-а је визуелизација података у процесу развоја. Уместо исписивања садржаја базе у лог или писања посебног екрана за преглед података, програмер може отворити Database Inspector и одмах видети све табеле, њихову шему и садржај. Алат подржава како релационе SQLite базе, тако и Room са Auto-миграцијама.

Када користити Database Inspector

Алат је незамењив у сценаријима када је потребно проверити исправност чувања података након извршења операције: регистрација корисника, синхронизација са сервером, кеширање листи. Уместо писања тестног UI-ја, дамп базе се прегледа кроз Database Inspector. Алат се такође активно користи за отклањање грешака миграција Room-а — може се видети актуелна шема табела након сваког ажурирања шеме.

Како ради Database Inspector

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+, алат може читати податке без блокирања главне апликације.

kotlin
// Пример 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-а

Database Inspector пружа пун скуп функција за рад са локалним подацима: од прегледа шеме табела до извршавања сложених SQL упита и уређивања записа.

Преглед табела и шеме

У левом панелу приказују се све базе података и табеле. При избору табеле отвара се њен садржај у облику табеле са колонама: сва поља записа се приказују као колоне, сваки ред је посебан запис. Шема табеле (име, тип, ограничења) приказује се изнад. За спољне кључеве приказују се везе између табела.

Тип податакаSQLite типRoom типПример
Цео бројINTEGERInt, Long42
СтрингTEXTString„John”
Децимални бројREALDouble, Float3.14
Бинарни подациBLOBByteArray[0x00, 0x01]
Датум/времеINTEGER (Unix epoch)Long, Date1720000000

Извршавање SQL упита

Картица Query омогућава извршавање произвољних SQL команди директно на изабраној бази података. Подржани су SELECT, INSERT, UPDATE, DELETE, CREATE INDEX, JOIN и било који други SQL оператори SQLite-а. Резултати се приказују у табеларном облику испод уређивача упита. Историја упита се чува током сесије.

Уређивање записа

Ћелије табеле могу се уређивати директно — довољно је кликнути на вредност и унети нову. Промене се одмах примењују на радну апликацију. Ово је посебно корисно за тестирање граничних случајева: постављање null у обавезно поље, замена ID-а непостојећим, провера обраде дугих стрингова. Све промене се бележе у реалном времену.

Отклањање грешака Room-а са Database Inspector-ом

Database Inspector има дубоку интеграцију са Room-ом, што га чини незамењивим при развоју апликација са овом библиотеком. Поред стандардне функционалности, инспектор пружа специфичне могућности за Room.

Преглед DAO упита

За Room базе, Database Inspector приказује генерисане SQL упите за сваку DAO методу. Ово омогућава проверу да Room генерише исправан SQL, посебно за сложене упите са JOIN, @Relation и @Transaction. Ако Room извршава неефикасан упит (нпр. N+1 упита уместо једног JOIN-а), то је одмах видљиво у дневнику упита Database Inspector-а.

Отклањање грешака миграција

При ажурирању шеме Room-а са AutoMigration или ручним миграцијама, Database Inspector приказује актуелну структуру табела након миграције. Довољно је отворити инспектора након покретања апликације и проверити да су све колоне, индекси и спољни кључеви исправно креирани. Ако је миграција пала са грешком, база података се неће отворити — алат ће приказати последњу доступну верзију.

Провера Relations и Embedded

Room омогућава комбиновање података из више табела преко @Relation и @Embedded. Database Inspector помаже у визуелној провери исправности веза, приказујући податке повезаних табела једно поред другог. За сваки спољни кључ може се прећи на повезану табелу једним кликом.

kotlin
// 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-а

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 ради анализе плана извршења.

Често постављана питања

Зашто Database Inspector не види моју базу података?

Уверите се да је апликација покренута у Debug режиму, а API Level уређаја је 26 или виши. Ако је база креирана у посебном процесу или уз коришћење SQLCipher-а (енкрипција), Database Inspector можда неће моћи да је открије. За SQLCipher користите помоћну debug базу без енкрипције.

Да ли се подаци могу уређивати кроз Database Inspector?

Да, уређивање података је могуће директно у ћелијама табеле. Два клика на вредност омогућава њену промену. Промене се одмах примењују на базу података радне апликације. За додавање нових записа користите SQL упит INSERT кроз картицу Query.

Да ли Database Inspector подржава Realm базе података?

Не, Database Inspector не подржава Realm, јер Realm не користи SQLite. За отклањање грешака Realm-а користите Realm Object Server, Realm Studio или евидентирање у апликацији. За MongoDB Realm SDK доступан је сопствени алат Realm Studio за macOS, Windows и Linux.

Како извести базу података из Database Inspector-а?

Database Inspector омогућава извоз базе података у целини. Кликните десним тастером миша на име базе на листи и изаберите Export Database. .db датотека ће се сачувати на рачунару. За преглед користите било који SQLite прегледач, на пример DB Browser for SQLite.

Да ли Database Inspector утиче на перформансе апликације?

Према Google-у, додатни трошак је минималан — Database Inspector чита WAL датотеке базе података, не блокирајући упис. Извршавање корисничких SQL упита може привремено оптеретити базу, али то контролише програмер. За production верзије алат се аутоматски искључује.

Завршни закључци

  • Database Inspector — уграђени алат у Android Studio за преглед и уређивање SQLite база података апликације у реалном времену
  • Подршка за Room укључује преглед DAO упита, отклањање грешака миграција и проверу @Relation и @Embedded
  • Извршавање SQL упита кроз картицу Query са подршком за све SQLite операторе и чувањем историје
  • Уређивање у реалном времену омогућава промену вредности ћелија и тренутни увид у резултат у радној апликацији
  • Извоз базе података у .db датотеку за анализу у спољним алатима или прослеђивање колегама
  • За рад је потребно Android Studio 4.1+, Debug верзија и API Level 26+ — проверите ове захтеве ако алат не приказује базу
  • Користите Database Inspector редовно при развоју функција везаних за локално складиштење података — ово убрзава отклањање грешака вишеструко

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође