Package com.drake.serialize.serialize

Functions

deserialize
Link copied to clipboard
inline fun <T> deserialize(name: String): T
根据name读取磁盘数据, 即使读取的是基础类型磁盘不存在的话也会返回null
inline fun <T> MMKV.deserialize(name: String): T
根据name读取磁盘数据, 即使读取的是基础类型磁盘不存在的话也会返回null
inline fun <T> deserialize(name: String, defValue: T?): T
根据name读取磁盘数据, 假设磁盘没有则返回defValue指定的默认值
inline fun <T> MMKV.deserialize(name: String, defValue: T?): T
根据name读取磁盘数据, 假设磁盘没有则返回defValue指定的默认值
serial
Link copied to clipboard
inline fun <V> serial(default: V? = null, name: String? = null, kv: MMKV = MMKV.defaultMMKV() ?: throw IllegalStateException("MMKV.defaultMMKV() == null, handle == 0 ")): ReadWriteProperty<Any?, V>
其修饰的属性字段的读写都会自动映射到本地磁盘 线程安全 本函数属于阻塞函数, 同步读写磁盘
serialize
Link copied to clipboard
fun serialize(vararg params: Pair<String, Any?>)
将键值数据序列化存储到磁盘
fun MMKV.serialize(vararg params: Pair<String, Any?>)
将键值数据序列化存储到磁盘
serialLazy
Link copied to clipboard
inline fun <V> serialLazy(default: V? = null, name: String? = null, kv: MMKV = MMKV.defaultMMKV() ?: throw IllegalStateException("MMKV.defaultMMKV() == null, handle == 0 ")): ReadWriteProperty<Any?, V>
其修饰的属性字段的读写都会自动映射到本地磁盘 和serial不同的是通过内存/磁盘双通道读写来优化读写性能 其修饰的属性字段第一次会读取磁盘数据, 然后拷贝到内存中, 后续都是直接读取内存中的拷贝 写入会优先写入到内存中的拷贝份, 然后通过子线程异步写入到磁盘 线程安全 tip: 不支持跨进程使用