让SharedPreference操作更简易

这篇文章写的是关于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);
    }
}

保存数据与加密

  • defaultMicroKV( ):获取MicroKV对象,同时使用当前应用程序的包名来命名存储数据文件名。
  • setKV( ):该方法已使用了重载,支持的数据类型有int、long、float、boolean、String和Set。其中保存long和float类型的数值,记得在数值的末尾加上"L"和"f "。
  • save( ):异步保存数据,无返回值。当然也可以使用commit( )保存数据,返回值类型为boolean型。
  • customize( ):参数一:自定义存储文件的文件名;参数二:是否开启加密,若不填写,默认不开启。当开启加密后,MicroKV会对该文件中所有的字符串进行加密。
//通过创建对象调用
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", "[email protected]")
        .setKV("address", "广东 广州")
        .setKV("age", 20)
        .save();



    XMto1+cyq000i+/rYqJIXA==
    AJumyR6uzPPx8xnObCwuHA==
    
    wraiunVGIIGup9GS6uXe8g==

读取数据和解密

  • getInt( ):读取int类型的数据,若读取的键值不存在,会自动返回一个默认值,其他同类方法参考下面相关的代码。
  • getKV( ):可以给该方法第二个参数指定默认值,若设置默认值的数据类型是long和float,需要分别在默认值的末尾加上"L"和"f"。
//通过指定方法读取数据
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();

移除数据

  • removeKV( ):用于移除某个键值对。
  • removeKVs( ):用于移除多个键值对。
//移除某个键值对
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可以满足日常的使用场景。

麻雀虽小,五脏俱全
让SharedPreference操作更简易_第1张图片
文档目录

你可能感兴趣的:(让SharedPreference操作更简易)