安卓Hawk数据库
安卓Hawk數(shù)據(jù)庫(kù)
Hawk數(shù)據(jù)存儲(chǔ)工具,使用超簡(jiǎn)單,可以替代SharePreference。
Hawk 是一個(gè)非常便捷的數(shù)據(jù)庫(kù) ?. 操作數(shù)據(jù)庫(kù)只需一行代碼 , 能存任何數(shù)據(jù)類型 .
github 地址:?https://github.com/orhanobut/hawk
Hawk 是一個(gè)簡(jiǎn)單的??key-value ?數(shù)據(jù)庫(kù)
它使用:?AES 加密,能選擇使用SharedPreferences ?或者 ?SQLite,?Gson解析? (文章下方的Simple中有替換fastJson的版本)
提供:安全數(shù)據(jù)持久化,能存儲(chǔ)任何類型
先看看例子 ?符合項(xiàng)目的需要之后往下看。存儲(chǔ)例子:
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);(一) 添加進(jìn)項(xiàng)目
android studio 在gradle中進(jìn)行配置
repositories { // ... maven { url "https://jitpack.io" } } dependencies { compile 'com.github.orhanobut:hawk:1.21' }(二) 初始化Hawk
初始化只需要一次就行了 ?放在你最開(kāi)始執(zhí)行的activity里面 或者 application
Hawk.init(this) .setEncryptionMethod(HawkBuilder.EncryptionMethod.MEDIUM) .setStorage(HawkBuilder.newSqliteStorage(this)) .setLogLevel(LogLevel.FULL) .build();能使用高安全級(jí)別 ?初始化可能需要 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))(三) 存數(shù)據(jù)
Hawk.put(key, T); // Returns the result as boolean您還可以通過(guò)使用鏈功能存儲(chǔ)多個(gè)項(xiàng)目。記得在最后使用commit()。
// Returns the result as boolean Hawk.chain() .put(KEY_LIST, List<T>) .put(KEY_ANOTHER,"test") .commit();(四) 取數(shù)據(jù)
T result = Hawk.get(key);or ?當(dāng)為null的時(shí)候設(shè)置 默認(rèn)值
T result = Hawk.get(key, T);(五) 移除數(shù)據(jù)
Hawk.remove(key); // Returns the result as booleanor同時(shí)移除多個(gè)
Hawk.remove(KEY_LIST, KEY_NAME); // Returns the result as boolean(六) 判斷是否包含某個(gè)key?
boolean contains = Hawk.contains(key);(七) 設(shè)置密碼
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();(八) 注意事項(xiàng)
Hawk log 輸出:
Hawk.init(context,PASSWORD, LogLevel.FULL); // as default it is NONEHawk 支持 ?buildRx ?最近非常火的RxJava ?
如果使用也請(qǐng)導(dǎo)入 ?如果不需要Rx的功能 移除掉相應(yīng)源碼不會(huì)有影響
混淆:
#Gson -keep class com.google.gson.** { *; } -keepattributes Signature注意:Hawk ?使用Json 進(jìn)行數(shù)據(jù)的存儲(chǔ)
?
原文地址https://blog.csdn.net/fengyeNom1/article/details/81204986
總結(jié)
- 上一篇: Spring中如何使用注解来配置Bean
- 下一篇: spring jdbctemplate调