Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android Hawk數據庫 github開源項目

Android Hawk數據庫 github開源項目

編輯:關於android開發

Android Hawk數據庫 github開源項目


Android Hawk數據庫 github開源項目

 

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

 

Hawk 是一個簡單的 key-value 數據庫

它使用:

AES 加密

能選擇使用SharedPreferences 或者 SQLite

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

提供:

安全數據持久化

能存儲任何類型

 

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

存儲例子:

 

Hawk.put("key", "something"); // Save string
Hawk.put("key", true); // save boolean
Hawk.put("key", new Foo()); // save an object
Hawk.put("key", List); // save list
Hawk.put("key", List); // save list
Hawk.put("key", Map); // save map
Hawk.put("key", Set); // save set
Hawk.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 value = Hawk.get(key);
List value = Hawk.get(key);
Map value = Hawk.get(key);
Set 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 boolean
Hawk.chain()
     .put(KEY_LIST, List)
     .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

下載地址:http://download.csdn.net/detail/aaawqqq/9367130

 

Demo中 使用的eclipse 修改項目 ,
Demo中有4個部分:
hawk_main、
hawk_gson-lib 、 //gson包作為解析方式 去掉rx功能
hawk_fastJson-lib 、 //fastJson 包作為解析方式 去掉rx功能
hawk_lib //gson包作為解析方式 有rx功能 但需要自行添加rx包
----------
其中 hawk_main 是主Demo
其它3個都是lib庫 選擇其中一個就行
lib對解析方式做了修改 分為gson和fastjson版本
hawk_lib 是源碼 需要加入rx 才能使用rx功能

 

 

 

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

希望對大家有用

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved