Android Hawk數據庫 github開源項目
Hawk 是一個很便捷的數據庫 ?. 操作數據庫僅僅需一行代碼 , 能存不論什么數據類型 .
github數據庫,github 地址:?https://github.com/orhanobut/hawk
Hawk 是一個簡單的??key-value ?數據庫
它使用:
數據庫可視化開發工具?AES 加密
能選擇使用SharedPreferences ?或者 ?SQLite
Gson解析 ? ? (文章下方的Simple中有替換fastJson的版本號)
github發布開源項目?提供:
安全數據持久化
能存儲不論什么類型
javagithub開源項目。先看看樣例 ?符合項目的須要之后往下看
存儲樣例:
Hawk.put("key", "something"); // Save string
Android 數據庫,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 而且須要你提供password
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);
(七) 設置password
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功能
轉載請注明http://blog.csdn.net/aaawqqq/article/details/50352309
// ┏┓ ┏┓
//┏┛┻━━━┛┻┓
//┃ ┃
//┃ ━ ┃
//┃ ┳┛ ┗┳ ┃
//┃ ┃
//┃ ┻ ┃
//┃ ┃
//┗━┓ ┏━┛
// ┃ ┃ 神獸保佑
// ┃ ┃ 代碼無BUG。
// ┃ ┗━━━┓
// ┃ ┣┓
// ┃ ┏┛
// ┗┓┓┏━┳┓┏┛
// ┃┫┫ ┃┫┫
// ┗┻┛ ┗┻┛
希望對大家實用
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态