Database Inspector di Android Studio — adalah alat bawaan untuk melihat dan men-debug basis data SQLite aplikasi seluler secara real-time. Menurut dokumentasi resmi Android Developers (2025), alat ini memungkinkan menjalankan kueri SQL ke basis data aktif, melihat struktur tabel, dan mengedit catatan tanpa menghentikan aplikasi. Alat ini mendukung Room, SQLiteOpenHelper, dan basis data in-app lainnya, mendeteksinya secara otomatis saat memulai profiling.
Poin Utama
Database Inspector — adalah alat Android Studio untuk inspeksi dan debug basis data lokal di aplikasi seluler. Alat ini memungkinkan melihat semua basis data SQLite yang dibuat oleh aplikasi, termasuk basis data Room, SQLiteOpenHelper, dan pustaka pihak ketiga. Alat ini tersedia mulai Android Studio 4.1 dan dijalankan melalui Android Profiler atau langsung dari menu View.
Tugas utama Database Inspector adalah visualisasi data dalam proses pengembangan. Alih-alih mengeluarkan konten basis data ke log atau menulis layar terpisah untuk melihat data, pengembang dapat membuka Database Inspector dan langsung melihat semua tabel, skema, dan kontennya. Alat ini mendukung basis data relasional SQLite maupun Room dengan Auto-migrasi.
Alat ini sangat diperlukan dalam skenario ketika perlu memeriksa kebenaran penyimpanan data setelah melakukan operasi: registrasi pengguna, sinkronisasi dengan server, caching daftar. Alih-alih menulis UI pengujian, dump basis data dilihat melalui Database Inspector. Alat ini juga digunakan secara aktif untuk men-debug migrasi Room — skema tabel terkini dapat dilihat setelah setiap pembaruan skema.
Database Inspector terhubung ke proses aplikasi Android melalui Android Profiler Service. Alat ini mendeteksi semua koneksi SQLite yang terbuka di aplikasi dan menampilkannya di panel samping. Untuk bekerja, diperlukan build Debug aplikasi dengan API Level 26 (Android 8.0) dan lebih tinggi.
Saat dijalankan, Database Inspector membuat tunnel ADB antara aplikasi di perangkat dan IDE di komputer. File WAL (Write-Ahead Logging) basis data SQLite dialirkan melalui tunnel ini untuk menampilkan konten. Perintah SQL dikirim langsung ke mesin SQLite aplikasi melalui dukungan Database Inspector di Room dan SQLiteDatabase. Alat secara otomatis mendeteksi saat aplikasi membuka basis data dan menambahkannya ke daftar yang diinspeksi.
Untuk pengoperasian Database Inspector yang benar diperlukan: Android Studio 4.1+, perangkat atau emulator dengan API Level 26+, build Debug aplikasi. Untuk Room, tambahan diperlukan pustaka room-runtime versi 2.2+. Jika basis data dibuat dalam mode WAL, yang merupakan standar untuk Room 2.2+, alat dapat membaca data tanpa memblokir aplikasi utama.
// Contoh basis data Room yang didukung oleh 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 menyediakan set lengkap fungsi untuk bekerja dengan data lokal: dari melihat skema tabel hingga menjalankan kueri SQL kompleks dan mengedit catatan.
Di panel kiri ditampilkan semua basis data dan tabel. Saat memilih tabel, kontennya terbuka dalam bentuk tabel dengan kolom: semua bidang catatan ditampilkan sebagai kolom, setiap baris adalah catatan terpisah. Skema tabel (nama, tipe, batasan) ditampilkan di atas. Untuk kunci asing, hubungan antar tabel ditunjukkan.
| Tipe Data | Tipe SQLite | Tipe Room | Contoh |
|---|---|---|---|
| Bilangan bulat | INTEGER | Int, Long | 42 |
| String | TEXT | String | “John” |
| Bilangan pecahan | REAL | Double, Float | 3.14 |
| Data biner | BLOB | ByteArray | [0x00, 0x01] |
| Tanggal/waktu | INTEGER (Unix epoch) | Long, Date | 1720000000 |
Tab Query memungkinkan menjalankan perintah SQL arbitrer langsung ke basis data yang dipilih. SELECT, INSERT, UPDATE, DELETE, CREATE INDEX, JOIN, dan operator SQLite lainnya didukung. Hasil ditampilkan dalam bentuk tabel di bawah editor kueri. Riwayat kueri disimpan selama sesi.
Sel tabel dapat diedit langsung — cukup klik nilai dan masukkan yang baru. Perubahan diterapkan segera ke aplikasi yang sedang berjalan. Ini sangat berguna untuk menguji kasus batas: menetapkan null di bidang wajib, mengganti ID dengan yang tidak ada, memeriksa pemrosesan string panjang. Semua perubahan dicatat secara real-time.
Database Inspector memiliki integrasi mendalam dengan Room, yang membuatnya sangat diperlukan saat mengembangkan aplikasi dengan pustaka ini. Selain fungsionalitas standar, inspector menyediakan kemampuan khusus untuk Room.
Untuk basis data Room, Database Inspector menampilkan kueri SQL yang dihasilkan untuk setiap metode DAO. Ini memungkinkan memastikan bahwa Room menghasilkan SQL yang benar, terutama untuk kueri kompleks dengan JOIN, @Relation, dan @Transaction. Jika Room menjalankan kueri yang tidak efisien (misalnya, N+1 kueri alih-alih satu JOIN), ini langsung terlihat di log kueri Database Inspector.
Saat memperbarui skema Room dengan AutoMigration atau migrasi manual, Database Inspector menunjukkan struktur tabel terkini setelah migrasi. Cukup buka inspector setelah meluncurkan aplikasi dan periksa apakah semua kolom, indeks, dan kunci asing telah dibuat dengan benar. Jika migrasi gagal dengan kesalahan, basis data tidak akan terbuka — alat akan menampilkan versi terakhir yang tersedia.
Room memungkinkan menggabungkan data dari beberapa tabel melalui @Relation dan @Embedded. Database Inspector membantu memeriksa kebenaran hubungan secara visual dengan menampilkan data tabel terkait berdampingan. Untuk setiap kunci asing, dapat dinavigasi ke tabel terkait dengan satu klik.
// Entity dengan Relation untuk diperiksa melalui 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 memecahkan tugas pemrograman spesifik yang muncul saat bekerja dengan penyimpanan data lokal. Mari kita bahas skenario penggunaan alat yang paling umum dalam pekerjaan sehari-hari.
Seringkali aplikasi menyimpan cache respons API di basis data lokal. Database Inspector memungkinkan memastikan kebenaran caching: setelah melakukan sinkronisasi, catatan terkini dapat dilihat di tabel cache. Jika data tidak muncul — masalahnya ada di kode penyimpanan. Jika muncul duplikat — masalahnya ada di logika upsert.
Ketika metode DAO tidak menyimpan data tetapi tidak melempar pengecualian, Database Inspector menunjukkan status terkini tabel. Penyebab umum: konflik Primary Key (pengaturan OnConflictStrategy), tipe data yang salah di kolom, pelanggaran batasan NOT NULL atau Foreign Key violation. Inspector memungkinkan melihat changeset basis data sebelum dan sesudah operasi. Membandingkan snapshot data sebelum dan sesudah pemanggilan DAO — salah satu cara paling efektif untuk men-debug kesalahan transaksi dan memeriksa kebenaran logika bisnis aplikasi pada operasi tulis yang kompleks.
Saat mengubah skema tabel — menambah kolom, mengganti nama bidang, memisahkan tabel — Database Inspector membantu memeriksa hasil migrasi. Cukup jalankan aplikasi dengan versi basis data baru dan pastikan semua data telah dipindahkan dengan benar ke struktur baru. Jika data hilang setelah migrasi, data dapat dipulihkan dari dump yang disimpan sebelum refaktor. Skenario ini sangat relevan saat beralih dari SQLiteOpenHelper ke Room atau saat mengubah struktur tabel yang ada di versi baru aplikasi.
Database Inspector juga dapat digunakan untuk mengevaluasi kinerja kueri SQL. Dengan menjalankan SELECT melalui tab Query dan mengukur waktu respons, kueri yang kekurangan indeks dapat diidentifikasi. Room secara otomatis mencatat kueri lambat di Logcat dengan tanda SLOW SQL, dan Database Inspector memungkinkan langsung menjalankan EXPLAIN QUERY PLAN untuk menganalisis rencana eksekusi.
Pertanyaan yang Sering Diajukan
Pastikan aplikasi berjalan dalam mode Debug, dan API Level perangkat adalah 26 atau lebih tinggi. Jika basis data dibuat di proses terpisah atau menggunakan SQLCipher (enkripsi), Database Inspector mungkin tidak mendeteksinya. Untuk SQLCipher, gunakan basis data debug tambahan tanpa enkripsi.
Ya, pengeditan data dimungkinkan langsung di sel tabel. Klik dua kali pada nilai untuk mengubahnya. Perubahan segera diterapkan ke basis data aplikasi yang sedang berjalan. Untuk menambahkan catatan baru, gunakan kueri SQL INSERT melalui tab Query.
Tidak, Database Inspector tidak mendukung Realm, karena Realm tidak menggunakan SQLite. Untuk debug Realm, gunakan Realm Object Server, Realm Studio, atau pencatatan di aplikasi. Untuk MongoDB Realm SDK, tersedia alat Realm Studio sendiri untuk macOS, Windows, dan Linux.
Database Inspector memungkinkan mengekspor basis data secara lengkap. Klik kanan pada nama basis data di daftar dan pilih Export Database. File .db akan disimpan di komputer. Untuk melihatnya, gunakan browser SQLite apa pun, misalnya DB Browser for SQLite.
Menurut Google, overheadnya minimal — Database Inspector membaca file WAL basis data tanpa memblokir penulisan. Eksekusi kueri SQL khusus dapat sementara membebani basis data, tetapi ini dikendalikan oleh pengembang. Untuk build produksi, alat secara otomatis dinonaktifkan.
Kesimpulan
Kami akan mengembangkan aplikasi seluler turnkey
IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.
Baca juga