安卓Hawk数据库
安卓Hawk數據庫
Hawk數據存儲工具,使用超簡單,可以替代SharePreference。
Hawk 是一個非常便捷的數據庫 ?. 操作數據庫只需一行代碼 , 能存任何數據類型 .
github 地址:?https://github.com/orhanobut/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<String>); // save list Hawk.put("key", List<Foo>); // save list Hawk.put("key", Map<Foo,Foo>); // save map Hawk.put("key", Set<Foo>); // 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<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' }(二) 初始化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<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 booleanor同時移除多個
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() { public void onSuccess() { } public void onFail(Exception e) { } }) .build();(八) 注意事項
Hawk log 輸出:
Hawk.init(context,PASSWORD, LogLevel.FULL); // as default it is NONEHawk 支持 ?buildRx ?最近非常火的RxJava ?
如果使用也請導入 ?如果不需要Rx的功能 移除掉相應源碼不會有影響
混淆:
#Gson -keep class com.google.gson.** { *; } -keepattributes Signature注意:Hawk ?使用Json 進行數據的存儲
?
原文地址https://blog.csdn.net/fengyeNom1/article/details/81204986
總結
- 上一篇: Spring中如何使用注解来配置Bean
- 下一篇: 硬盘的原理以及SQL Server如何利