博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安卓Hawk数据库
阅读量:6438 次
发布时间:2019-06-23

本文共 2702 字,大约阅读时间需要 9 分钟。

安卓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 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 进行数据的存储

 

原文地址https://blog.csdn.net/fengyeNom1/article/details/81204986

你可能感兴趣的文章
mybatis在xml文件中处理大于号小于号的方法
查看>>
Codeforces Codeforces Round #319 (Div. 2) A. Multiplication Table 水题
查看>>
各大浏览器CSS Hack收集
查看>>
再谈 $* 和 $@ 在 Bash 中的表现
查看>>
Apache Commons工具集简介
查看>>
【翻译】Nginx的反向代理
查看>>
htm、html、shtml网页区别
查看>>
SpringCloud学习笔记:服务注册与发现Eureka(2)
查看>>
学习新 api 的思考过程 4.18
查看>>
想要设计自己的微服务?看这篇文章就对了
查看>>
[译] 原生 JavaScript 值得学习吗?答案是肯定的
查看>>
29岁了还一事无成是人生的常态?
查看>>
gRPC-rs:从 C 到 Rust
查看>>
Mysql-高性能索引
查看>>
chrome浏览器最小字号解决方案
查看>>
富文本编译器UEditor+SSM的使用
查看>>
Java EE之旅02 CSS基础
查看>>
kubernetes学习笔记 (二):k8s初体验
查看>>
swift3 0 流控制
查看>>
Data-Mediator专题之属性回调
查看>>