Realm数据库可视化工具,windows+chrome+stetho_realm

因为要将greenDao替换掉,研究了下用什么数据库,后来选用Realm!

GreenDao由商业公司greenrobot维护,但该公司在3年前就将重心转移到新的数据库ObjectBox,
在最近一年已经停止维护GreenDao。

该项目仅开源了SDK部分的代码,Gradle插件部分代码并未开源。由于没有源码,
大量bug出现了数年都无法修复,在最新的开发环境下已经难以编译。预期2019年以后,
Android官方在Android Plugin 4.0删除废弃API后,GreenDAO将彻底不能使用。

greenrobot官方以无时间处理为由拖延拒绝提供插件源码,导致该项目无法被社区维护。
Gradle团队官方也曾介入,但greenrobot仍然无任何回应。

开发过程中遇到查看数据库问题!之前都是用greendao时用facebook的stetho特别好用!

因为Realm和Objectbox都是NoSql的,所以以前那种xx.db形式查看不了了

Realm官方是有介绍的,因为他们的数据库格式是是xxx.realm,所以需要使用他们自己的工具查看

Realm Studio    mac,linux,windows都有支持

但是不得不吐槽下,我是windows7系统,realm studio只支持windows8.1以上系统

所以在windows7上使用Realm Studio只能放弃了

这里使用stetho_realm+chrome

但是git:stetho-realm最新更新时间是2年前了,接入还是有各种问题,中间差点放弃使用Realm

可能会报各种错误,如

java.lang.NoClassDefFoundError Lio/realm/internal/SharedRealm$Durability
java.lang.NoClassDefFoundError: Failed resolution of: Lio/realm/internal/LinkView;
java.lang.NoClassDefFoundError Lio/realm/internal/SharedGroup

不过还是解决了,只是不知道随着时间的推移,后面会不会再出现问题

好了正式介绍如何接入stetho_realm+chrome

1.在你的根build.gradle下,或者app的build.gradle下都可以

maven { url 'https://github.com/WickeDev/stetho-realm/raw/master/maven-repo' }

以免遇到各种问题,我是在app的build.gradle下加入的

repositories {
    maven { url 'https://github.com/WickeDev/stetho-realm/raw/master/maven-repo' }
}

dependencies {
    debugApi 'com.facebook.stetho:stetho:1.5.1'
    debugApi 'com.uphyca:stetho_realm:2.3.0'
}

注意:url地址,不是 maven {url 'https://github.com/uPhyca/stetho-realm/raw/master/maven-repo' }

顺便说下,我用的Realm是:

classpath "io.realm:realm-gradle-plugin:5.11.0"

2.在application的onCreate下执行:

Stetho.initialize( Stetho.newInitializerBuilder(this)
                        .enableDumpapp(Stetho.defaultDumperPluginsProvider(this))
                        .enableWebKitInspector(RealmInspectorModulesProvider.builder(this).build())
                        .build())

网上也有如下配置的:(看注释应该就知道什么意思了,但是我按照如下接入的时候chrome中还是打不开,然后把withDeleteIfMigrationNeeded(true)去掉就可以了,大家可以自己测试

Stetho.newInitializerBuilder(this)
		.enableDumpapp(Stetho.defaultDumperPluginsProvider(this))
		.enableWebKitInspector(
			RealmInspectorModulesProvider.builder(this)
				.withDeleteIfMigrationNeeded(true) //if there is any changes in database schema then rebuild bd.
				.withMetaTables() //extract table meta data
				.withLimit(10000) //by default limit of data id 250, but you can increase with this
				.build()
			)
		.build());

完成之后,运行你的代码,触发数据存储之后
在chrome浏览器中输入:chrome://inspect

选中你自己项目的那一项

注意:有时候确定已经接入没有问题,但是在Web SQL下就是看不到xxx.realm,我也遇到过这个问题,弄了半天!

我是如下解决的:

1.代码中修改xxx.realm的名字或者version之后,应用卸载重装

2.换手机等等

总会出现的!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值