Android数据库框架GreenDao&Realm实战分析
2016-08-09 17:35
661 查看
Android开发的童鞋应该都知道,使用官方的SQLite数据库,可以满足我们大部分增删改查的需求,然而随着Android技术的逐步成长,你会慢慢发现SQLite越来越不能满足我们的需求。总结为以下主要几点:
1、创表,增删改查需要些大量代码,开发效率极低。
2、需大量封装,测试繁琐。
3、效率极低(当你使用了GreenDao||Realm你会发现它完全不能接受)。
4、加密等操作需手动处理。
正因为SQLite的繁琐使用,Andorid也会随着JAVA 的脚步出现大量的ORM框架,类似于JAVA Web的Hibernate。
下面给出他们对应的仓库地址,从地址热度、star、更新时间,你也基本能判断出他们目前的流行程度与使用人数。
ORMLite:https://github.com/j256/ormlite-android
Afinal:https://github.com/yangfuhai/afinal
ActiviteAndroid:https://github.com/pardom/ActiveAndroid
SugarORM:Android 平台专用ORM
GreenDao:https://github.com/greenrobot/greenDAO
Realm:https://github.com/realm/realm-java
接下来轮到GreenDao&Realm登场,他们的实用性与性能如何,我们拿真实数据说话。网络对他们的资料介绍非常模糊,并且参差不齐。
下面我们逐步进行PK
Realm:
来自官方
Make sure make is available in your $PATH
Download the JDK 7 or JDK 8 from Oracle and install it.
Download & install the Android SDK Build-Tools 24.0.0, Android N (API 24) (for example through Android Studio’s Android SDK Manager)
Download the Android NDK (= r10e) for OS X or Linux.
Realm:io.realm:realm-android:0.84.1
Realm V:0.84.1
Realm V:1.1.1
通过记录大量数据取平均值,记录如下:
从这张表中体现出的现象:
在小量数据的查询与删除等操作中,两者的差距基本可以忽略不计,早超过同时插入、删除、查询1000条以上的数据分析得出。GreenDao在删除操作中,占明显优势,而Realm在添加与查询方面优于GreenDAO。
如果你的项目中对添加与查询操作要求极高的话,推荐使用Realm,但它目前相对不稳定,官方也在持续优化中,需留意官网并实时替换新版本。
项目内容:
Github下载地址:https://github.com/JackWaiting/GreenDao-Realm
1、创表,增删改查需要些大量代码,开发效率极低。
2、需大量封装,测试繁琐。
3、效率极低(当你使用了GreenDao||Realm你会发现它完全不能接受)。
4、加密等操作需手动处理。
正因为SQLite的繁琐使用,Andorid也会随着JAVA 的脚步出现大量的ORM框架,类似于JAVA Web的Hibernate。
目前流行的Andorid数据库框架
下面先列出目前流行的常见ORM框架:ORMLite、Afinal、ActiveAndroid、SugarORM、GreenDao、Realm下面给出他们对应的仓库地址,从地址热度、star、更新时间,你也基本能判断出他们目前的流行程度与使用人数。
ORMLite:https://github.com/j256/ormlite-android
Afinal:https://github.com/yangfuhai/afinal
ActiviteAndroid:https://github.com/pardom/ActiveAndroid
SugarORM:Android 平台专用ORM
GreenDao:https://github.com/greenrobot/greenDAO
Realm:https://github.com/realm/realm-java
解析主角GreenDao&Realm
背景
以上框架我使用过ORMLite&Afinal&GreenDao&Realm,没使用过的我先暂不评价,最开始我准备通过这4个框架的对比为大家进行分析,然而当我写ORMLite的时候,发现其的ORM封装并没有什么大的作用,唯一让我觉得能夸赞一点的地方,ORMLite他不在需要去写表结构以及SQL语句,我们只需配置实体注解以及调用它的DAO进行数据库操作即可,相对于SQLite也仅仅只是这么点优点,仍然需要写大量的封装代码,这点其实已经很不愿意去使用它了,然而他的性能测试,使我完全放弃使用它,跟GreenDao&Realm完全不在一个层级上的,所以直接推荐大家不使用。至于Afinal,他里面还封装了很多其他的功能,也不是我们优选的数据库框架。接下来轮到GreenDao&Realm登场,他们的实用性与性能如何,我们拿真实数据说话。网络对他们的资料介绍非常模糊,并且参差不齐。
下面我们逐步进行PK
1、开发环境需求
GreenDao: Android Studio即可。Realm:
来自官方
Make sure make is available in your $PATH
Download the JDK 7 or JDK 8 from Oracle and install it.
Download & install the Android SDK Build-Tools 24.0.0, Android N (API 24) (for example through Android Studio’s Android SDK Manager)
Download the Android NDK (= r10e) for OS X or Linux.
2、版本对比:
GreenDao: org.greenrobot:greendao:3.1.0Realm:io.realm:realm-android:0.84.1
3、引用方法
GreenDao:buildscript { repositories { mavenCentral() } dependencies { classpath 'org.greenrobot:greendao-gradle-plugin:3.1.0' } } apply plugin: 'org.greenrobot.greendao' dependencies { compile 'org.greenrobot:greendao:3.1.0' }
Realm V:0.84.1
dependencies { compile 'io.realm:realm-android:0.84.1' }
Realm V:1.1.1
buildscript { repositories { maven { url 'http://oss.jfrog.org/artifactory/oss-snapshot-local' } } dependencies { classpath "io.realm:realm-gradle-plugin:<version>-SNAPSHOT" } } repositories { maven { url 'http://oss.jfrog.org/artifactory/oss-snapshot-local' } }
3、数据库操作(增删改查)
我们通过Demo使用GreenDao&Realm数据库对相同的数据进行1、10、100、1000、10000、100000条数据同时添加、删除、查询(id,name,age3个字段)观察其性能的真实对比,其它条件完全保持一致,仅计算数据库增删改查的时间。通过记录大量数据取平均值,记录如下:
从这张表中体现出的现象:
在小量数据的查询与删除等操作中,两者的差距基本可以忽略不计,早超过同时插入、删除、查询1000条以上的数据分析得出。GreenDao在删除操作中,占明显优势,而Realm在添加与查询方面优于GreenDAO。
4、使用推荐
由于GreenDao在3.0.1后的使用极其方便,并且使用的习惯与拓展性、稳定性优于Realm,推荐使用GreenDao.如果你的项目中对添加与查询操作要求极高的话,推荐使用Realm,但它目前相对不稳定,官方也在持续优化中,需留意官网并实时替换新版本。
5、测试截图与测试Demo
下面是1000条数据的测试截图项目内容:
Github下载地址:https://github.com/JackWaiting/GreenDao-Realm
相关文章推荐
- Android数据库框架GreenDAO的使用&Demo
- Android数据库greenDAO框架用法和源码分析
- Android数据库greenDAO框架用法和源码分析
- android高效ORM数据库框架greenDao使用
- Android中的GreenDao框架修改数据库的存储路径
- Android整合网上资源以及个人对GreenDao数据库框架的理解与使用(android-studio开发)
- Android操作数据库的框架-GreenDao基本使用记录
- Android ORM数据库框架之-greenDao(四)
- android GreenDao数据库框架学习(1)
- Android 数据库ORM开源框架之greenDAO
- Android 数据库框架GreenDao食用练习
- android高级之旅 (十二) 修改greendao数据库框架的储存路径
- Android greenDAO 数据库框架接入指南
- Android 操作数据库的框架——greenDAO的学习
- Android ORM 框架:GreenDao 数据库升级
- Android ORM 框架:GreenDao 数据库升级
- Android框架学习之GreenDao(二)数据库升级
- android GreenDao数据库框架学习(2)
- Android ORM数据库框架之-greenDao(三)
- Android数据库框架GreenDao封装使用,易理解、易扩展