android nosql 数据库对比 Realm vs ObjectBox

前言:android 数据库对比资料

集成试验

ObjectBox

难度 (较高★★★☆)

大小(较大★★★☆)

Realm

难度(一般★★☆)

大小 (超大★★★★☆)

中文文档

ObjectBox

[国内译文]()

Realm

[官方中文文档](https://realm.io/cn/docs/java/latest/)

未完待续.....

前言: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

大小(较大★★★☆)

android room DAO框架处理数据库新增字段 android数据库框架对比_数据库

如图所示,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会自动帮你兼容以前版本

参考:使用 Java 8 语言功能

大小 (超大★★★★☆)

android room DAO框架处理数据库新增字段 android数据库框架对比_android流行数据库对比_02

如图所示,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

未完待续…