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 并且需要你提供密码

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

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

开源分享完整内容戳这里

(五) 移除数据

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

使用的是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

Android Hawk数据库 github开源项目,字节跳动社招面试记录相关推荐

  1. android开源数据库,Android Hawk数据库 github开源项目

    Android Hawk数据库 github开源项目 Hawk 是一个很便捷的数据库  . 操作数据库仅仅需一行代码 , 能存不论什么数据类型 . github 地址: https://github. ...

  2. android hawk 保存map对象,Android Hawk数据库 github开源项目

    您还能够通过使用链功能存储多个项目. 记得在最后使用commit(). // Returns the result as boolean Hawk.chain() .put(KEY_LIST, Lis ...

  3. Android Hawk数据库 github开源项目,深入理解JVM的核心知识点

    .setStorage(HawkBuilder.newSqliteStorage(this)) or .setStorage(HawkBuilder.newSharedPrefStorage(this ...

  4. 字节跳动社招面试记录,java异常处理关键字

    蚂蚁花呗第一次技术面(60min): Java容器有哪些?哪些是同步容器,哪些是并发容器? ArrayList和LinkedList的插入和访问的时间复杂度? java反射原理, 注解原理? 说说一致 ...

  5. 字节跳动社招面试记录,javaspring框架详细设计模板

    Java如何入门? 1.建立好开发环境 首先建立好开发环境非常重要,工欲善其事,必先利其器.做任何开发,首先就是要把这个环境准备好,之后就可以去做各种尝试,尝试过程中就能逐渐建立信心.初学者往往在环境 ...

  6. 字节跳动社招5面(已拿offer):算法+微服务+多线程+JVM+数据库

    前言 字节跳动在图文.视频.问答.图片等领域连续发力,产品矩阵包括今日头条.抖音短视频.西瓜视频.懂车帝.GoGoKid英语.皮皮虾.Faceu激萌.轻颜相机等多款产品,以及AI教育产品.企业SaaS ...

  7. 字节跳动社招全岗位研发面经(已拿offer)

    前言 几经周折,群里小伙伴终于成功进入了字节跳动大厂工作.这套面试经验是他自己和几个小伙伴共同总结的,分享给大家.通过本文,可以帮助大家快速回顾了面试中知识点,其次这套面试手册涵盖了诸多岗位的面试题和 ...

  8. 字节跳动-社招2年面试经历(HR面待续哈哈哈)

    先大概说下背景 - 本人后端开发,技术栈纯JAVA,之前刷过不少算法题,然后也是毕业就在大厂工作2年(之后定了可能再PO名字哈哈). 坐标北京.求职原因其实一部分是为了找各种机会看看自己目前的水平和当 ...

  9. 程序员进阶知识点!蚂蚁金服、拼多多、字节跳动社招面经,建议细读

    写在前面 很多小伙伴留言说让我写一些工作过程中的真实案例,写些啥呢?想来想去,写一篇我在以前公司从零开始到用户超千万的数据库架构升级演变的过程吧. 本文记录了我之前初到一家创业公司,从零开始到用户超千 ...

最新文章

  1. 产品设计技术公开-一种扼杀对手的方式
  2. mac下appium启动
  3. 笔记本显示器仅计算机,将笔记本电脑(仅一个HDMI接口)连接到双屏幕(谨慎使用)的解决方案...
  4. 12月21日云栖精选夜读:阿里云总裁胡晓明:AI泡沫过后,下一站是“产业AI”...
  5. wxWidgets:最小的 wxWidgets 示例
  6. 基于注解的Spring MVC(所需jar包,web.xml配置,Spring文件配置,@Controller,@RequestMapping,@RequestParam,model填参,EL取值)
  7. 交叉编译工具链的使用
  8. 软件的极简主义的三个大敌:配置文件,冗余的参数,和大量复杂的接口。
  9. python3 value counts函数_如何将value_counts()输出转换为数据帧?
  10. 帆软FineMobile 消息推送/定时调度
  11. SHA256算法原理介绍以及实现
  12. 【开发环境】运行Hitool出现“A Java Runtime Environment (JRE) or Java Development Kit (JDK)”错误处理
  13. LVS 同网段搭建keeplive+lvs
  14. java实现自动拨打电话语音提示
  15. 图像校色 白平衡调整
  16. CSS3让长单词与URL地址自动换行——word-wrap属性
  17. 设计要用计算机吗,作为设计师 你需要这样的笔记本电脑
  18. Material Design的基础知识
  19. 判断当前终端是移动端还是PC端
  20. 数字转字母python_将一串数字转换成字母python

热门文章

  1. 解决win10下localhost打不开的问题
  2. Magic UI四子围城,2022折叠屏灵魂觉醒
  3. SPO 二,SharePoint On-Premises, Online, On Azure.
  4. element-ui的v-loading不生效
  5. 网易互娱AI Lab视频动捕技术iCap被CVPR 2022接收!
  6. 关于HTAP与HSAP
  7. 算法题_位运算_9_出现一次的数字和出现k次的数字
  8. debian安装MySQL
  9. 综合治理GIS方案(综治)
  10. word题注“一-1”改为“1-1”