Android开发经验谈Android专题

让SharedPreference操作更简易

2019-04-19  本文已影响19人  1225fe6bdfc1

这篇文章写的是关于Android开发中,数据持久化所使用到的SharedPreference的相关内容。SharedPreference可以让数据通过键值对的方式缓存到磁盘中,这是它的一大特性。为了让SharedPreference的使用更加简单和支持AES加密等功能,所以基于SharedPreferences封装了一个简单易用的框架,它的名字叫MicroKV。不多说,直接进入主题。

Github地址:https://github.com/mailhu/microkv

安装引入

步骤一、将JitPack存储库添加到根目录的build.gradle中:

allprojects {
    repositories {
        ...
        maven { url 'https://jitpack.io' }
    }
}

步骤二、在项目的app模块下的build.gradle里:

dependencies {
    implementation 'com.github.mailhu:microkv:1.3.8'
}

初始化

在你的项目自定义的Application类中初始化MicroKV组件。

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        //MicroKV组件初始化
        MicroKV.initialize(this);
    }
}

保存数据与加密

//通过创建对象调用
MicroKV kv = MicroKV.defaultMicroKV();
kv.setKV("int", 1949);                  //写入一个int类型的数据
kv.setKV("long", 299792458L);           //写入一个long类型的数据
kv.setKV("float", 3.14f);               //写入一个float类型的数据
kv.setKV("bool", true);                 //写入一个boolean类型的数据
kv.setKV("string", "Hello MicroKV");    //写入一个String的数据
kv.save();
//链式调用
MicroKV.defaultMicroKV()
        .setKV("int", 2019)
        .setKV("long", 299792458L)
        .setKV("float", 3.14f)
        .save();
//自定义文件名和开启加密功能
MicroKV.customize("MyInfo", true)
        .setKV("nickname", "Lake")
        .setKV("mail", "xxx@foxmail.com")
        .setKV("address", "广东 广州")
        .setKV("age", 20)
        .save();
<!--加密后的内容-->
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <string name="address">XMto1+cyq000i+/rYqJIXA==</string>
    <string name="nickname">AJumyR6uzPPx8xnObCwuHA==</string>
    <int name="age" value="20" />
    <string name="mail">wraiunVGIIGup9GS6uXe8g==</string>
</map>

读取数据和解密

//通过指定方法读取数据
MicroKV kv = MicroKV.defaultMicroKV();
int i = kv.getInt("int");
long l = kv.getLong("long");
float f = kv.getFloat("float");
boolean b = kv.getBoolean("bool");
String s = kv.getString("string");
//通过重载方法读取数据
MicroKV kv = MicroKV.defaultMicroKV();
int i = kv.getKV("int", 0);
long l = kv.getKV("long", 0L);
float f = kv.getKV("float", 0f);
boolean b = kv.getKV("bool", false);
String s = kv.getKV("string", "");
//自定义文件和已加密的内容读取
MicroKV kv = MicroKV.customize("MyInfo", true);
String nickname = kv.getString("nickname");
String mail = kv.getString("mail");
String address = kv.getKV("address", "中国");
int age = kv.getKV("age", 0);

更新数据

更新数据的过程只需填写需要更新的键和值,如何调用save( )方法即可。

//非加密类型更新
MicroKV.defaultMicroKV()
        .setKV("int", 2020)
        .setKV("float", 3.14159f)
        .save();
//加密类型更新
MicroKV.customize("MyInfo", true)
        .setKV("nickname", "Lake Zhang")
        .setKV("address", "广东 湛江")
        .save();

移除数据

//移除某个键值对
MicroKV.defaultMicroKV().removeKV("int");
MicroKV.customize("MyInfo").removeKV("age");

//需要移除多个键值对
String[] strings = new String[]{"nickname", "address"};
MicroKV.customize("MyInfo").removeKVs(strings);

结语

以上是MicroKV的使用方法,如果需要更详细的使用文档,可以到Github上查看该仓库的readme文档。MicroKV相当于是SharedPreference的操作框架,和SharedPreference支持的数据类型保持一致,同时加入数据加密等功能。MicroKV在设计的过程中一直围绕“微”字展开,一切操作都集中在MicroKV这个类上,开发者可以很轻松地上手使用。只要处理的数据不复杂,对高性能要求不苛刻,MicroKV可以满足日常的使用场景。

麻雀虽小,五脏俱全 文档目录
上一篇 下一篇

猜你喜欢

热点阅读