Hawk 是一个非常便捷的数据库  . 操作数据库只需一行代码 , 能存任何数据类型 .

github 地址: https://github.com/orhanobut/hawk

一、概念

SharedPreferences的使用大家应该非常熟悉啦。这是一种轻量级的存储简单配置信息的存储机制,以key-value的形式保存数据。

这里介绍一款基于SharedPreferences的的存储框架,是由Android开发大神Orhan Obut开源维护的,

它使用:

AES 加密

能选择使用SharedPreferences  或者  SQLite

Gson解析     (文章下方的Simple中有替换fastJson的版本)

提供:

安全数据持久化

能存储任何类型

二、用法

添加依赖


compile "com.orhanobut:hawk:2.0.1"

初始化

Hawk.init(context).build();

存储数据

 //基本数据类型Hawk.put("position","zz");//集合List<String> list = new ArrayList<>();list.add("zhangqie1");list.add("zhangqie2");Hawk.put("listzq",list);//类User user= new User();user.setId(1);user.setName("zhangqie1");Hawk.put("user",user);//集合+实体类User user1= new User();user1.setId(2);user1.setName("zhangqie2");List<User> listUser = new ArrayList<>();listUser.add(user);listUser.add(user1);Hawk.put("listUser",listUser);

读取数据(去上面最后一个数据)

List<User> listU1 = Hawk.get("listUser");

数据是否已经保存:

Hawk.contains(key);

删除数据:

Hawk.delete(key);

删除全部数据:

Hawk.deleteAll();

接下来从源码的角度来看看内部干了什么吧,看图

这张图也很清晰的帮我们做了简单分析。左边的PUT方法中,是把T value 存储到Disk当中。大致流程是,先将数据进行toString的转换,接下来是加密,然后进行序列化,最后是存储,用的就是SharePreference的存储。获取数据时就正好逆过来啦。

android -------- Hawk数据库相关推荐

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

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

  2. Android Hawk数据库的源码解析,Github开源项目,基于SharedPreferences的的存储框架

    今天看了朋友一个项目用到了Hawk,然后写了这边文章 一.了解一下概念 Android Hawk数据库github开源项目 Hawk是一个非常便捷的数据库.操作数据库只需一行代码,能存任何数据类型. ...

  3. Android Hawk数据库

    转自:http://blog.csdn.net/aaawqqq/article/details/50352309 偶然发现的一个数据存储工具,使用超简单,可以替代SharePreference,保留下 ...

  4. Android Hawk数据库 github开源项目,字节跳动社招面试记录

    repositories { // - maven { url "https://jitpack.io" } } dependencies { compile 'com.githu ...

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

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

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

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

  7. Android 轻量级数据库 Hawk

    前言介绍 Hawk 是一个很便捷的数据库 . 操作数据库仅仅需一行代码 , 能存不论什么数据类型 Hawk 是一个简单的 key-value 数据库 Hawk用的是: AES 加密能选择使用Share ...

  8. android专题-数据库Room

    android专题-数据库Room Room介绍 room是Google官方推荐的ORM数据库框架,抽象出sqlite访问的数据库. 包含三大组件: Entity 定义 表结构,每个entity类对一 ...

  9. android与mysql数据库同步_android开发 如何通过web服务器访问MYSQL数据库并且使其数据同步到android SQLite数据库?...

    通过web服务器访问MYSQL数据库有以下几个过程: 1.在MySql下创建自己的数据库和自己的表单 2.连接数据库. 3.访问数据库 1.创建web工程 (服务器端) 在Myeclipse下新建一个 ...

最新文章

  1. TensorFlow、PyTorch夹缝之下:后浪的进击和野望
  2. oracle启动的服务有哪些,启动/关闭oracle服务有三种方式
  3. IDA Pro 权威指南阅读摘要1
  4. celery 可视化_在Flask中使用Celery进行多任务分布执行
  5. 笔画输入法电脑版_太有才!浙江路政员发明汉字码输入法
  6. FFmpeg学习1:视频解码
  7. paip sms to blog.txt
  8. 你在现实中遇到让你最跌破三观的人或者事是什么?
  9. CSS按钮动画(二)
  10. r语言算巢式设计方差分析_R语言进行方差分析
  11. 数据库之DB2数据库备份
  12. [双十二优惠大放送] 我是小册姐,我因掘金小册而被创造,谢谢你们20天的陪伴...
  13. bde怎么配置oracle数据库,Oracle数据访问组件ODAC教程:如何从BDE和DOA迁移
  14. 抖音号永久封禁了怎么解封
  15. C/C++ 如何设计框架
  16. IPv4与IPv6之间的区别
  17. C++对象模型——Member的各种调用方式(第四章)
  18. linux内核 社区,明尼苏达大学Linux内核“伪装者提交”研究人员发表公开信
  19. hadoop组件概况
  20. 解决Fluxion卡在Starting Captive Portal access point service...

热门文章

  1. IOS客户端面试总结
  2. 用户 不在 sudoers 文件中。此事将被报告。
  3. 《从零开始的记账本开发》第1篇 需求分析
  4. 十进制负数转化成二进制
  5. 计算机科学与探索支付宝,中国第三方网上支付发展研究-以支付宝为例(毕业论文).doc...
  6. 20210719-t101-对称二叉树
  7. 樊氏族谱2-汝南樊银后裔家谱续谱-简书
  8. Android使用HttpURLConnection访问网络
  9. 快速梳理23种常用的设计模式
  10. java开发面试自我介绍模板_java求职自我介绍范文_java工程师面试个人介绍