Package com.drake.serialize.serialize

Types

Link copied to clipboard
object Serialize
Link copied to clipboard
interface SerializeHook

序列化接口

Functions

Link copied to clipboard
inline fun <T> deserialize(name: String, defValue: T? = null): T
inline fun <T> MMKV.deserialize(name: String, defValue: T? = null): T

根据name读取磁盘数据, 假设磁盘没有则返回defValue指定的默认值

fun <T> MMKV.deserialize(type: Class<T>, name: String, defValue: T? = null): T

根据name读取磁盘数据, 即使读取的是基础类型磁盘不存在的话也会返回null

Link copied to clipboard
inline fun <V> serial(default: V? = null, noinline name: () -> String?, kv: MMKV? = null): ReadWriteProperty<Any, V>
inline fun <V> serial(default: V? = null, name: String? = null, kv: MMKV? = null): ReadWriteProperty<Any, V>

其修饰的属性字段的读写都会自动映射到本地磁盘 线程安全 本函数属于阻塞函数, 同步读写磁盘

Link copied to clipboard
fun serialize(vararg params: Pair<String, Any?>)
fun MMKV.serialize(vararg params: Pair<String, Any?>)

将键值数据序列化存储到磁盘

Link copied to clipboard
inline fun <V> serialLazy(default: V? = null, noinline name: () -> String?, kv: MMKV? = null): ReadWriteProperty<Any, V>
inline fun <V> serialLazy(default: V? = null, name: String? = null, kv: MMKV? = null): ReadWriteProperty<Any, V>

其修饰的属性字段的读写都会自动映射到本地磁盘 和serial不同的是通过内存/磁盘双通道读写来优化读写性能 其修饰的属性字段第一次会读取磁盘数据, 然后拷贝到内存中, 后续都是直接读取内存中的拷贝 写入会优先写入到内存中的拷贝份, 然后通过子线程异步写入到磁盘 线程安全

Link copied to clipboard
inline fun <V> serialLiveData(default: V? = null, noinline name: () -> String?, kv: MMKV? = null): ReadOnlyProperty<Any, MutableLiveData<V>>
inline fun <V> serialLiveData(default: V? = null, name: String? = null, kv: MMKV? = null): ReadOnlyProperty<Any, MutableLiveData<V>>

可观察的数据来源MutableLiveData 其修饰的属性字段的读写都会自动映射到本地磁盘 和serial不同的是通过内存/磁盘双通道读写来优化读写性能 其修饰的属性字段第一次会读取磁盘数据, 然后拷贝到内存中, 后续都是直接读取内存中的拷贝 写入会优先写入到内存中的拷贝份, 然后通过子线程异步写入到磁盘 线程安全