Android Hawk資料庫 github開源項目

來源:互聯網
上載者:User

標籤:

Android Hawk資料庫 github開源項目


Hawk 是一個非常便捷的資料庫  . 操作資料庫只需一行代碼 , 能存任何資料類型 .

github 地址: https://github.com/orhanobut/hawk


Hawk 是一個簡單的  key-value  資料庫

它使用: 

AES 加密

能選擇使用SharedPreferences  或者  SQLite

       Gson解析     (文章下方的Simple中有替換fastJson的版本)

提供:

安全資料持久化

能儲存任何類型


先看看例子  符合項目的需要之後往下看

儲存例子:

Hawk.put("key", "something"); // Save stringHawk.put("key", true); // save booleanHawk.put("key", new Foo()); // save an objectHawk.put("key", List<String>); // save listHawk.put("key", List<Foo>); // save listHawk.put("key", Map<Foo,Foo>); // save mapHawk.put("key", Set<Foo>); // save setHawk.put("key", 1234); // save numbers

擷取的例子:

String value = Hawk.get(key);int value = Hawk.get(key);Foo value = Hawk.get(key);boolean value = Hawk.get(key);List<String> value = Hawk.get(key);List<Foo> value = Hawk.get(key);Map<String,Foo> value = Hawk.get(key);Set<Foo> value = Hawk.get(key);


(一) 添加進項目

android studio 在gradle中進行配置

repositories {  // ...  maven { url "https://jitpack.io" }}dependencies {  compile ‘com.github.orhanobut:hawk:1.21‘}

eclipse 使用者請下載後匯入項目

可以參考下方的Simple


(二) 初始化Hawk

初始化只需要一次就行了  放在你最開始執行的activity裡面 或者 application

Hawk.init(this)    .setEncryptionMethod(HawkBuilder.EncryptionMethod.MEDIUM)    .setStorage(HawkBuilder.newSqliteStorage(this))    .setLogLevel(LogLevel.FULL)    .build();

能使用高安全層級  初始化可能需要 36-400ms 並且需要你提供密碼  

Hawk.init(this)    .setEncryptionMethod(HawkBuilder.EncryptionMethod.HIGHEST)    .setStorage(HawkBuilder.newSqliteStorage(this))    .setLogLevel(LogLevel.FULL)    .build();


初始化可以選擇 SQLite 或者 SharePreference

.setStorage(HawkBuilder.newSqliteStorage(this))
or
.setStorage(HawkBuilder.newSharedPrefStorage(this))

(三) 存資料

Hawk.put(key, T); // Returns the result as boolean


您還可以通過使用鏈功能儲存多重專案。記得在最後使用commit()。
// Returns the result as booleanHawk.chain()     .put(KEY_LIST, List<T>)     .put(KEY_ANOTHER,"test")     .commit();


(四) 取資料

T result = Hawk.get(key);
or  

當為null的時候設定 預設值

T result = Hawk.get(key, T);

(五) 移除資料

Hawk.remove(key); // Returns the result as boolean
or

同時移除多個

Hawk.remove(KEY_LIST, KEY_NAME); // Returns the result as boolean

(六) 判斷是否包含某個key 

boolean contains = Hawk.contains(key);

(七) 設定密碼

Hawk.init(this)    .setEncryptionMethod(HawkBuilder.EncryptionMethod.HIGHEST)    .setPassword("password")    .setStorage(HawkBuilder.newSqliteStorage(this))    .setLogLevel(LogLevel.FULL)    .setCallback(new HawkBuilder.Callback() {      @Override      public void onSuccess() {      }      @Override      public void onFail(Exception e) {      }    })    .build();



(八) 注意事項

Hawk log 輸出:

Hawk.init(context,PASSWORD, LogLevel.FULL); // as default it is NONE

Hawk 支援  buildRx  最近非常火的RxJava  

如果使用也請匯入  如果不需要Rx的功能 移除掉相應源碼不會有影響


混淆:

#Gson-keep class com.google.gson.** { *; }-keepattributes Signature


(最後) 遇到的問題

Hawk  使用Json 進行資料的儲存

使用的是google提供的Gson庫  ,  但我的項目裡已經有了FastJson  

為了控制包的大小所以將Gson的解析替換為 FastJson   使用的eclipse編寫的供大家參考


github 地址: https://github.com/orhanobut/hawk

eclipse Demo :待補


//  ┏┓   ┏┓//┏┛┻━━━┛┻┓//┃       ┃//┃   ━   ┃//┃ ┳┛ ┗┳ ┃//┃       ┃//┃   ┻   ┃//┃       ┃//┗━┓   ┏━┛//   ┃   ┃   神獸保佑//   ┃   ┃   代碼無BUG!//   ┃   ┗━━━┓//   ┃       ┣┓//   ┃       ┏┛//   ┗┓┓┏━┳┓┏┛//     ┃┫┫ ┃┫┫//     ┗┻┛ ┗┻┛

希望對大家有用 

Android Hawk資料庫 github開源項目

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.