Android之Hawk数据库
Hawk数据存储工具,使用超简单,可以替代SharePreference,作为本地存储。Hawk是一个非常便捷的数据库。 操作数据库只需一行代码 , 能存任何数据类型 。Github地址
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 { implementation '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
// Sqlite
.setStorage(HawkBuilder.newSqliteStorage(this)) // SharedPref
.setStorage(HawkBuilder.newSharedPrefStorage(this))
(三) 存数据
// Returns the result as boolean
Hawk.put(key, T);
您还可以通过使用链功能存储多个项目。记得在最后使用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);
(五) 移除数据
// Returns the result as boolean
Hawk.remove(key); // 同时移除多个数据
// Returns the result as boolean
Hawk.remove(KEY_LIST, KEY_NAME);
(六) 判断是否包含某个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 输出:
// as default it is NONE
Hawk.init(context,PASSWORD, LogLevel.FULL);
Hawk 支持 buildRx最近非常火的RxJava,如果使用也请导入 如果不需要Rx的功能 移除掉相应源码不会有影响。
混淆:
#Gson
-keep class com.google.gson.** { *; }
-keepattributes Signature
Android之Hawk数据库相关推荐
- android开源数据库,Android Hawk数据库 github开源项目
Android Hawk数据库 github开源项目 Hawk 是一个很便捷的数据库 . 操作数据库仅仅需一行代码 , 能存不论什么数据类型 . github 地址: https://github. ...
- Android Hawk数据库的源码解析,Github开源项目,基于SharedPreferences的的存储框架
今天看了朋友一个项目用到了Hawk,然后写了这边文章 一.了解一下概念 Android Hawk数据库github开源项目 Hawk是一个非常便捷的数据库.操作数据库只需一行代码,能存任何数据类型. ...
- android中的数据库操作(SQLite)
android中的数据库操作 android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库 an ...
- Android 借助Stetho在Chrome上调试Android网络、数据库、Sharedpreferences
Android 借助Stetho在Chrome上调试Android网络.数据库.Sharedpreferences 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/a ...
- 【转】Android开发之数据库SQL
android中的应用开发很难避免不去使用数据库,这次就和大家聊聊android中的数据库操作. 一.android内的数据库的基础知识介绍 1.用了什么数据库 android中采用的数据库是SQLi ...
- Android高性能ORM数据库DBFlow入门
DBFlow,综合了 ActiveAndroid, Schematic, Ollie,Sprinkles 等库的优点.同时不是基于反射,所以性能也是非常高,效率紧跟greenDAO其后.基于注解,使用 ...
- android不同机型编译不同so,如何使用adb命令查看android中的数据库
1,进入到控制台中,输入adb shell,进入到命令模式的环境中 2,输入:cd /data/data/ 3, 选择你所在的数据库文件,比如我的com.android.homework, 输入命令: ...
- 在脚本中, 使用sqlite3检查android程序生成的数据库是否OK
# # 检验sqlite3是否可用 # sqlite3ver=`sqlite3 --version > /dev/null 2>&1` sqlite3_ok="yes&q ...
- Android短信数据库简析
如果想跳过数据库介绍,直接看数据库操作代码的话,请点击这里: 读取Android短信 -------------– Android短信数据库: 读取Android系统所有短信 读取Android短信会 ...
最新文章
- python绘制分组条形图_python中分组值的条形图
- 网络编程模型 / Reactor
- C# MongoDB简单增删改查使用
- php server自定义函数,php:SQL Server用户自定义的函数种类详解
- 第三章:学生管理模块
- Android读取电话薄中的电话号码
- c数据库读写分离和负载均衡策略
- StylesheetLanguage--如何使用Less--前端样式语言
- Android 设置背景透明度
- 当安装完Windows系统后出现“系统保留”分区该怎么办?
- The Plant Journal | DAP-seq助力揭示乌龙茶树杂种优势形成的分子机制
- 判断听云是否正常嵌入及注意事项
- 学习光线追踪(16)---折射计算[1]
- 洛谷 P3387(缩点后+处理 )
- 在opencv2.4.x版本中处理图像EXIF orientation不统一的问题
- winform ui 设计参考
- 项目外包网Elance承包商使用手册中文版
- python自动更新pom文件
- 从RTE2022大会 看声网实时互动生态的未来
- 问大家个问题,关于接单子的问题