Android Studio-da Database Inspector — mobil tətbiqin SQLite verilənlər bazalarına real vaxtda baxmaq və yoxlamaq üçün quraşdırılmış alətdir. Android Developers (2025) rəsmi sənədlərinə görə, alət aktiv bazaya SQL sorğuları yerinə yetirməyə, cədvəl strukturuna baxmağa və tətbiqi dayandırmadan qeydləri redaktə etməyə imkan verir. Alət Room, SQLiteOpenHelper və istənilən in-app verilənlər bazalarını dəstəkləyir, profilləşdirmə işə salındıqda onları avtomatik aşkarlayır.
Əsas məqamlar
Database Inspector — Android Studio-da mobil tətbiqdə yerli verilənlər bazalarını yoxlamaq və ayıklamaq üçün alətdir. O, tətbiq tərəfindən yaradılmış bütün SQLite verilənlər bazalarını, o cümlədən Room, SQLiteOpenHelper və üçüncü tərəf kitabxanalarının bazalarını görməyə imkan verir. Alət Android Studio 4.1-dən etibarən mövcuddur və Android Profiler və ya birbaşa View menyusundan işə salınır.
Database Inspector-un əsas vəzifəsi inkişaf prosesində məlumatların vizuallaşdırılmasıdır Baza məzmununu logda çıxarmaq və ya məlumatlara baxmaq üçün ayrıca ekran yazmaq əvəzinə, proqramçı Database Inspector-u açıb dərhal bütün cədvəlləri, onların sxemini və məzmununu görə bilər. Alət həm relasiyalı SQLite bazalarını, həm də Auto-miqrasiyalı Room-u dəstəkləyir.
Alət əməliyyat yerinə yetirildikdən sonra məlumatların düzgün saxlanmasını yoxlamaq lazım olduqda əvəzolunmazdır: istifadəçi qeydiyyatı, serverlə sinxronizasiya, siyahıların keşləşdirilməsi. Test UI yazmaq əvəzinə baza dumpı Database Inspector vasitəsilə baxılır. Alət həmçinin Room miqrasiyalarını ayıklamaq üçün fəal istifadə olunur — sxem hər yenilənməsindən sonra cədvəllərin aktual sxemini görmək olar.
Database Inspector Android tətbiqinin prosesinə qoşulur Android Profiler Service vasitəsilə. O, tətbiqdəki bütün açıq SQLite birləşmələrini aşkarlayır və onları yan paneldə göstərir. İşləmək üçün API Level 26 (Android 8.0) və daha yüksək olan Debug quruluşu tələb olunur.
Database Inspector işə salındıqda cihazdakı tətbiq ilə kompüterdəki IDE arasında ADB tuneli yaradır. Verilənlər bazasının SQLite WAL (Write-Ahead Logging) faylları məzmunu göstərmək üçün bu tunel vasitəsilə ötürülür. SQL əmrləri Room və SQLiteDatabase-də Database Inspector dəstəyi vasitəsilə birbaşa tətbiqin SQLite mühərrikinə göndərilir. Alət avtomatik olaraq tətbiqin verilənlər bazasını açdığı anı müəyyən edir və onu yoxlanılan bazalar siyahısına əlavə edir.
Database Inspector-un düzgün işləməsi üçün tələb olunur: Android Studio 4.1+, API Level 26+ olan cihaz və ya emulator, tətbiqin Debug quruluşu. Room üçün əlavə olaraq room-runtime kitabxanası versiya 2.2+ tələb olunur. Əgər verilənlər bazası WAL rejimində yaradılıbsa ki, bu Room 2.2+ üçün standartdır, alət əsas tətbiqi bloklamadan məlumatları oxuya bilər.
// Database Inspector tərəfindən dəstəklənən Room verilənlər bazası nümunəsi
@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 yerli məlumatlarla işləmək üçün tam funksiya dəsti təmin edir: cədvəl sxeminə baxmaqdan tutmuş mürəkkəb SQL sorğuları yerinə yetirmək və qeydləri redaktə etməyə qədər.
Sol paneldə bütün verilənlər bazaları və cədvəllər göstərilir. Cədvəl seçildikdə onun məzmunu sütunları olan cədvəl şəklində açılır: bütün qeyd sahələri sütun kimi göstərilir, hər sətir ayrıca qeyddir. Cədvəlin sxemi (ad, tip, məhdudiyyətlər) yuxarıda göstərilir. Xarici açarlar üçün cədvəllər arasında əlaqələr göstərilir.
| Məlumat növü | SQLite növü | Room növü | Nümunə |
|---|---|---|---|
| Tam ədəd | INTEGER | Int, Long | 42 |
| Sətir | TEXT | String | “John” |
| Kəsirli ədəd | REAL | Double, Float | 3.14 |
| İkili məlumat | BLOB | ByteArray | [0x00, 0x01] |
| Tarix/vaxt | INTEGER (Unix epoch) | Long, Date | 1720000000 |
Query vərəqi seçilmiş verilənlər bazasına birbaşa ixtiyari SQL əmrləri yerinə yetirməyə imkan verir. SELECT, INSERT, UPDATE, DELETE, CREATE INDEX, JOIN və SQLite-in istənilən digər operatorları dəstəklənir. Nəticələr sorğu redaktorunun altında cədvəl şəklində göstərilir. Sorğu tarixçəsi sessiya ərzində saxlanılır.
Cədvəl xanalarını birbaşa redaktə etmək olar — sadəcə dəyərin üzərinə klikləyin və yenisini daxil edin. Dəyişikliklər dərhal işləyən tətbiqə tətbiq olunur. Bu, xüsusilə sərhəd hallarını test etmək üçün faydalıdır: məcburi sahəyə null təyin etmək, ID-ni mövcud olmayanla əvəz etmək, uzun sətirlərin işlənməsini yoxlamaq. Bütün dəyişikliklər real vaxtda qeydə alınır.
Database Inspector Room ilə dərin inteqrasiyaya malikdir, bu da onu bu kitabxana ilə tətbiqlər hazırlayarkən əvəzolunmaz edir. Standart funksionallıqdan əlavə, inspektor Room üçün spesifik imkanlar təmin edir.
Room bazaları üçün Database Inspector hər DAO metodu üçün yaradılmış SQL sorğularını göstərir. Bu, Room-un düzgün SQL yaratdığına əmin olmağa imkan verir, xüsusən JOIN, @Relation və @Transaction ilə mürəkkəb sorğular üçün. Əgər Room səmərəsiz sorğu yerinə yetirirsə (məsələn, bir JOIN əvəzinə N+1 sorğu), bu dərhal Database Inspector sorğu jurnalında görünür.
AutoMigration və ya əl miqrasiyaları ilə Room sxemi yenilənərkən Database Inspector miqrasiyadan sonra cədvəllərin aktual strukturunu göstərir. Tətbiqi işə saldıqdan sonra inspektoru açıb bütün sütunların, indekslərin və xarici açarların düzgün yaradıldığını yoxlamaq kifayətdir. Əgər miqrasiya xəta ilə başa çatıbsa, verilənlər bazası açılmayacaq — alət son mövcud versiyanı göstərəcək.
Room @Relation və @Embedded vasitəsilə çoxsaylı cədvəllərdən məlumatları birləşdirməyə imkan verir. Database Inspector əlaqəli cədvəllərin məlumatlarını yan-yana göstərərək əlaqələrin düzgünlüyünü vizual yoxlamağa kömək edir. Hər xarici açar üçün bir kliklə əlaqəli cədvələ keçmək olar.
// Database Inspector vasitəsilə yoxlamaq üçün Relation ilə 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 yerli məlumat saxlama ilə işləyərkən yaranan konkret proqramlaşdırma tapşırıqlarını həll edir. Gündəlik işdə alətdən istifadənin ən çox yayılmış ssenarilərinə baxaq.
Tez-tez tətbiq API cavablarını yerli verilənlər bazasında keşləşdirir. Database Inspector keşləşdirmənin düzgünlüyünə əmin olmağa imkan verir: sinxronizasiya yerinə yetirildikdən sonra keş cədvəlində aktual qeydləri görmək olar. Əgər məlumatlar görünmədisə — problem saxlama kodundadır. Əgər dublikatlar göründüsə — problem upsert məntiqindədir.
DAO metodu məlumatları saxlamadıqda, lakin istisna atmadıqda, Database Inspector cədvəlin aktual vəziyyətini göstərir. Tipik səbəblər: Primary Key konflikti (OnConflictStrategy qəbulu), sütunda yanlış məlumat növü, NOT NULL məhdudiyyətlərinin pozulması və ya Foreign Key violation. İnspektor əməliyyatdan əvvəl və sonra baza dəyişikliklər dəstini görməyə imkan verir. DAO çağırışından əvvəl və sonra məlumat anlıq görüntülərinin müqayisəsi — mürəkkəb yazma əməliyyatlarında tranzaksiya xətalarını ayıklamaq və tətbiqin biznes məntiqinin düzgünlüyünü yoxlamaq üçün ən effektiv üsullardan biridir.
Cədvəl sxemi dəyişdirilərkən — sütunlar əlavə edilərkən, sahələrin adı dəyişdirilərkən, cədvəllər bölünərkən — Database Inspector miqrasiya nəticəsini yoxlamağa kömək edir. Baza yeni versiyası ilə tətbiqi işə salıb bütün məlumatların yeni struktura düzgün köçürüldüyünə əmin olmaq kifayətdir. Əgər miqrasiyadan sonra məlumatlar yoxa çıxıbsa, onları refaktorinqdən əvvəl saxlanmış dumpdan bərpa etmək olar. Bu ssenari xüsusilə SQLiteOpenHelper-dən Room-a keçərkən və ya tətbiqin yeni versiyasında mövcud cədvəllərin strukturunu dəyişdirərkən aktualdır.
Database Inspector həmçinin SQL sorğularının performansını qiymətləndirmək üçün istifadə oluna bilər. Query vərəqi vasitəsilə SELECT yerinə yetirib cavab müddətini ölçməklə, indeksləri çatışmayan sorğuları aşkarlamaq olar. Room avtomatik olaraq yavaş sorğuları Logcat-də SLOW SQL qeydi ilə jurnal edir və Database Inspector dərhal icra planını təhlil etmək üçün EXPLAIN QUERY PLAN yerinə yetirməyə imkan verir.
Tez-tez verilən suallar
Tətbiqin Debug rejimində işə salındığına və cihazın API Level-inin 26 və ya daha yüksək olduğuna əmin olun. Əgər baza ayrıca prosesdə və ya SQLCipher (şifrələmə) istifadə edərək yaradılıbsa, Database Inspector onu aşkarlaya bilməz. SQLCipher üçün şifrələməsiz köməkçi debug-bazasından istifadə edin.
Bəli, məlumat redaktəsi birbaşa cədvəl xanalarında mümkündür. Dəyərin üzərində iki dəfə klikləmək onu dəyişməyə imkan verir. Dəyişikliklər dərhal işləyən tətbiqin verilənlər bazasına tətbiq olunur. Yeni qeydlər əlavə etmək üçün Query vərəqi vasitəsilə INSERT SQL sorğusundan istifadə edin.
Xeyr, Database Inspector Realm-i dəstəkləmir, çünki Realm SQLite istifadə etmir. Realm-i ayıklamaq üçün Realm Object Server, Realm Studio və ya tətbiqdə loglamadan istifadə edin. MongoDB Realm SDK üçün macOS, Windows və Linux üçün öz Realm Studio aləti mövcuddur.
Database Inspector verilənlər bazasını tamamilə ixrac etməyə imkan verir. Siyahıda baza adının üzərinə sağ klikləyin və Export Database seçin. .db faylı kompüterə yaddaşalınacaq. Baxmaq üçün istənilən SQLite brauzerindən, məsələn DB Browser for SQLite-dən istifadə edin.
Google-un məlumatına görə, yük minimaldır — Database Inspector verilənlər bazasının WAL fayllarını oxuyur, yazmanı bloklamır. İstifadəçi SQL sorğularının yerinə yetirilməsi bazanı müvəqqəti yükləyə bilər, lakin bu proqramçı tərəfindən idarə olunur. Production quruluşları üçün alət avtomatik söndürülür.
Nəticə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun