Android 平台上的數據庫框架非常多,但是有一個共同特點就是基於對象關系映射(ORM)模型的。實現的目標也都是不需要寫SQL語句,通過對對象的操作保存和操作數據。要是從語法的簡潔性來說都有自己的特點,總的來說不相上下,因此只能從數據的性能上來抉擇了。
首先我們先看看目前最常用的數據庫框架介紹(排名不分先后)
-
GreenDao
簡單介紹:GreenDao是為Android設計的對象關系映射(ORM)工具。它提供了對象到關系型數據庫SQLite的相應接口。為了在Android工程中使用greenDao,需要創建另一個“生成器”工程,它的任務是在你的工程域里生成具體的代碼。因此相比與其它ORM框架具有出眾性能。
使用方法:GreenDao:3.2.0用方法 -
LitePal
簡單介紹:LitePal是對象關系映射(ORM)模型。它使開發者使用SQLite數據庫變得非常容易。 你可以不用寫一句SQL語句就可以完成大部分數據庫操作,包括創建表,更新表,約束操作,聚合功能等等。
使用方法:(懶人必備)Android開源數據庫LitePal -
Afinal
簡單介紹:是一個android的sqlite orm 和 ioc 框架。同時封裝了android中的http框架,使其更加簡單易用。FinalDB模塊,android中的orm框架,一行代碼就可以進行增刪改查。支持一對多,多對一等查詢。
使用方法:FinalDb操作sqlite的數據庫(增刪改查) -
ORMLite
簡單介紹:(Object Relational Mapping Lite)提供了一些輕量級持久化Java對象到SQL數據庫,同時也避免了復雜性和更多的標准的ORM包的開銷功能。它支持的SQL數據庫使用JDBC的數量,還支持原生的Android操作系統數據庫API調用sqlite。
使用方法:Android 數據庫框架ormlite使用精要 -
SugarORM
簡單介紹:是對象關系映射模式。不用寫復雜的sql語句,而用簡單的API即可完成創建和操縱數據;可以在原有的Bean上僅僅添加小的修改而復用Bean;簡化而明了的數據庫設計和創建過程,同時提供表的一對多的支持。
使用方法:Android SugerORM框架的使用 -
Realm
簡單介紹:是用來替代sqlite的一種解決方案,它有一套自己的數據庫存儲引擎,比sqlite更輕量級,擁有更快的速度,並且具有很多現代數據庫的特性,比如支持JSON,流式api,數據變更通知,自動數據同步,簡單身份驗證,訪問控制,事件處理,最重要的是跨平台,目前已有Java,Objective C,Swift,React-Native,Xamarin這五種實現。
使用方法:Realm for Android詳細教程 -
LiteOrm
簡單介紹:是android上的一款數據庫(ORM)框架庫。速度快、體積小、性能高。開發者基本一行代碼實現數據庫的增刪改查操作,以及實體關系的持久化和自動映射。設計原則:輕量、專注、性能優先、線程無關,專注數據及其關系存儲和操作;無需工具輔助,不需要無參構造,不需要繁多注解,約定優於配置;使用極致簡約,例如:db.save(u); db.query(U.class); db.deleteAll(U.class);。
使用方法:Android 數據庫框架LiteOrm使用 -
DBFlow
簡單介紹:綜合了 ActiveAndroid, Schematic, Ollie,Sprinkles 等庫的優點。同時不是基於反射,所以性能也是非常高,效率緊跟greenDAO其后。基於注解,使用apt技術,在編譯過程中生成操作類,使用方式和ActiveAndroid高度相似,使用簡單。無縫支持多個數據庫,使用annotation processing提高速度,ModelContainer類庫可以直接解析像JSON這樣的數據,增加靈活性的豐富接口。
使用方法:Android技術前沿:DBFlow的實踐
數據庫性能比較
具體對比仔細查看下列圖表


LiteOrm 和 greenDAO 的性能表現


總結
從圖中可以看出 Realm 的性能應該是最好的,同時它執行跨平台,且並不是采用 SQLite 的持久化引擎。但是也有不少的缺點(具體查看文章為什么我不再使用Realm)。
greenDAO 是基於AndroidSQLite的最快、性能最強悍的數據庫框架,因為他不涉及反射,靠的是代碼輔助生成。
當然,不論哪款ORM或數據庫框架,都各有利弊,至於該選用哪一款,可自行斟酌,開發者最好自己親身體驗下,畢竟絕知此事需躬行,只聽或者看別人的言論和結果,無異於直接吃別人嚼過的東西,沒有味道不重要,變了味會影響個人判斷。