Android目前流行三方數據庫ORM分析及對比

Android 平臺上的數據庫框架很是多,可是有一個共同特色就是基於對象關係映射(ORM)模型的。實現的目標也都是不須要寫SQL語句,經過對對象的操做保存和操做數據。要是從語法的簡潔性來講都有本身的特色,總的來講不相上下,所以只能從數據的性能上來抉擇了。html

首先咱們先看看目前最經常使用的數據庫框架介紹(排名不分前後)

  • GreenDao
    簡單介紹:GreenDao是爲Android設計的對象關係映射(ORM)工具。它提供了對象到關係型數據庫SQLite的相應接口。爲了在Android工程中使用greenDao,須要建立另外一個「生成器」工程,它的任務是在你的工程域裏生成具體的代碼。所以相比與其它ORM框架具備出衆性能。
    使用方法:GreenDao:3.2.0用方法java

  • LitePal
    簡單介紹:LitePal是對象關係映射(ORM)模型。它使開發者使用SQLite數據庫變得很是容易。 你能夠不用寫一句SQL語句就能夠完成大部分數據庫操做,包括建立表,更新表,約束操做,聚合功能等等。
    使用方法:(懶人必備)Android開源數據庫LitePalandroid

  • Afinal
    簡單介紹:是一個android的sqlite orm 和 ioc 框架。同時封裝了android中的http框架,使其更加簡單易用。FinalDB模塊,android中的orm框架,一行代碼就能夠進行增刪改查。支持一對多,多對一等查詢。
    使用方法:FinalDb操做sqlite的數據庫(增刪改查)git

  • ORMLite
    簡單介紹:(Object Relational Mapping Lite)提供了一些輕量級持久化Java對象到SQL數據庫,同時也避免了複雜性和更多的標準的ORM包的開銷功能。它支持的SQL數據庫使用JDBC的數量,還支持原生的Android操做系統數據庫API調用sqlite。
    使用方法:Android 數據庫框架ormlite使用精要github

  • SugarORM
    簡單介紹:是對象關係映射模式。不用寫複雜的sql語句,而用簡單的API便可完成建立和操縱數據;能夠在原有的Bean上僅僅添加小的修改而複用Bean;簡化而明瞭的數據庫設計和建立過程,同時提供表的一對多的支持。
    使用方法:Android SugerORM框架的使用sql

  • 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使用api

  • DBFlow
    簡單介紹:綜合了 ActiveAndroid, Schematic, Ollie,Sprinkles 等庫的優勢。同時不是基於反射,因此性能也是很是高,效率緊跟greenDAO其後。基於註解,使用apt技術,在編譯過程當中生成操做類,使用方式和ActiveAndroid高度類似,使用簡單。無縫支持多個數據庫,使用annotation processing提升速度,ModelContainer類庫能夠直接解析像JSON這樣的數據,增長靈活性的豐富接口。
    使用方法:Android技術前沿:DBFlow的實踐微信

數據庫性能比較

具體對比仔細查看下列圖表
app

Android 數據庫框架性能測試
Android 數據庫框架性能測試

LiteOrm 和 系統原生SQLiteDatabase API 測試數據
LiteOrm 和 系統原生SQLiteDatabase API 測試數據

LiteOrm 和 greenDAO 的性能表現

greenDAO vs LiteOrm 循環測試
greenDAO vs LiteOrm 循環測試

greenDAO vs LiteOrm 批量測試
greenDAO vs LiteOrm 批量測試

總結

從圖中能夠看出 Realm 的性能應該是最好的,同時它執行跨平臺,且並非採用 SQLite 的持久化引擎。可是也有很多的缺點(具體查看文章爲何我再也不使用Realm)。

greenDAO 是基於AndroidSQLite的最快、性能最強悍的數據庫框架,由於他不涉及反射,靠的是代碼輔助生成。

固然,不論哪款ORM或數據庫框架,都各有利弊,至於該選用哪一款,可自行斟酌,開發者最好本身親身體驗下,畢竟絕知此事需躬行,只聽或者看別人的言論和結果,無異於直接吃別人嚼過的東西,沒有味道不重要,變了味會影響我的判斷。

本文原創發佈於公衆號【AndroidParks】,微信搜索androidparks或者掃一掃關注

相關文章
相關標籤/搜索