可以下载单机版Realm浏览器来读取和编辑.realm数据库。
使用Tools > Generate demo database选项,能使用简单数据生成一个测试数据库。
怎样在Realm浏览器中查看你的.realm文件?
方法1
当前Realm浏览器不支持直接访问设备上的数据库,所以需要先从模拟器或设备上拷贝出数据库,然后查看它。使用下面的adb命令拷贝数据库:
adb pull /data/data/<packagename>/files/ .
这个命令将拉取所有使用Realm.getInstance(getContext())
或Realm.getInstance(new RealmConfiguration.Builder(context).build())
方法创建的realm文件。默认的数据库命名是default.realm。
注意,该方法只对模拟器或被root的设备有效。
方法2
如果你懒于每次使用adb获取realm数据库文件,你可以在你的代码中增加一个导出功能。
下面是一个导出realm文件,并发送带有realm文件附件邮件的示例:
public void exportDatabase() {
// init realm
Realm realm = Realm.getInstance(getActivity());
File exportRealmFile = null;
try {
// get or create an "export.realm" file
exportRealmFile = new File(getActivity().getExternalCacheDir(), "export.realm");
// if "export.realm" already exists, delete
exportRealmFile.delete();
// copy current realm to "export.realm"
realm.writeCopyTo(exportRealmFile);
} catch (IOException e) {
e.printStackTrace();
}
realm.close();
// init email intent and add export.realm as attachment
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("plain/text");
intent.putExtra(Intent.EXTRA_EMAIL, "YOUR MAIL");
intent.putExtra(Intent.EXTRA_SUBJECT, "YOUR SUBJECT");
intent.putExtra(Intent.EXTRA_TEXT, "YOUR TEXT");
Uri u = Uri.fromFile(exportRealmFile);
intent.putExtra(Intent.EXTRA_STREAM, u);
// start email intent
startActivity(Intent.createChooser(intent, "YOUR CHOOSER TITLE"));
}
不要忘了在Manifest文件中增加以下权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
当前单机版Realm浏览器只有Mac版,如果是其他平台你可以使用Stetho-Realm。