本文主要是介绍ZUI易入门Android之 MMKV,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
MMKV是什么?
在Android开发过程中,我们经常会使用到一些存储。经常使用sharepreferences
存储,当你的数据量在不需要使用数据库,但sharepreferences
感觉又无法承载的时候,但性能卓越的存储框架,由腾讯旗下的微信开发—MMKV
今天我们主要从这几个方面来解释一下MMKV
- MMKV存储优势
- MMKV存储支持的数据类型
- MMKV引入依赖
- MMKV存储与获取
- MMKV更多知识
- MainActivity中使用代码
一. MMKV存储优势
MMKV 是腾讯旗下开发的一款存储组件,采用 key - value
方式存储,存储数据种类比较多,读写效率高
其有以下优点:
- 非常高效。MMKV使用mmap与文件保持内存同步,使用protobuf对数值进行编码/解码,充分利用Android,实现最佳性能。
- 多进程并发:MMKV支持进程之间的并发读写访问。
- 易于使用的。你可以随时使用MMKV。所有的更改都会立即保存,不需要同步,也不需要apply调用。
- 小。少数几个文件:MMKV包含进程锁、编码/解码帮助程序和mmap逻辑等等。很整洁。
大约60K的二进制大小:MMKV在每个架构上增加了大约60K的应用程序大小,而压缩(apk)时增加的就少多了。二. MMKV存储支持的数据类型
MMKV
存储数据以key-value
形式存储,其接收以下数据类型:
- boolean
- int
- long
- float
- double
- String
- set集合
- byte[]数组
-
可序列化对象
三.MMKV引入依赖
依赖注入
在 App 模块的 build.gradle 文件里添加:
-
dependencies {implementation 'com.tencent:mmkv:1.0.22'// replace "1.0.22" with any available version }
初始化
-
// 设置初始化的根目录 String dir = getFilesDir().getAbsolutePath() + "/mmkv_2"; String rootDir = MMKV.initialize(dir); Log.i("MMKV", "mmkv root: " + rootDir);
/获得默认存储对象MMKV kv = MMKV.defaultMMKV();//存boolean值kv.encode("bool", true);boolean bValue = kv.decodeBool("bool");LogUtil.i("========bValue===="+bValue);//存int值kv.encode("int", Integer.MIN_VALUE);int iValue = kv.decodeInt("int");LogUtil.i("========iValue===="+iValue);//存long值kv.encode("long",60L);long longValue=kv.decodeLong("long");LogUtil.i("========longValue===="+longValue);//存float值kv.encode("float",30f);float floatValue=kv.decodeFloat("float");LogUtil.i("========floatValue===="+floatValue);
MMKV还有更多功能,如:
- 自定义存储实例
- 自定义存储路径
- 设置是否加密及自定义加密的key
- 查询及删除等方法
-
// 添加/更新数据 kv.encode(key, value);// 获取数据 int tmp = kv.decodeInt(key);// 删除数据 kv.removeValueForKey(key);
SP 的迁移
-
private void testImportSharedPreferences() {MMKV mmkv = MMKV.mmkvWithID("myData");SharedPreferences old_man = getSharedPreferences("myData", MODE_PRIVATE);// 迁移旧数据mmkv.importFromSharedPreferences(old_man);// 清空旧数据old_man.edit().clear().commit();...... }
这篇关于ZUI易入门Android之 MMKV的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!