问题
我刚刚发现了领域,并希望更详细地探索它,所以我决定创建示例应用程序并搞乱它。到目前为止这么好但是我还没有能够解决的一件事是如何在Realm Browser中查看我的数据库。有人能够让我深入了解如何做到这一点?任何建议将不胜感激!
#1 热门回答(112 赞)
目前,Realm Browser不支持直接在设备上访问数据库,因此你需要从模拟器/手机中复制数据库以进行查看。这可以通过使用ADB来完成:adb pull /data/data/<packagename>/files/ .
该命令将获取使用Realm.getInstance(new RealmConfiguration.Builder().build())
创建的所有Realm文件。默认数据库名为default.realm
。
请注意,这仅适用于模拟器或设备已植根。
#2 热门回答(92 赞)
现在,你可以使用Facebook开发的Stetho在Chrome浏览器上查看Realm DB。默认情况下,Stetho允许查看Sqlite,网络,共享偏好,但也允许使用额外的plugin here允许来查看Realm。
使用上述库配置Application
类后,在应用程序运行并连接时,打开Chrome浏览器并导航chrome://inspect
以查看
ThenResources->Web Sql->default.realm
#3 热门回答(51 赞)
如果你每次使用adb都懒得获取领域数据库文件,你可以在你的android代码中添加一个导出函数,它会向你发送一封带有领域数据库文件作为附件的电子邮件。
这是一个例子:
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"));
}
不要忘记将此用户权限添加到Android Manifest文件中:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />