greenDAO與Realm的探索

最近項(xiàng)目中要用到數(shù)據(jù)庫(kù)相關(guān)的知識(shí)惦费,就在網(wǎng)上查了下Android平臺(tái)上的數(shù)據(jù)庫(kù)框架哮塞,目前比較熱門有GreenDAO和Realm南蹂,這兩個(gè)都是使用者都比較多佃乘,并且都在持續(xù)發(fā)布更新囱井,就對(duì)這兩個(gè)框架進(jìn)行了一些探索。

兩者的官網(wǎng)和github鏈接:
GreenDAO:
http://greenrobot.org/greendao/
https://github.com/greenrobot/greenDAO

Realm:
https://realm.io/cn/
https://github.com/realm/realm-java

簡(jiǎn)單介紹

GreenDAO

greenDao是一款A(yù)ndroid平臺(tái)上的開源框架恕稠,提供將對(duì)象映射到SQLite數(shù)據(jù)庫(kù)中的輕量且快速的ORM解決方案琅绅。greenDAO對(duì)安卓進(jìn)行了高度優(yōu)化,提供了出色的性能和最小的內(nèi)存消耗鹅巍。它減輕開發(fā)人員處理低級(jí)數(shù)據(jù)庫(kù)需求千扶,同時(shí)節(jié)省開發(fā)時(shí)間,使SQLite數(shù)據(jù)庫(kù)的開發(fā)變得有趣骆捧。

SQLite是一個(gè)令人敬畏的嵌入式關(guān)系數(shù)據(jù)庫(kù)澎羞。不過(guò),編寫SQL和解析查詢結(jié)果是相當(dāng)乏味和耗時(shí)的任務(wù)敛苇。greenDAO通過(guò)將Java對(duì)象映射到數(shù)據(jù)庫(kù)表(稱為ORM 妆绞,對(duì)象關(guān)系映射)將您從其中解脫出來(lái)。通過(guò)簡(jiǎn)單的面向?qū)ο驛PI枫攀,你就可以來(lái)存儲(chǔ)括饶,更新,刪除和查詢Java對(duì)象来涨。

功能一覽:

高性能(可能是Android最快的ORM):開源的基準(zhǔn)
易用:功能強(qiáng)大的API涵蓋關(guān)系和聯(lián)接
最小的內(nèi)存消耗
精簡(jiǎn)的庫(kù)(<100KB):維持較少的編譯時(shí)間图焰,并避免65k方法數(shù)量的限制
數(shù)據(jù)庫(kù)加密:greenDAO支持SQLCipher,以保護(hù)用戶的數(shù)據(jù)安全
強(qiáng)大的社區(qū):GitHub上超過(guò)5000個(gè)Star(現(xiàn)在已經(jīng)超過(guò)8000了)表明有一個(gè)強(qiáng)大和積極的社區(qū)

Realm

Realm是一款可直接運(yùn)行在手機(jī)蹦掐,平板電腦或可穿戴設(shè)備上的移動(dòng)數(shù)據(jù)庫(kù)技羔。Realm 移動(dòng)端數(shù)據(jù)庫(kù)快速僵闯、易用、開源且完全免費(fèi)藤滥,深受開發(fā)者和億萬(wàn)用戶喜愛鳖粟。Realm 是 SQLite 和 Core Data 的替代者,得益于其零拷貝的設(shè)計(jì)拙绊,Realm 比任何 ORM 都要快很多向图。Realm簡(jiǎn)單、快速标沪,節(jié)約數(shù)周的開發(fā)時(shí)間张漂。幾分鐘內(nèi)就能學(xué)會(huì)使用 Realm。

功能一覽:

離線優(yōu)先:即使在離線狀態(tài)下應(yīng)用也可正常工作
查詢快速:復(fù)雜查詢也只需要幾納秒谨娜,查詢結(jié)果與新數(shù)據(jù)實(shí)時(shí)同步
線程安全:多線程訪問(wèn)同一數(shù)據(jù)毫無(wú)問(wèn)題
跨平臺(tái)支持:多個(gè)平臺(tái)不同應(yīng)用使用同一數(shù)據(jù)庫(kù)
加密:無(wú)需額外代碼,就能保證你的數(shù)據(jù)安全
響應(yīng)式架構(gòu):讓Realm連接到UI磺陡,及時(shí)將數(shù)據(jù)更新反饋給用戶

使用方法

我比較懶趴梢,貼一下別的博主的博客好了。

GreenDao3.0簡(jiǎn)單使用

這里需要說(shuō)明的是币他,greenDAO在github上說(shuō)

// In your root build.gradle file:
buildscript {
    repositories {
        jcenter()
        mavenCentral() // add repository
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.3.1'
        classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
    }
}
 
// In your app projects build.gradle file:
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // apply plugin
 
dependencies {
    compile 'org.greenrobot:greendao:3.2.2' // add library
}

這里的root應(yīng)該是project級(jí)的坞靶,app project是module級(jí)的


我看很多文章里都沒搞對(duì)。

Realm For Android詳細(xì)教程

后面有時(shí)間的話自己再總結(jié)吧

速度對(duì)比

這里使用的版本是

greenDAO 3.2.2
Realm 3.1.1

速度在不同機(jī)型上不同的使用方法肯定會(huì)有偏差蝴悉,這里僅作參考彰阴,但還是可以看出Realm在速度上的優(yōu)勢(shì)。

||增|刪|改|查|
|--|
|GreenDAO(1條)|10ms|17ms|12ms|1ms|
|Realm(1條)|5ms|6ms|7ms|1ms|
|GreenDAO(10條)|47ms|55ms|100ms|2ms|
|Realm(10條)|6ms|11ms|8ms|1ms|
|GreenDAO(100條)|402ms|377ms|398ms|3ms|
|Realm(100條)|10ms|20ms|16ms|1ms|
|GreenDAO(1000條)|3959ms|3326ms|3297ms|3ms|
|Realm(1000條)|28ms|71ms|94ms|1ms|

END

框架的選擇應(yīng)該結(jié)合項(xiàng)目的需求拍冠,對(duì)比功能尿这,穩(wěn)定性,拓展性庆杜,易用性等多個(gè)方面射众。我也只是個(gè)小白,提不了什么有價(jià)值的建議晃财。

最后貼上自己的代碼叨橱,我只進(jìn)行了最簡(jiǎn)單的使用:
https://github.com/xiaoniu/Database
需要的可以參考一下,有問(wèn)題可以評(píng)論一下断盛,歡迎探討罗洗。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市钢猛,隨后出現(xiàn)的幾起案子伙菜,更是在濱河造成了極大的恐慌,老刑警劉巖厢洞,帶你破解...
    沈念sama閱讀 217,084評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件仇让,死亡現(xiàn)場(chǎng)離奇詭異典奉,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)丧叽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門卫玖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人踊淳,你說(shuō)我怎么就攤上這事假瞬。” “怎么了迂尝?”我有些...
    開封第一講書人閱讀 163,450評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵脱茉,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我垄开,道長(zhǎng)琴许,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評(píng)論 1 293
  • 正文 為了忘掉前任溉躲,我火速辦了婚禮榜田,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘锻梳。我一直安慰自己箭券,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,370評(píng)論 6 390
  • 文/花漫 我一把揭開白布疑枯。 她就那樣靜靜地躺著辩块,像睡著了一般。 火紅的嫁衣襯著肌膚如雪荆永。 梳的紋絲不亂的頭發(fā)上废亭,一...
    開封第一講書人閱讀 51,274評(píng)論 1 300
  • 那天,我揣著相機(jī)與錄音具钥,去河邊找鬼滔以。 笑死,一個(gè)胖子當(dāng)著我的面吹牛氓拼,可吹牛的內(nèi)容都是我干的你画。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼桃漾,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼坏匪!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起撬统,我...
    開封第一講書人閱讀 38,980評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤适滓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后恋追,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凭迹,經(jīng)...
    沈念sama閱讀 45,414評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡罚屋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,599評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嗅绸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片脾猛。...
    茶點(diǎn)故事閱讀 39,773評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖鱼鸠,靈堂內(nèi)的尸體忽然破棺而出猛拴,到底是詐尸還是另有隱情,我是刑警寧澤蚀狰,帶...
    沈念sama閱讀 35,470評(píng)論 5 344
  • 正文 年R本政府宣布愉昆,位于F島的核電站,受9級(jí)特大地震影響麻蹋,放射性物質(zhì)發(fā)生泄漏跛溉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,080評(píng)論 3 327
  • 文/蒙蒙 一扮授、第九天 我趴在偏房一處隱蔽的房頂上張望倒谷。 院中可真熱鬧,春花似錦糙箍、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至诺苹,卻和暖如春咕晋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背收奔。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工掌呜, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坪哄。 一個(gè)月前我還...
    沈念sama閱讀 47,865評(píng)論 2 370
  • 正文 我出身青樓质蕉,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親翩肌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子模暗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,689評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,097評(píng)論 25 707
  • Realm是由Y Combinator公司孵化出來(lái)的一款可以用于iOS(同樣適用于Swift&Objective-...
    小歪子go閱讀 2,231評(píng)論 6 9
  • 假如一件事,開頭是美好的念祭,過(guò)程是幸福的兑宇,可是結(jié)局卻沒有圓滿。那我們應(yīng)該開心快樂粱坤,把美好的過(guò)程放進(jìn)內(nèi)心隶糕,作為向前走的...
    歌舒靈音閱讀 209評(píng)論 0 1
  • 【1】 十一月末了枚驻,兩陣被夸大其辭的寒流不如預(yù)想中猛烈濒旦,卻讓這個(gè)天委實(shí)變成了冬天。雨下了一陣又一陣测秸,衣服也難干的很...
    十一先生_閱讀 455評(píng)論 1 0
  • 尊敬的各位老師疤估,親愛的同學(xué)們: 伴隨著時(shí)間的消逝,伴隨著師生的奮斗霎冯,我們迎來(lái)了永和學(xué)校的第一次期終表彰大會(huì)铃拇,看著同...
    西嶺布衣閱讀 272評(píng)論 3 1