FastKV 使用教程
项目介绍
FastKV 是一个由 mmap 实现的高实时性、高性能的 key-value 持久化存储组件。它支持常用的基础类型如 boolean、int、float、long、double、String 等,以及 ByteArray 和自定义对象的存储。FastKV 还支持数据加密、多进程访问、文件内容变化监听等功能,提供了丰富的 API 接口,方便易用。
项目快速启动
导入依赖
首先,在项目的 build.gradle
文件中添加 FastKV 的依赖:
dependencies {
implementation 'io.github.billywei01:fastkv:2.6.0'
}
初始化
在应用启动时,进行 FastKV 的初始化设置:
import io.github.billywei01.fastkv.FastKVConfig;
import io.github.billywei01.fastkv.FastKVLogger;
import io.github.billywei01.fastkv.FastKV;
// 设置日志接口和Executor
FastKVConfig.setLogger(new FastKVLogger() {
@Override
public void log(String message) {
// 自定义日志输出
}
});
FastKVConfig.setExecutor(Dispatchers.Default.asExecutor());
// 初始化 FastKV 实例
FastKV kv = new FastKV.Builder(context, "my_kv_store").build();
基本用法
以下是一些基本的读写操作示例:
// 写入数据
kv.putBoolean("flag", true);
kv.putInt("count", 10);
// 读取数据
boolean flag = kv.getBoolean("flag");
int count = kv.getInt("count");
应用案例和最佳实践
存储自定义对象
FastKV 支持存储自定义对象,需要提供相应的编码器:
import io.github.billywei01.fastkv.encoder.FastKVEncoder;
// 定义自定义对象编码器
public class LongListEncoder implements FastKVEncoder<List<Long>> {
@Override
public byte[] encode(List<Long> value) {
// 编码逻辑
}
@Override
public List<Long> decode(byte[] bytes) {
// 解码逻辑
}
}
// 使用自定义对象编码器
FastKVEncoder<?>[] encoders = new FastKVEncoder<?>[]{new LongListEncoder()};
FastKV kv = new FastKV.Builder(context, "my_kv_store").encoder(encoders).build();
List<Long> list = new ArrayList<>();
list.add(1L);
list.add(2L);
// 存储自定义对象
kv.putObject("long_list", list);
// 读取自定义对象
List<Long> storedList = kv.getObject("long_list");
数据加密
FastKV 支持数据加密,需要在初始化时注入加密解密实现:
import io.github.billywei01.fastkv.crypto.FastKVEncryptor;
// 定义加密解密实现
public class MyEncryptor implements FastKVEncryptor {
@Override
public byte[] encrypt(byte[] data) {
// 加密逻辑
}
@Override
public byte[] decrypt(byte[] encryptedData) {
// 解密逻辑
}
}
// 使用加密解密实现
FastKV kv = new FastKV.Builder(context, "my_kv_store")
.encryptor(new MyEncryptor())
.build();
典型生态项目
FastKV 可以与其他 Android 存储框架如 SharePreferences 结合使用,方便数据迁移和集成。以下是一个简单的示例,展示如何将 SharePreferences 的数据迁移到 FastKV:
import android.content.SharedPreferences;
// 从 SharePreferences 迁移数据到 FastKV
SharedPreferences sp = context.getSharedPreferences("my_sp", Context.MODE_PRIVATE);
Map<String, ?> allData = sp.getAll();
for (Map.Entry<String, ?> entry : allData.entrySet()) {
String key = entry.getKey();
Object value =
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考