zoukankan      html  css  js  c++  java
  • 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。
    //   ┃   ┗━━━┓
    //   ┃       ┣┓
    //   ┃       ┏┛
    //   ┗┓┓┏━┳┓┏┛
    //     ┃┫┫ ┃┫┫
    //     ┗┻┛ ┗┻┛

    希望对大家实用 

  • 相关阅读:
    金色酒类企业dedecms模板
    hdu 1533 最小费用最大流
    计算几何算法
    博弈总结
    图搜索总结
    一般图匹配题集 转自夏天的风
    极大极小过程题集 转自夏天的风
    dancing links 题集转自夏天的风
    网络流题集转自夏天的风
    nyoj 547 优先队列
  • 原文地址:https://www.cnblogs.com/llguanli/p/8796886.html
Copyright © 2011-2022 走看看