Android Hawk数据库 github开源项目
Android Hawk数据库 github开源项目
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'
}
eclipse 用户请下载后导入项目
能够參考下方的Simple
(二) 初始化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);
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);
(七) 设置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
假设使用也请导入 假设不须要Rx的功能 移除掉对应源代码不会有影响
混淆:
#Gson
-keep class com.google.gson.** { *; }
-keepattributes Signature
(最后) 遇到的问题
Hawk 使用Json 进行数据的存储
使用的是google提供的Gson库 , 但我的项目里已经有了FastJson
为了控制包的大小所以将Gson的解析替换为 FastJson 使用的eclipse编写的供大家參考
github 地址: https://github.com/orhanobut/hawk
eclipse Demo
下载地址:http://download.csdn.net/detail/aaawqqq/9367130
Demo中 使用的eclipse 改动项目 ,
Demo中有4个部分:
hawk_main、
hawk_gson-lib 、 //gson包作为解析方式 去掉rx功能
hawk_fastJson-lib 、 //fastJson 包作为解析方式 去掉rx功能
hawk_lib //gson包作为解析方式 有rx功能 但须要自行加入rx包
----------
当中 hawk_main 是主Demo
其他3个都是lib库 选择当中一个即可
lib对解析方式做了改动 分为gson和fastjson版本号
hawk_lib 是源代码 须要加入rx 才干使用rx功能
转载请注明http://blog.csdn.net/aaawqqq/article/details/50352309
// ┏┓ ┏┓
//┏┛┻━━━┛┻┓
//┃ ┃
//┃ ━ ┃
//┃ ┳┛ ┗┳ ┃
//┃ ┃
//┃ ┻ ┃
//┃ ┃
//┗━┓ ┏━┛
// ┃ ┃ 神兽保佑
// ┃ ┃ 代码无BUG。
// ┃ ┗━━━┓
// ┃ ┣┓
// ┃ ┏┛
// ┗┓┓┏━┳┓┏┛
// ┃┫┫ ┃┫┫
// ┗┻┛ ┗┻┛
希望对大家实用
Android Hawk数据库 github开源项目的更多相关文章
- Android笔记——导入Github开源项目CircleRefreshLayout
百度n久都找不到android studio导入第三方类库的正确方法,纠结睡不着 ,最后终于蒙到了方法,原来想太多了 ---------------------------------------- ...
- 2015-2016最火的Android开源项目--github开源项目集锦(不看你就out了)
标签: Android开发开源项目最火Android项目github 2015-2016最火的Android开源项目 本文整理与集结了近期github上使用最广泛最火热与最流行的开源项目,想要充电与提 ...
- [Android开源项目] GitHub开源项目总结 (转)
[Android开源项目] GitHub开源项目总结 GitHub开源项目android-styled-dialogs http://neast.cn/forum.php?mod=viewthread ...
- 开源项目福利-github开源项目免费使用Azure PipeLine
微软收购Github后,很多人猜想微软可能会砍掉VSTS,然而事实VSTS并没有砍掉,关于Azure Devops的详细信息可以查看 这篇博客,如果想查看原文也可以从链接里提供的原始地址里查看. 今天 ...
- 基于RBAC模型的权限系统设计(Github开源项目)
RBAC(基于角色的访问控制):英文名称Rose base Access Controller.本博客介绍这种模型的权限系统设计.取消了用户和权限的直接关联,改为通过用户关联角色.角色关联权限的方法来 ...
- iOS:开发常用GitHub开源项目(持续更新)
IOS开发常用GitHub开源项目(持续更新) 数据类 开源库 作者 简介 AFNetworking Mattt 网络请求库 ASIHTTPRequest pokeb 网络请求库 Alamofire ...
- 如何参与一个 GitHub 开源项目?
最近一年开源项目特别的热,很多技术大会或论坛都以开源项目作为主题进行探讨,可见这是一种趋势.而Github作为开源项目的著名托管地,可谓无 人不知,越来越多的个人和公司纷纷加入到Github的大家族里 ...
- 如何参与一个GitHub开源项目
Github作为开源项目的著名托管地,可谓无人不知,越来越多的个人和公司纷纷加入到Github的大家族里来,为开源尽一份绵薄之力.对于个人来讲,你把自己的项目托管到Github上并不表示你参与了Git ...
- Android二维码开源项目zxing用例简化和生成二维码、条形码
上一篇讲到:Android二维码开源项目zxing编译,编译出来后有一个自带的測试程序:CaptureActivity比較复杂,我仅仅要是把一些不用的东西去掉,用看起来更方便,二维码和条形码的流行性自 ...
随机推荐
- JavsScript 之 求时间差
var dateStart = new Date(); //开始时间var dateEnd = new Date(); //结束时间 var timePeriod = dateEnd.getTime( ...
- PHP高级教程-异常处理(Exception)
PHP 异常处理 异常用于在指定的错误发生时改变脚本的正常流程. 异常是什么 PHP 5 提供了一种新的面向对象的错误处理方法. 异常处理用于在指定的错误(异常)情况发生时改变脚本的正常流程.这种情况 ...
- nyoj阶乘之和
/*阶乘之和 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描写叙述 给你一个非负数整数n,推断n是不是一些数(这些数不同意反复使用,且为正数)的阶乘之和, 如9=1! ...
- 修改终端下vim的PopupMenu选种项的背景颜色
我平常比较喜欢使用终端下的 VIM,最方便的就是随时可以使用ctrl+z切换到终端下执行命令, 然后再通过fg切换回 VIM.如果再有个透明效果,那就更赞了.不过最近换了一个配色ron 后, 有个比较 ...
- 山东省赛-博弈-Game
id=1582" target="_blank" style="font-size:18px">点击打开题目链接 非常明显的一道博弈题目,可 ...
- ORA-27090 故障一例
近期的alert日志中碰到了ORA-27090的错误信息.其错误提示为Unable to reserve kernel resources for asynchronous disk I/O.依据这个 ...
- Oracle使用——PLSQL的中文乱码显示全是问号
问题 这两天刚将PLSQL与Oracle配置好,但是在PLSQL中插入数据时.出现一个问题,PLSQL中的表里无法显示中文,中文无法保存.无法输出.中文在表中显示问号.如图: 原因 经过一番查证,发现 ...
- try/except/else语句
# -*- coding: utf-8 -*- #python 27 #xiaodeng #Python学习手册 868 #try/except/else语句 #try语句分句形式 except: # ...
- 10、java初始化顺序
在new B一个实例时首先要进行类的装载.(类只有在使用New调用创建的时候才会被java类装载器装入) 2,在装载类时,先装载父类A,再装载子类B3,装载父类A后,完成静态动作(包括静态代码和变 ...
- maven profiles、filters、resources学习笔记 及 常用 plugin demo
这里只记了学习以下博客后,自己做的一个总结. 来源:http://blog.csdn.net/fengchao2016/article/details/72726101 profiles定义了一些不同 ...