liangjingkanji / Serialize

🍒 Android 简单高性能读写本地数据, 直接存储对象/基础类型
http://liangjingkanji.github.io/Serialize/
Apache License 2.0
239 stars 20 forks source link

期望全局可配置 MMKV 的 mode 和 cryptKey #16

Closed nEdAy closed 1 year ago

nEdAy commented 1 year ago

defaultMMKV(int mode, @Nullable String cryptKey)

liangjingkanji commented 1 year ago

mmkv本身就支持全局配置

nEdAy commented 1 year ago

@liangjingkanji 没找到 API 呀,目前看只能对某个 by serial() 设置它使用的 kv 我的需求是 可针对一个类下 所有 by serial() 等字段 配置它使用的 kv(业务字段、加密密钥)这样

类似这样写? https://github.com/liangjingkanji/Serialize/commit/efc9b6afc9f3d043b9150a390b069ddd09834b8b

liangjingkanji commented 1 year ago

Serialize默认使用的MMKV.default(), 你可以直接使用MMKV来加密. 如果只是针对某个类那这是不支持的(只能为每个字段配置MMKV对象)

liangjingkanji commented 1 year ago

已经计划提供Hook接口回调来配置加密/解密数据了 并且计划使用kotlin-serialization来序列化/反序列化来解决Parcelable/Serializable增删字段导致的一系列问题

liangjingkanji commented 1 year ago

2.0.0版本已经支持实现SerializeHook接口自定义序列化

liangjingkanji commented 1 year ago

现在支持全局配置mmkv

Serialize.mmkv = MMKV.defaultMMKV()

单例配置

@SerializeConfig(mmapID = "app_config") // 指定mmapID可以避免重命名当前类名或者改变包名导致无法读取旧值
object AppConfig {
    var userId: String by serialLazy(name="user_id") // 指定name可以避免重命名当前字段导致无法读取旧值
}
nEdAy commented 1 year ago

现在支持全局配置mmkv

Serialize.mmkv = MMKV.defaultMMKV()

单例配置

@SerializeConfig(mmapID = "app_config") // 指定mmapID可以避免重命名当前类名或者改变包名导致无法读取旧值
object AppConfig {
    var userId: String by serialLazy(name="user_id") // 指定name可以避免重命名当前字段导致无法读取旧值
}

这应该是我需要的,感谢东哥