Mendebug database dengan Database Inspector

Database Inspector memungkinkan Anda memeriksa, menjalankan kueri, dan mengubah database aplikasi saat aplikasi tersebut sedang berjalan. Hal ini sangat berguna untuk proses debug database. Database Inspector bekerja dengan SQLite biasa dan library yang dibuat pada SQLite, seperti Room.

Membuka Database Inspector

Untuk membuka database di Database Inspector, lakukan langkah berikut:

  1. Jalankan aplikasi di emulator atau perangkat yang terhubung yang menjalankan API level 26 atau yang lebih tinggi.

  2. Dari panel menu, pilih View > Tool Windows > App Inspection.

  3. Pilih tab Database Inspector.

  4. Pilih proses aplikasi yang berjalan dari menu.

  5. Database di aplikasi yang sedang berjalan akan muncul di panel Databases. Luaskan node untuk database yang ingin diperiksa.

Melihat dan mengubah data

Panel Databases menampilkan daftar database di aplikasi Anda dan tabel yang berada dalam setiap database. Klik dua kali nama tabel untuk menampilkan datanya di jendela inspector di sebelah kanan, seperti ditunjukkan pada gambar 1. Klik header kolom untuk mengurutkan data di jendela inspector berdasarkan kolom tersebut.

Screenshot jendela Database Inspector.
Gambar 1. Jendela Database Inspector.

Untuk mengubah data dalam tabel, ikuti langkah-langkah berikut:

  1. Klik sel dua kali.
  2. Ketik nilai baru.
  3. Tekan Enter.

Jika aplikasi Anda menggunakan Room dan UI Anda mengamati database, seperti dengan LiveData atau Flow, setiap perubahan yang Anda buat pada data akan langsung terlihat di aplikasi yang sedang berjalan. Jika tidak, perubahan hanya akan terlihat pada saat berikutnya aplikasi membaca data yang diubah dari database.

Melihat perubahan database langsung

Jika Anda ingin Database Inspector secara otomatis mengupdate data yang ditampilkan saat Anda berinteraksi dengan aplikasi yang berjalan, pilih kotak centang Live updates di bagian atas jendela inspector. Saat live updates diaktifkan, tabel di jendela inspector bersifat hanya baca dan Anda tidak dapat mengubah nilainya.

Atau, untuk mengupdate data secara manual, klik tombol Refresh table di bagian atas jendela inspector.

Menjalankan kueri database

Database Inspector dapat menjalankan kueri terhadap database aplikasi saat aplikasi sedang berjalan. Alat ini dapat menggunakan kueri DAO jika aplikasi menggunakan Room, tetapi juga mendukung kueri SQL kustom.

Menjalankan kueri DAO

Jika aplikasi menggunakan Room, Android Studio akan menyediakan tindakan gutter yang memungkinkan Anda menjalankan dengan cepat metode kueri yang telah ditentukan di class DAO . Tindakan ini tersedia saat aplikasi Anda berjalan dan Database Inspector dibuka di IDE.

Untuk menjalankan metode kueri apa pun di DAO, klik tombol Run SQLite statement in Database Inspector di samping anotasi @Query.

Screenshot tindakan gutter DAO.
Gambar 2. Tindakan gutter kueri DAO.

Jika aplikasi Anda menyertakan lebih dari satu database, Android Studio akan meminta Anda untuk memilih database yang akan dijalankan kuerinya dari daftar. Jika metode kueri Anda menyertakan parameter bind, Android Studio akan meminta nilai untuk setiap parameter sebelum menjalankan kueri. Hasil kueri ditampilkan di jendela inspector.

Menjalankan kueri SQL kustom

Anda juga dapat menggunakan Database Inspector untuk menjalankan kueri SQL kustom terhadap database aplikasi Anda saat aplikasi sedang berjalan.

Untuk menjalankan kueri di database, ikuti langkah-langkah berikut:

  1. Klik tab Open New Query di bagian atas panel Databases untuk membuka tab baru di jendela inspector.

    Screenshot yang menunjukkan tombol tab kueri baru.
    Gambar 3. Buka tab New Query.
  2. Jika aplikasi Anda menyertakan lebih dari satu database, pilih database yang akan dikueri dari daftar pada tab New Query.

  3. Di bagian atas tab New Query, ketik kueri SQL kustom Anda ke dalam kolom teks.

  4. Klik Run.

Atau, gunakan fitur histori kueri untuk menjalankan kueri yang Anda gunakan sebelumnya:

  1. Klik tombol Show query history Tombol tampilkan histori kueri
untuk melihat daftar kueri yang sebelumnya Anda jalankan terhadap database yang dipilih.

    Screenshot yang menampilkan drop-down histori kueri.
    Gambar 4. Menu histori kueri.
  2. Klik kueri dalam daftar untuk melihat pratinjau kueri lengkap di editor, lalu tekan Enter untuk menyalinnya ke editor.

  3. Klik Run untuk menjalankan pernyataan.

Hasil kueri yang ditampilkan di tab New Query bersifat hanya baca dan tidak dapat diubah. Namun, Anda dapat menggunakan kolom kueri SQL kustom untuk menjalankan pernyataan pengubah seperti UPDATE, INSERT, atau DELETE.

Jika aplikasi Anda menggunakan Room dan UI Anda mengamati database, seperti dengan LiveData atau Flow, setiap perubahan yang Anda buat pada data akan segera terlihat di aplikasi yang sedang berjalan. Jika tidak, perubahan hanya akan terlihat saat aplikasi membaca data yang diubah dari database.

Mode offline

Di Android Studio 4.2 dan yang lebih tinggi, Anda dapat terus memeriksa database aplikasi setelah proses terputus. Hal ini mempermudah proses debug aplikasi setelah error.

Saat koneksi terputus, Database Inspector akan mendownload database, lalu menyediakannya untuk Anda dalam mode offline. Saat offline, Anda masih dapat membuka tabel dan menjalankan kueri.

Saat Anda terhubung kembali ke proses aplikasi langsung, Database Inspector akan keluar dari mode offline dan hanya menampilkan data yang ada di perangkat. Dengan kata lain, data yang ditampilkan dalam mode offline tidak akan bertahan saat Anda terhubung kembali ke proses aplikasi. Karena keterbatasan ini, Database Inspector tidak mengizinkan Anda mengedit data atau menjalankan pernyataan SQL modifikasi saat dalam mode offline.

Saat Anda melihat database dalam mode offline, nama prosesnya menyertakan [DETACHED] untuk menunjukkan bahwa inspector tidak lagi disertakan ke proses. Selain itu, ikon database Database
offline menunjukkan status offline, seperti ditunjukkan dalam gambar 5.

Database inspector dalam mode offline
Gambar 5. Database Inspector dalam mode offline.

Menjaga koneksi database tetap terbuka

Database Inspector hanya dapat mengubah database saat aplikasi Anda mempertahankan koneksi langsung ke database tersebut. Berarti, jika aplikasi Anda sering terhubung ke dan terputus dari database, akan sulit untuk mendebug database tersebut. Panel Databases menggunakan ikon untuk mengidentifikasi database terbuka dan tertutup .

Selain itu, agar koneksi database tidak tertutup, alihkan tombol Biarkan koneksi database tetap terbuka dari nonaktif menjadi aktif di bagian atas panel Databases.

Mengekspor data dari Database Inspector

Anda dapat mengekspor database, tabel, dan hasil kueri dari Database Inspector untuk menyimpan, membagikan, atau membuat ulang secara lokal. Saat membuka project aplikasi di Android Studio dan memeriksa aplikasi untuk project tersebut dalam Database Inspector, Anda dapat mulai mengekspor data dengan salah satu cara berikut:

  • Pilih database atau tabel di panel Databases, lalu klik Export to file di dekat bagian atas panel.
  • Klik kanan database atau tabel di panel Databases, lalu pilih Export to file dari menu konteks.
  • Saat memeriksa tabel atau hasil kueri di tab, klik Export to file di atas tabel atau hasil kueri.

Setelah memilih tindakan ekspor, gunakan dialog Export Database untuk membantu Anda melalui langkah-langkah akhir, seperti ditunjukkan pada gambar 6.

Bergantung pada apakah Anda mencoba mengekspor database, tabel, atau hasil kueri, Anda memiliki opsi untuk mengekspor data dalam satu atau beberapa format berikut: DB, SQL, atau CSV.

Kotak
dialog Export Database

Gambar 6. Dialog Ekspor Database.

Referensi lainnya

Untuk mempelajari Database Inspector lebih lanjut, lihat referensi tambahan berikut:

Postingan blog

Video