android开源数据库,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); // save list

Hawk.put("key", List); // save list

Hawk.put("key", Map); // save map

Hawk.put("key", Set); // 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 value = Hawk.get(key);

List value = Hawk.get(key);

Map value = Hawk.get(key);

Set 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)

.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。

// ┃   ┗━━━┓

// ┃       ┣┓

// ┃       ┏┛

// ┗┓┓┏━┳┓┏┛

// ┃┫┫ ┃┫┫

// ┗┻┛ ┗┻┛

希望对大家实用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值