android -------- Hawk数据库

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的存储。获取数据时就正好逆过来啦。

原文地址:https://www.cnblogs.com/zhangqie/p/10512215.html