官方的SQLite數(shù)據(jù)庫,可以滿足大部分需求,但是也存在一些問題:
1、創(chuàng)表,增刪改查需要些大量代碼,開發(fā)效率極低。
2、需大量封裝,測試繁瑣。
3、效率極低(當你使用了GreenDao||Realm你會發(fā)現(xiàn)它完全不能接受)。
4、加密等操作需手動處理。
當前Android開發(fā)中常用的數(shù)據(jù)庫框架有GreenDao、Ormlite、Realm等
Ormlite
基于系統(tǒng)的SQLite的封裝,特點就是不用寫表結(jié)構(gòu)以及SQL語句,只需配置實體注解,以及調(diào)用它的dao進行數(shù)據(jù)庫操作,其封裝了一些sql語法,簡化了sql語句的編寫。但仍需大量封裝代碼,性能上由于是通過動態(tài)解析注解來映射對應(yīng)的字段,操作表的速度比其他orm也差距較大。
realm
是一個嵌入式數(shù)據(jù)庫,他并不是基于SQLite所構(gòu)建的,它擁有自己的數(shù)據(jù)庫存儲引擎,可以高效且快速地完成數(shù)據(jù)庫的構(gòu)建操作。最大特點就是操作表的速度快
但暴露的問題也比較多:
1、庫比較大,會增加3M
2、代碼侵入性強,數(shù)據(jù)庫對象要繼承其指定的類
3、不夠穩(wěn)定,坑比較多
greendao
基于SQLite的輕量快速的ORM解決方案,3.x版本后通過對實體對象添加注解,來進行關(guān)系映射,因為實在編譯時就解析了注解,因此速度上比ormlite快,
優(yōu)勢:
1、一個精簡的庫,大概100KB
2、性能最大化
3、內(nèi)存開銷最小化
4、易于使用的 APIs
5、支持嵌入其他SQLite數(shù)據(jù)庫,比如SQLCipher,即可實現(xiàn)數(shù)據(jù)庫加密
6、社區(qū)活躍
相關(guān)資料
Android數(shù)據(jù)庫框架GreenDao&Realm實戰(zhàn)分析
Android探坑集錦<一>數(shù)據(jù)庫之greendao
Android Realm詳解
怎樣看待 Realm 這個移動數(shù)據(jù)庫?
GreenDao3.0簡單使用
GreenDAO數(shù)據(jù)庫版本升級