ObjectBox简介
ObjectBox数据库是greenrobot团队开发的全新非关系型数据库框架,具有如下特点:
1、超快速:号称胜过测试过的所有嵌入式数据库;
2、面向对象的API:没有rows、columns和SQL,完全从0开始的对象;
3、反应性:对数据变化的反应简单而强大,使用ObjectBox中数据观察器或与RxJava集成;
4、多平台支持:已经支持安卓和java、ios和MacOs正在集成;
5、简单的线程:ObjectBox返回的对象可以在所有线程中运行;
6、不需要手动模式迁移:ObjectBox负责添加,删除和重命名属性的新对象版本,意味着数据库的升级不再需要我们自己管理版本号,ObjectBox内部会自动帮我们管理;
7、ObjectBox小于1MB,因此它是移动应用程序、小型IoT设备和IoT网关的理想解决方案。
ObjectBox环境配置
1、project根目录下build.gradle (project 级别)添加如下配置:
buildscript {
...
ext.objectboxVersion = '2.8.1'
dependencies {
...
classpath "io.objectbox:objectbox-gradle-plugin:$objectboxVersion"
}
}
2、浏览ObjectBox数据
2.1如果需要通过浏览器(PC端或移动端)查看ObjectBox存储的数据,需执行下面操作:
a、在module根目录下build.gradle (module 级别)添加如下配置:
dependencies {
...
// 使用浏览器查看数据的依赖,官方建议仅在 debug 版本依赖,所以做以下区分
debugImplementation "io.objectbox:objectbox-android-objectbrowser:$objectboxVersion"
releaseImplementation "io.objectbox:objectbox-android:$objectboxVersion"
}
// 注意下面的内容必须放到 dependencies 语句块的后面(文件末尾),否则编译报错
apply plugin: 'io.objectbox'
b、在Application的onCreate()中添加如下代码:
if (BuildConfig.DEBUG) {// 官方建议仅在debug下开启数据浏览
new AndroidObjectBrowser(boxStore).start(app);// 注:boxStore的获取需要先创建实体类
}
c、在AndroidManifest.xml中添加相应权限:
<!-- Required to provide the web interface -->
<uses-permission android:name="android.permission.INTERNET" />
<!-- Required to run keep-alive service when targeting API 28 or higher -->
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
d、手机需要连接adb,浏览器访问http://localhost:8090/index.html (该地址由ObjectBrowser 日志得到)。如果访问不到,那么程序安装后,打开命令行输入以下命令adb forward tcp:8090 tcp:8090后再次尝试。
I/ObjectBrowser: ObjectBrowser started: http://127.0.0.1:8090/index.html
I/ObjectBrowser: Command to forward ObjectBrowser to connected host: adb forward tcp:8090 tcp:8090
2.2如果不需要通过浏览器查看ObjectB