android nosql 数据库对比 Realm vs ObjectBox
前言:android 数据库对比资料
- Room,Realm,,ObjectBox 你选择哪个? 发表于 2017-09-26
- 5个最流行的可用于移动开发的嵌入式数据库简介 发表于 2016-04-12
- ORM数据库框架 SQLite 常用数据库框架比较 发表于 2018-8-17
集成试验
★只代表强度,最高5星,不代表好坏
ObjectBox
难度 (较高★★★☆)
需要在build.gradle写入以下:
classpath “io.objectbox:objectbox-gradle-plugin:$objectboxVersion”
apply plugin: ‘io.objectbox’
可选编译方案(官方文档上说如果plugin: 'io.objectbox’失效出错,可以手动加入以下代码进行编译):
apply plugin: ‘kotlin-kapt’
kapt “io.objectbox:objectbox-processor:$objectboxVersion”
releaseImplementation “io.objectbox:objectbox-android:$objectboxVersion”
可选组件:
implementation "io.objectbox:objectbox-kotlin:$objectboxVersion 用于kotlin
debugImplementation “io.objectbox:objectbox-android-objectbrowser:$objectboxVersion” 用于查看数据库
在编译的时候报错:
合并包错误
解决方案:
把 apply plugin: ‘io.objectbox’ 写在build.gradle最下面
找不到MyObjectBox
解决方案:
先写一个数据类(使用@Entity)在build中执行rebuild 或 make project
因为不使用数据库的或,编译插件不会生成MyObjectBox
大小(较大★★★☆)
如图所示,lib库有1.8Mb ,平均每个so文件相对于Realmx小了65%,但是相对于Realm不支持mips。
不追求最高性能的话,x86库中可定制化移除其中一个;mips使用设备太少,不支持影响很小
Realm
难度(一般★★☆)
需要在build.gradle写入以下:
classpath “io.realm:realm-gradle-plugin:5.8.0”
apply plugin: ‘realm-android’
在编译的时候报错:
Invoke-customs are only supported starting with android 0 --min-api 26
解决方案:
在build.gradle的android下写入以下
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
就是说使用java8开发,但是Androidstudio会自动帮你兼容以前版本
大小 (超大★★★★☆)
如图所示,lib库有6Mb ,平均每个so文件相对于ObjectBox大了170%,但是相对于ObjectBox增加支持mips。
mips所使用人群很少,可定制化移除
中文文档
ObjectBox
没有官方中文文档
国内译文
- ObjectBox[一] 特性
- ObjectBox[二] 教程:如何开始使用ObjectBox
- ObjectBox[三] 教程:安装和基础
- ObjectBox[四] 数据库持久化之实体注解
- ObjectBox[五] 基本操作:查询
- ObjectBox[六] 数据监听和RX(Data Observers and Reactive Extensions)
- ObjectBox[七] 支持LiveData(Android体系结构组件)
- ObjectBox[八] 关系
- ObjectBox[九] 数据模型变更
- ObjectBox[十] 自定义类型
- ObjectBox[十一] 事务
- ObjectBox[十二] Meta Model, IDs, and UIDs
- ObjectBox[十三] 数据调试
备注:译文版本为ObjectBox1.1 ;ObjectBox现在版本为2.2
Realm
官方中文文档
官方中文文档版本为3.1.1 ; Realm现在版本为5.8.0