Android Studio-dagi Database Inspector — mobil ilovaning SQLite ma'lumotlar bazalarini real vaqtda ko'rish va tuzatish uchun o'rnatilgan vositadir. Android Developers (2025) rasmiy hujjatlariga ko'ra, vosita faol bazaga SQL so'rovlarini bajarish, jadval tuzilishini ko'rish va ilovani to'xtatmasdan yozuvlarni tahrirlash imkonini beradi. Vosita Room, SQLiteOpenHelper va har qanday in-app ma'lumotlar bazalarini qo'llab-quvvatlaydi, profiling ishga tushirilganda ularni avtomatik aniqlaydi.
Asosiy ma'lumotlar
Database Inspector — Android Studio-da mobil ilovadagi mahalliy ma'lumotlar bazalarini tekshirish va tuzatish uchun vositadir. U ilova tomonidan yaratilgan barcha SQLite ma'lumotlar bazalarini, jumladan Room, SQLiteOpenHelper va uchinchi tomon kutubxonalari bazalarini ko'rish imkonini beradi. Vosita Android Studio 4.1 dan boshlab mavjud va Android Profiler yoki to'g'ridan-to'g'ri View menyusidan ishga tushiriladi.
Database Inspector-ning asosiy vazifasi ishlab chiqish jarayonida ma'lumotlarni vizuallashtirishdir Baza mazmunini logda chiqarish yoki ma'lumotlarni ko'rish uchun alohida ekran yozish o'rniga, dasturchi Database Inspector-ni ochib, darhol barcha jadvallar, ularning sxemasi va mazmunini ko'rishi mumkin. Vosita ham relatsion SQLite bazalarini, ham Auto-migratsiyali Room-ni qo'llab-quvvatlaydi.
Vosita operatsiyadan so'ng ma'lumotlarning to'g'ri saqlanganligini tekshirish kerak bo'lgan stsenariylarda ajralmas hisoblanadi: foydalanuvchi ro'yxatdan o'tishi, server bilan sinxronizatsiya, ro'yxatlarni keshlash. Test UI yozish o'rniga baza dumpi Database Inspector orqali ko'riladi. Vosita, shuningdek, Room migratsiyalarini tuzatish uchun faol qo'llaniladi — sxema har yangilanishidan so'ng jadvallarning joriy sxemasini ko'rish mumkin.
Database Inspector Android ilovasining jarayoniga ulanadi Android Profiler Service orqali. U ilovadagi barcha ochiq SQLite ulanishlarini aniqlaydi va ularni yon panelda ko'rsatadi. Ishlash uchun API Level 26 (Android 8.0) va undan yuqori bo'lgan Debug qurilishi talab qilinadi.
Database Inspector ishga tushirilganda qurilmadagi ilova va kompyuterdagi IDE o'rtasida ADB tunnelini yaratadi. Ma'lumotlar bazasining SQLite WAL (Write-Ahead Logging) fayllari mazmunni ko'rsatish uchun ushbu tunnel orqali uzatiladi. SQL buyruqlari Room va SQLiteDatabase-dagi Database Inspector qo'llab-quvvatlashi orqali to'g'ridan-to'g'ri ilovaning SQLite mexanizmiga yuboriladi. Vosita avtomatik ravishda ilova ma'lumotlar bazasini ochgan momentni aniqlaydi va uni tekshirilayotgan bazalar ro'yxatiga qo'shadi.
Database Inspector-ning to'g'ri ishlashi uchun talab qilinadi: Android Studio 4.1+, API Level 26+ bo'lgan qurilma yoki emulyator, ilovaning Debug qurilishi. Room uchun qo'shimcha ravishda room-runtime kutubxonasi 2.2+ versiyasi talab qilinadi. Agar ma'lumotlar bazasi WAL rejimida yaratilgan bo'lsa, bu Room 2.2+ uchun standart, vosita asosiy ilovani bloklamasdan ma'lumotlarni o'qiy oladi.
// Database Inspector tomonidan qo'llab-quvvatlanadigan Room ma'lumotlar bazasi namunasi
@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 mahalliy ma'lumotlar bilan ishlash uchun to'liq funksiyalar to'plamini taqdim etadi: jadval sxemasini ko'rishdan murakkab SQL so'rovlarini bajarish va yozuvlarni tahrirlashgacha.
Chap panelda barcha ma'lumotlar bazalari va jadvallar ko'rsatiladi. Jadval tanlanganda uning mazmuni ustunli jadval shaklida ochiladi: barcha yozuv maydonlari ustun sifatida ko'rsatiladi, har bir qator alohida yozuvdir. Jadval sxemasi (nomi, turi, cheklovlari) yuqorida ko'rsatiladi. Tashqi kalitlar uchun jadvallar orasidagi bog'lanishlar ko'rsatiladi.
| Ma'lumot turi | SQLite turi | Room turi | Misol |
|---|---|---|---|
| Butun son | INTEGER | Int, Long | 42 |
| Satr | TEXT | String | “John” |
| Kasr son | REAL | Double, Float | 3.14 |
| Ikkilik ma'lumot | BLOB | ByteArray | [0x00, 0x01] |
| Sana/vaqt | INTEGER (Unix epoch) | Long, Date | 1720000000 |
Query varog'i tanlangan ma'lumotlar bazasiga to'g'ridan-to'g'ri ixtiyoriy SQL buyruqlarini bajarish imkonini beradi. SELECT, INSERT, UPDATE, DELETE, CREATE INDEX, JOIN va SQLite-ning boshqa barcha operatorlari qo'llab-quvvatlanadi. Natijalar so'rov muharriri ostida jadval shaklida ko'rsatiladi. So'rov tarixi sessiya davomida saqlanadi.
Jadval kataklarini to'g'ridan-to'g'ri tahrirlash mumkin — qiymatni bosib yangisini kiritish kifoya. O'zgarishlar darhol ishlayotgan ilovaga qo'llaniladi. Bu, ayniqsa, chegara holatlarini sinash uchun foydalidir: majburiy maydonga null o'rnatish, ID ni mavjud bo'lmaganiga almashtirish, uzun satrlarni qayta ishlashni tekshirish. Barcha o'zgarishlar real vaqtda qayd etiladi.
Database Inspector Room bilan chuqur integratsiyaga ega, bu uni ushbu kutubxona bilan ilovalar ishlab chiqishda ajralmas qiladi. Standart funksionallikdan tashqari, inspektor Room uchun xos imkoniyatlarni taqdim etadi.
Room bazalari uchun Database Inspector har bir DAO metodi uchun yaratilgan SQL so'rovlarini ko'rsatadi. Bu Room to'g'ri SQL yaratayotganiga ishonch hosil qilish imkonini beradi, ayniqsa JOIN, @Relation va @Transaction bilan murakkab so'rovlar uchun. Agar Room samarasiz so'rovni bajarsa (masalan, bitta JOIN o'rniga N+1 so'rov), bu darhol Database Inspector so'rov jurnalida ko'rinadi.
AutoMigration yoki qo'lda migratsiyalar bilan Room sxemasi yangilanayotganda, Database Inspector migratsiyadan so'ng jadvallarning joriy tuzilishini ko'rsatadi. Ilovani ishga tushirgandan so'ng inspektorni ochib, barcha ustunlar, indekslar va tashqi kalitlar to'g'ri yaratilganligini tekshirish kifoya. Agar migratsiya xato bilan tugagan bo'lsa, ma'lumotlar bazasi ochilmaydi — vosita oxirgi mavjud versiyani ko'rsatadi.
Room @Relation va @Embedded orqali bir nechta jadvallardan ma'lumotlarni birlashtirish imkonini beradi. Database Inspector bog'liq jadvallar ma'lumotlarini yonma-yon ko'rsatib, bog'lanishlarning to'g'riligini vizual tekshirishga yordam beradi. Har bir tashqi kalit uchun bir marta bosish bilan bog'liq jadvalga o'tish mumkin.
// Database Inspector orqali tekshirish uchun Relation bilan Entity
@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 mahalliy ma'lumotlarni saqlash bilan ishlashda yuzaga keladigan aniq dasturlash vazifalarini hal qiladi. Keling, kundalik ishda vositadan foydalanishning eng keng tarqalgan stsenariylarini ko'rib chiqaylik.
Ko'pincha ilova API javoblarini mahalliy ma'lumotlar bazasida keshlaydi. Database Inspector keshlashning to'g'riligiga ishonch hosil qilish imkonini beradi: sinxronizatsiya amalga oshirilgandan so'ng keshlash jadvalidagi joriy yozuvlarni ko'rish mumkin. Agar ma'lumotlar ko'rinmasa — muammo saqlash kodida. Agar dublikatlar paydo bo'lsa — muammo upsert mantiqida.
DAO metodi ma'lumotlarni saqlamasa, lekin istisno tashlamasa, Database Inspector jadvalning joriy holatini ko'rsatadi. Oddiy sabablar: Primary Key konflikti (OnConflictStrategy sozlamasi), ustunda noto'g'ri ma'lumot turi, NOT NULL cheklovlarini buzish yoki Foreign Key violation. Inspektor operatsiyadan oldin va keyin baza o'zgarishlar to'plamini ko'rish imkonini beradi. DAO chaqiruvidan oldin va keyin ma'lumotlar lahzalik tasvirlarini taqqoslash — murakkab yozish operatsiyalarida tranzaksiya xatolarini tuzatish va ilovaning biznes mantig'ining to'g'riligini tekshirishning eng samarali usullaridan biridir.
Jadval sxemasi o'zgartirilayotganda — ustunlar qo'shilganda, maydonlar nomi o'zgartirilganda, jadvallar bo'linganda — Database Inspector migratsiya natijasini tekshirishga yordam beradi. Baza yangi versiyasi bilan ilovani ishga tushirib, barcha ma'lumotlarning yangi tuzilishga to'g'ri ko'chirilganligiga ishonch hosil qilish kifoya. Agar migratsiyadan so'ng ma'lumotlar yo'qolgan bo'lsa, ularni refaktoringdan oldin saqlangan dumpdan tiklash mumkin. Bu stsenariy, ayniqsa, SQLiteOpenHelper-dan Room-ga o'tishda yoki ilovaning yangi versiyasida mavjud jadvallar tuzilishini o'zgartirishda dolzarbdir.
Database Inspector, shuningdek, SQL so'rovlarining unumdorligini baholash uchun ishlatilishi mumkin. Query varog'i orqali SELECT bajarib, javob vaqtini o'lchash orqali indekslari yetishmaydigan so'rovlarni aniqlash mumkin. Room avtomatik ravishda sekin so'rovlarni Logcat-da SLOW SQL belgisi bilan qayd qiladi va Database Inspector darhol bajarish rejasini tahlil qilish uchun EXPLAIN QUERY PLAN bajarish imkonini beradi.
Tez-tez beriladigan savollar
Ilova Debug rejimida ishga tushirilganligiga va qurilmaning API Level 26 yoki undan yuqori ekanligiga ishonch hosil qiling. Agar baza alohida jarayonda yoki SQLCipher (shifrlash) yordamida yaratilgan bo'lsa, Database Inspector uni aniqlay olmasligi mumkin. SQLCipher uchun shifrlanmagan yordamchi debug-bazasidan foydalaning.
Ha, ma'lumotlarni tahrirlash to'g'ridan-to'g'ri jadval kataklarida mumkin. Qiymatni ikki marta bosish uni o'zgartirish imkonini beradi. O'zgarishlar darhol ishlayotgan ilovaning ma'lumotlar bazasiga qo'llaniladi. Yangi yozuvlarni qo'shish uchun Query varog'i orqali INSERT SQL so'rovidan foydalaning.
Yo'q, Database Inspector Realm-ni qo'llab-quvvatlamaydi, chunki Realm SQLite dan foydalanmaydi. Realm-ni tuzatish uchun Realm Object Server, Realm Studio yoki ilovada loglashdan foydalaning. MongoDB Realm SDK uchun macOS, Windows va Linux uchun o'zining Realm Studio vositasi mavjud.
Database Inspector ma'lumotlar bazasini to'liq eksport qilish imkonini beradi. Ro'yxatdagi baza nomini o'ng tugmasini bosib, Export Database ni tanlang. .db fayli kompyuterga saqlanadi. Ko'rish uchun istalgan SQLite brauzeridan, masalan DB Browser for SQLite dan foydalaning.
Google ma'lumotlariga ko'ra, yuk minimal — Database Inspector ma'lumotlar bazasining WAL fayllarini o'qiydi, yozishni bloklamaydi. Foydalanuvchi SQL so'rovlarini bajarish bazani vaqtincha yuklashi mumkin, ammo bu dasturchi tomonidan nazorat qilinadi. Production qurilishlari uchun vosita avtomatik o'chiriladi.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.