Android 轻量级数据库 Hawk
·
前言介绍
-
Hawk 是一个很便捷的数据库 . 操作数据库仅仅需一行代码 , 能存不论什么数据类型
-
Hawk 是一个简单的
key-value数据库 -
Hawk用的是: AES 加密能选择使用SharedPreferences 或者 SQLite、Gson解析
-
Hawk 提供: 安全数据持久化、能存储不论什么类型
Android 轻量级数据库 ----- Hawk
依赖地址
dependencies {
implementation 'com.github.orhanobut:hawk:1.21'
}
Hawk 使用方法
Hawk 存储:
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
Hawk 取值:
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);
初始化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<T>)
.put(KEY_ANOTHER,"test")
.commit();
取数据
T result = Hawk.get(key);
//当为null的时候设置 默认值
T result = Hawk.get(key, T);
移除数据
Hawk.remove(key); // Returns the result as boolean
//同一时候移除多个
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
混淆:
#Gson
-keep class com.google.gson.** { *; }
-keepattributes Signature
总结
保持学习 是一种态度
共勉!
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)