1. 程式人生 > >Android資料庫框架GreenDao&Realm實戰分析

Android資料庫框架GreenDao&Realm實戰分析

Android開發的童鞋應該都知道,使用官方的SQLite資料庫,可以滿足我們大部分增刪改查的需求,然而隨著Android技術的逐步成長,你會慢慢發現SQLite越來越不能滿足我們的需求。總結為以下主要幾點:

  • 1、創表,增刪改查需要些大量程式碼,開發效率極低。
  • 2、需大量封裝,測試繁瑣。
  • 3、效率極低(當你使用了GreenDao||Realm你會發現它完全不能接受)。
  • 4、加密等操作需手動處理。

正因為SQLite的繁瑣使用,Andorid也會隨著JAVA 的腳步出現大量的ORM框架,類似於JAVA Web的Hibernate。

目前流行的Andorid資料庫框架

解析主角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.0
Realm: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條資料的測試截圖
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述