Saya baru saja menemukan Realm dan ingin menjelajahinya secara lebih detail sehingga saya memutuskan untuk membuat aplikasi sampel dan mengacaukannya. Sejauh ini baik.
Namun, satu hal yang belum dapat saya lakukan adalah bagaimana cara melihat database saya di Realm Browser. Bagaimana ini bisa dilakukan?
Jawaban:
Saat ini Realm Browser tidak mendukung pengaksesan database secara langsung di perangkat, jadi Anda perlu menyalin database dari emulator / telepon untuk melihatnya. Itu bisa dilakukan dengan menggunakan ADB:
adb pull /data/data/<packagename>/files/ .
Perintah itu akan menarik semua file Realm yang dibuat menggunakan
Realm.getInstance(new RealmConfiguration.Builder().build())
. Basis data default disebutdefault.realm
.Perhatikan bahwa ini hanya akan bekerja pada emulator atau jika perangkat di-root.
sumber
Sekarang Anda dapat melihat Realm DB di browser Chrome menggunakan Stetho , yang dikembangkan oleh Facebook. Secara default, Stetho memungkinkan untuk melihat Sqlite, jaringan, preferensi bersama tetapi dengan plugin tambahan di sini memungkinkan untuk melihat Realm juga.
Setelah mengonfigurasi
Application
kelas Anda dengan pustaka di atas, saat aplikasi sedang berjalan dan terhubung, buka browser Chrome dan navigasikanchrome://inspect
untuk melihatKemudian
Resources->Web Sql->default.realm
sumber
https://github.com/uPhyca/stetho-realm/raw/master/maven-repo
seperti yang ditunjukkan di sini github.com/uPhyca/stetho-realmAnda juga dapat menarik file Anda dari perangkat NON-rooted lainnya menggunakan perintah ADB shell dan run-as.
Anda dapat menggunakan perintah ini untuk menarik dari penyimpanan pribadi aplikasi Anda, sebuah database bernama your_database_file_name yang terletak di folder file:
sumber
adb exec-out run-as package.name cat files/your_database_file_name < your_database_file_name
Jika Anda malas mendapatkan file basis data realm setiap kali menggunakan adb, Anda bisa menambahkan fungsi ekspor ke kode android Anda, yang mengirimi Anda email dengan file basis data realm sebagai lampiran.
Berikut sebuah contoh:
Jangan lupa untuk menambahkan izin pengguna ini ke file Android Manifest Anda:
sumber
Untuk Android (Tidak perlu me-rooting perangkat Anda)
Untuk mendapatkan salinan basis data Realm pada perangkat Anda, buka Device File Explorer di Android Studio.
Navigasi ke
/data/data/your.package.name/files/
.Di sana Anda akan menemukan file * .realm Anda. Klik kanan, lalu Simpan Sebagai . Pastikan untuk menyinkronkan sebelum Anda menyimpannya.
Gunakan Realm Browser atau salah ini untuk melihat file * .realm:
sumber
Ada solusinya. Anda dapat langsung mengakses file dari monitor perangkat. Anda dapat mengakses direktori ini hanya ketika Anda menggunakan emulator atau perangkat yang di-rooting.
Di Android Studio:
Pilih
Alat Menu β Android β Monitor Perangkat Android β File Explorer β data β data β (Nama Paket Anda) β file β * db.realm
Tarik file ini dari perangkat:
Dari Android Studio 3 canary 1, Device File Explorer telah diperkenalkan. Anda perlu melihat file ranah di sini. Kemudian, (pilih paket Anda) β pilih file ranah β Klik kanan dan simpan.
Dan buka file tersebut ke Realm Browser. Anda dapat melihat data Anda sekarang.
sumber
Anda dapat mengakses file ranah secara langsung. Inilah solusi yang saya gunakan.
Pertama, Anda dapat menyalin file ranah yang terletak di '/ data / data / nama paket / file' ke Environment.getExternalStorageDirectory () + '/ FileName.realm':
Kedua, gunakan alat ADB untuk menarik file itu seperti ini:
Sekarang Anda dapat membuka file di Realm Browser.
sumber
Inilah solusi yang tidak mengharuskan ponsel Anda di-rooting, dengan memanfaatkan
run-as
perintah yang ada di dalamadb
shell. Hanya prasyarat adalah Anda harus menginstal debug aplikasi Anda pada ponsel target.Anda akan memiliki salinan DB dari telepon di dalam direktori lokal Anda, yang kemudian dapat Anda muat ke Realm Browser.
sumber
Anda sekarang dapat mengaksesnya langsung jika Anda menggunakan emulator.
Pertama, Log path tempat file tersebut berada di emulator seperti yang dikatakan @bmunk:
Log.d(TAG, "path: " + realm.getPath());
Pencarian kedua dan lakukan klik kanan pada file dan pilih "Save As", pada dialog akan muncul rute di mana file tersebut benar-benar ada di sistem Anda.
Dan kemudian, cukup tempel rute pada dialog "Buka File Lokal" dari Realm Studio.
(Saya sudah menguji ini di Windows saja)
sumber
Ini skrip shell saya yang siap pakai. Cukup ganti nama paket dan jalur adb Anda maka skrip akan melakukan yang diperlukan.
Lebih detail di posting blog ini: http://medyo.github.io/2016/browse-populate-and-export-realm-database-on-android/
sumber
Tetap sederhana:
Penjelasan:
adb
instalasi Anda . Jika Anda menggunakan Android Studio kemudian lihat File> Struktur Proyek> Lokasi SDK> Lokasi Android SDK dan tambahkanplatform-tools
ke jalur itu.run-as
argumenNB: File ini disebut default.realm karena saya belum mengubah namanya saat mengonfigurasinya - nama Anda mungkin berbeda.
sumber
Anda memiliki beberapa opsi untuk melihat file ranah android Anda:
Seperti @Christian Melchior berkata Anda dapat menarik basis data ranah Anda dari perangkat dan membukanya di mac Anda menggunakan OSX Realm Browser
Anda dapat menggunakan Browser Realm Android pihak ketiga yang saya buat, untuk membuat pengembangan android dengan ranah sedikit lebih mudah. Aplikasi akan menampilkan semua file ranah pada perangkat Anda, dan Anda dapat melihat semua file ranah Anda secara real time saat menguji aplikasi Anda.
Anda dapat menggunakan browser Chrome Stetho Deskripsi lengkap cara menggunakan Setho disediakan oleh @Jemshit Iskendero.
sumber
Inilah cangkang untuk orang-orang malas seperti saya :)
The
.realm
file akan disimpan dalamtmpRealm/
folder di sebelah.sh
berkas.Atau jika Anda lebih suka membiarkan
tmpRealm/
kartu SD:Referensi:
sumber