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以上系统


Realm数据库可视化工具,windows+chrome+stetho_realm_第1张图片
image.png

所以在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

Realm数据库可视化工具,windows+chrome+stetho_realm_第2张图片
image.png

选中你自己项目的那一项


Realm数据库可视化工具,windows+chrome+stetho_realm_第3张图片
image.png

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

我是如下解决的:

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

2.换手机等等

总会出现的!!

你可能感兴趣的:(Realm数据库可视化工具,windows+chrome+stetho_realm)