Database Inspector: ce este, cum să lucrăm cu SQLite și să depanam Room

Autor: IT Sectr Publicat: 2026-05-07 Timp de citire: 8 min

Database Inspector în Android Studio — este un instrument încorporat pentru vizualizarea și depanarea bazelor de date SQLite ale aplicației mobile în timp real. Conform documentației oficiale Android Developers (2025), instrumentul permite executarea interogărilor SQL către baza activă, vizualizarea structurii tabelelor și editarea înregistrărilor fără oprirea aplicației. Instrumentul suportă Room, SQLiteOpenHelper și orice baze de date in-app, detectându-le automat la pornirea profilării.

Puncte principale

  • Database Inspector — este o componentă Android Studio pentru vizualizarea bazelor de date SQLite ale aplicației în timp real cu posibilitatea executării interogărilor
  • Suport Room — integrare completă cu Room, inclusiv vizualizarea interogărilor DAO și urmărirea modificărilor în baza de date
  • Editarea datelor — modificarea valorilor celulelor tabelului direct din interfața inspectorului cu reflectare imediată în aplicație
  • Executarea SQL — posibilitatea de a scrie și executa interogări SQL arbitrare, inclusiv JOIN, GROUP BY și subinterogări
  • Exportul bazei — salvarea dump-ului bazei de date pe calculator pentru analiză sau transmitere colegilor

Ce este Database Inspector?

Database Inspector — este un instrument Android Studio pentru inspecția și depanarea bazelor de date locale în aplicația mobilă. Permite vizualizarea tuturor bazelor de date SQLite create de aplicație, inclusiv bazele Room, SQLiteOpenHelper și ale bibliotecilor terțe. Instrumentul este disponibil începând cu Android Studio 4.1 și se lansează prin Android Profiler sau direct din meniul View.

Scop și posibilități

Sarcina principală a Database Inspector este vizualizarea datelor în procesul de dezvoltare. În loc să afișeze conținutul bazei în log sau să scrie un ecran separat pentru vizualizarea datelor, dezvoltatorul poate deschide Database Inspector și vedea imediat toate tabelele, schema și conținutul lor. Instrumentul suportă atât baze relaționale SQLite, cât și Room cu Auto-migrări.

Când să utilizați Database Inspector

Instrumentul este indispensabil în scenariile când trebuie verificată corectitudinea salvării datelor după executarea unei operații: înregistrarea utilizatorului, sincronizarea cu serverul, stocarea în cache a listelor. În loc să scrieți un UI de testare, dump-ul bazei este vizualizat prin Database Inspector. De asemenea, instrumentul este utilizat activ pentru depanarea migrărilor Room — se poate vedea schema actuală a tabelelor după fiecare actualizare a schemei.

Cum funcționează Database Inspector

Database Inspector se conectează la procesul aplicației Android prin Android Profiler Service. Detectează toate conexiunile SQLite deschise în aplicație și le afișează în panoul lateral. Pentru funcționare necesită o compilare Debug a aplicației cu API Level 26 (Android 8.0) și superior.

Arhitectura și mecanismul de funcționare

La pornire, Database Inspector creează un tunel ADB între aplicația de pe dispozitiv și IDE-ul de pe calculator. Fișierele WAL (Write-Ahead Logging) ale bazei de date SQLite sunt transmise prin acest tunel pentru afișarea conținutului. Comenzile SQL sunt trimise direct motorului SQLite al aplicației prin suportul Database Inspector în Room și SQLiteDatabase. Instrumentul detectează automat momentul când aplicația deschide baza de date și o adaugă în lista celor inspectate.

Cerințe de mediu

Pentru funcționarea corectă a Database Inspector este necesar: Android Studio 4.1+, dispozitiv sau emulator cu API Level 26+, compilare Debug a aplicației. Pentru Room este necesară suplimentar biblioteca room-runtime versiunea 2.2+. Dacă baza de date este creată în modul WAL, ceea ce este standard pentru Room 2.2+, instrumentul poate citi datele fără a bloca aplicația principală.

kotlin
// Exemplu de bază de date Room suportată de 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
}

Principalele funcționalități ale Database Inspector

Database Inspector oferă un set complet de funcții pentru lucrul cu datele locale: de la vizualizarea schemei tabelelor până la executarea interogărilor SQL complexe și editarea înregistrărilor.

Vizualizarea tabelelor și schemei

În panoul stâng sunt afișate toate bazele de date și tabelele. La selectarea unei tabele, conținutul său se deschide sub formă de tabel cu coloane: toate câmpurile înregistrării sunt afișate ca coloane, fiecare rând fiind o înregistrare separată. Schema tabelului (nume, tip, constrângeri) este afișată deasupra. Pentru cheile externe se arată legăturile între tabele.

Tip de dateTip SQLiteTip RoomExemplu
Număr întregINTEGERInt, Long42
Șir de caractereTEXTString„John”
Număr zecimalREALDouble, Float3.14
Date binareBLOBByteArray[0x00, 0x01]
Dată/orăINTEGER (Unix epoch)Long, Date1720000000

Executarea interogărilor SQL

Fila Query permite executarea de comenzi SQL arbitrare direct pe baza de date selectată. Sunt suportate SELECT, INSERT, UPDATE, DELETE, CREATE INDEX, JOIN și orice alți operatori SQLite. Rezultatele sunt afișate sub formă de tabel sub editorul de interogări. Istoricul interogărilor este păstrat pe durata sesiunii.

Editarea înregistrărilor

Celulele tabelului pot fi editate direct — suficient să faceți clic pe valoare și să introduceți una nouă. Modificările se aplică imediat aplicației în funcțiune. Acest lucru este util în special pentru testarea cazurilor limită: setarea null într-un câmp obligatoriu, înlocuirea ID-ului cu unul inexistent, verificarea procesării șirurilor lungi. Toate modificările sunt înregistrate în timp real.

Depanarea Room cu Database Inspector

Database Inspector are o integrare profundă cu Room, ceea ce îl face indispensabil la dezvoltarea aplicațiilor cu această bibliotecă. Pe lângă funcționalitatea standard, inspectorul oferă posibilități specifice Room.

Vizualizarea interogărilor DAO

Pentru bazele Room, Database Inspector afișează interogările SQL generate pentru fiecare metodă DAO. Acest lucru permite verificarea faptului că Room generează SQL corect, în special pentru interogări complexe cu JOIN, @Relation și @Transaction. Dacă Room execută o interogare ineficientă (de exemplu, N+1 interogări în loc de un JOIN), acest lucru este vizibil imediat în jurnalul de interogări al Database Inspector.

Depanarea migrărilor

La actualizarea schemei Room cu AutoMigration sau migrări manuale, Database Inspector arată structura actuală a tabelelor după migrare. Este suficient să deschideți inspectorul după lansarea aplicației și să verificați dacă toate coloanele, indicii și cheile externe au fost create corect. Dacă migrarea a eșuat cu eroare, baza de date nu se va deschide — instrumentul va afișa ultima versiune disponibilă.

Verificarea Relations și Embedded

Room permite combinarea datelor din mai multe tabele prin @Relation și @Embedded. Database Inspector ajută la verificarea vizuală a corectitudinii legăturilor, afișând datele tabelelor conexe una lângă alta. Pentru fiecare cheie externă se poate naviga la tabela conexă cu un singur clic.

kotlin
// Entity cu Relation pentru verificare prin 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>
)

Scenarii practice de utilizare a Database Inspector

Database Inspector rezolvă sarcini specifice de programare care apar la lucrul cu stocarea locală a datelor. Să analizăm cele mai frecvente scenarii de utilizare a instrumentului în munca de zi cu zi.

Verificarea stocării în cache a datelor

Adesea aplicația stochează în cache răspunsurile API în baza de date locală. Database Inspector permite verificarea corectitudinii stocării în cache: după executarea sincronizării, se pot vedea înregistrările actuale în tabela de cache. Dacă datele nu au apărut — problema este în codul de salvare. Dacă au apărut duplicate — problema este în logica upsert.

Depanarea erorilor de inserare a datelor

Când metoda DAO nu salvează datele, dar nu aruncă excepție, Database Inspector arată starea actuală a tabelului. Cauze tipice: conflict de Primary Key (setarea OnConflictStrategy), tip de date incorect în coloană, încălcarea constrângerilor NOT NULL sau Foreign Key violation. Inspectorul permite vizualizarea changeset-ului bazei înainte și după operație. Compararea instantaneelor datelor înainte și după apelarea DAO — una dintre cele mai eficiente metode de depanare a erorilor tranzacționale și de verificare a corectitudinii logicii de business a aplicației la operații complexe de scriere.

Refactorizarea schemei bazei de date

La modificarea schemei tabelelor — adăugarea coloanelor, redenumirea câmpurilor, divizarea tabelelor — Database Inspector ajută la verificarea rezultatului migrării. Este suficient să lansați aplicația cu noua versiune a bazei și să vă asigurați că toate datele au fost transferate corect în noua structură. Dacă după migrare datele au dispărut, ele pot fi restaurate din dump-ul salvat înainte de refactorizare. Acest scenariu este deosebit de relevant la trecerea de la SQLiteOpenHelper la Room sau la modificarea structurii tabelelor existente în noua versiune a aplicației.

Monitorizarea performanței interogărilor

Database Inspector poate fi utilizat și pentru evaluarea performanței interogărilor SQL. Executând SELECT prin fila Query și măsurând timpul de răspuns, se pot identifica interogările cărora le lipsesc indicii. Room înregistrează automat interogările lente în Logcat cu marcajul SLOW SQL, iar Database Inspector permite executarea imediată a EXPLAIN QUERY PLAN pentru analiza planului de execuție.

Întrebări frecvente

De ce Database Inspector nu vede baza mea de date?

Asigurați-vă că aplicația rulează în modul Debug, iar API Level al dispozitivului este 26 sau mai mare. Dacă baza este creată într-un proces separat sau cu utilizarea SQLCipher (criptare), Database Inspector poate să nu o detecteze. Pentru SQLCipher utilizați o bază de debug auxiliară fără criptare.

Se pot edita datele prin Database Inspector?

Da, editarea datelor este posibilă direct în celulele tabelului. Un dublu clic pe valoare permite modificarea acesteia. Modificările se aplică imediat bazei de date a aplicației în funcțiune. Pentru adăugarea de înregistrări noi utilizați interogarea SQL INSERT prin fila Query.

Suportă Database Inspector bazele de date Realm?

Nu, Database Inspector nu suportă Realm, deoarece Realm nu utilizează SQLite. Pentru depanarea Realm utilizați Realm Object Server, Realm Studio sau înregistrarea în aplicație. Pentru MongoDB Realm SDK este disponibil instrumentul propriu Realm Studio pentru macOS, Windows și Linux.

Cum se exportă baza de date din Database Inspector?

Database Inspector permite exportarea completă a bazei de date. Faceți clic dreapta pe numele bazei din listă și selectați Export Database. Fișierul .db va fi salvat pe calculator. Pentru vizualizare utilizați orice browser SQLite, de exemplu DB Browser for SQLite.

Influențează Database Inspector performanța aplicației?

Conform Google, suprasarcina este minimală — Database Inspector citește fișierele WAL ale bazei de date, fără a bloca scrierea. Executarea interogărilor SQL personalizate poate încărca temporar baza, dar acest lucru este controlat de dezvoltator. Pentru compilările de producție, instrumentul se dezactivează automat.

Concluzii

  • Database Inspector — este un instrument încorporat în Android Studio pentru vizualizarea și editarea bazelor de date SQLite ale aplicației în timp real
  • Suportul Room include vizualizarea interogărilor DAO, depanarea migrărilor și verificarea @Relation și @Embedded
  • Executarea interogărilor SQL prin fila Query cu suport pentru toți operatorii SQLite și păstrarea istoricului
  • Editarea în timp real permite modificarea valorilor celulelor și vizualizarea imediată a rezultatului în aplicația în funcțiune
  • Exportul bazei de date în fișier .db pentru analiză în instrumente externe sau transmitere colegilor
  • Pentru funcționare este necesar Android Studio 4.1+, compilare Debug și API Level 26+ — verificați aceste cerințe dacă instrumentul nu afișează baza
  • Utilizați Database Inspector în mod regulat la dezvoltarea funcțiilor legate de stocarea locală a datelor — aceasta accelerează depanarea de multe ori

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și