MMKV简介
MMKV是一款基于 mmap 内存映射的 key-value 存储库,专门为移动端开发设计。相比于传统的SharedPreferences和SQLite等存储方式,MMKV具有更快的读写速度和更小的存储空间占用。同时,MMKV还提供了多线程安全的支持和可配置的加密选项。因此,在移动端开发中,MMKV被广泛应用于数据持久化和缓存优化等方面。
添加依赖
implementation 'com.tencent:mmkv:1.2.9'
一、MMKV保存bean实体对象
1.在Kotlin类中定义一个MMKV实例:
import com.tencent.mmkv.MMKV
val mmkv = MMKV.defaultMMKV()
2.你可以通过以下方式将Bean对象保存到MMKV中:
val bean = MyBean("John", 25)mmkv.encode("myBean", bean)
3.要从MMKV中读取Bean对象,可以使用以下代码:
val bean = mmkv.decodeParcelable("myBean", MyBean::class.java)
注意,使用MMKV保存和读取Bean对象时,需要确保该对象实现了Parcelable
接口,并且注册了MMKV的支持。你可以通过以下方式实现:
import android.os.Parcelable
import kotlinx.android.parcel.Parcelize@Parcelize
data class MyBean(val name: String, val age: Int) : Parcelable {companion object {@JvmFieldval CREATOR = Parcelable.Creator<MyBean> { parcel ->MyBean(parcel.readString()!!, parcel.readInt())}}
}
二、MMKV保存数组bean
MMKV保存数组bean的示例代码为:
import com.tencent.mmkv.MMKVdata class MyBean(val name: String, val age: Int)fun main() {val mmkv = MMKV.defaultMMKV()// 保存数组beanval myBeans = listOf(MyBean("张三", 20), MyBean("李四", 25))val jsonString = Gson().toJson(myBeans)mmkv.encode("myBeans", jsonString)// 读取数组beanval savedJsonString = mmkv.decodeString("myBeans")val savedMyBeans = Gson().fromJson(savedJsonString, Array<MyBean>::class.java).toList()println(savedMyBeans)
}