ZUI易入门Android之 MMKV

2023-11-22 04:59
文章标签 android 入门 mmkv zui

本文主要是介绍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形式存储,其接收以下数据类型:
  1. boolean
  2. int
  3. long
  4. float
  5. double
  6. String
  7. set集合
  8. byte[]数组
  9. 可序列化对象

    三.MMKV引入依赖

    依赖注入

    在 App 模块的 build.gradle 文件里添加:

  10. dependencies {implementation 'com.tencent:mmkv:1.0.22'// replace "1.0.22" with any available version
    }
    

    初始化

  11. // 设置初始化的根目录
    String dir = getFilesDir().getAbsolutePath() + "/mmkv_2";
    String rootDir = MMKV.initialize(dir);
    Log.i("MMKV", "mmkv root: " + rootDir);
    

    四.MMKV存储与获取

    /获得默认存储对象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更多知识

    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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/407692

相关文章

从入门到精通C++11 <chrono> 库特性

《从入门到精通C++11<chrono>库特性》chrono库是C++11中一个非常强大和实用的库,它为时间处理提供了丰富的功能和类型安全的接口,通过本文的介绍,我们了解了chrono库的基本概念... 目录一、引言1.1 为什么需要<chrono>库1.2<chrono>库的基本概念二、时间段(Durat

解析C++11 static_assert及与Boost库的关联从入门到精通

《解析C++11static_assert及与Boost库的关联从入门到精通》static_assert是C++中强大的编译时验证工具,它能够在编译阶段拦截不符合预期的类型或值,增强代码的健壮性,通... 目录一、背景知识:传统断言方法的局限性1.1 assert宏1.2 #error指令1.3 第三方解决

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

Redis 配置文件使用建议redis.conf 从入门到实战

《Redis配置文件使用建议redis.conf从入门到实战》Redis配置方式包括配置文件、命令行参数、运行时CONFIG命令,支持动态修改参数及持久化,常用项涉及端口、绑定、内存策略等,版本8... 目录一、Redis.conf 是什么?二、命令行方式传参(适用于测试)三、运行时动态修改配置(不重启服务

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级

MySQL DQL从入门到精通

《MySQLDQL从入门到精通》通过DQL,我们可以从数据库中检索出所需的数据,进行各种复杂的数据分析和处理,本文将深入探讨MySQLDQL的各个方面,帮助你全面掌握这一重要技能,感兴趣的朋友跟随小... 目录一、DQL 基础:SELECT 语句入门二、数据过滤:WHERE 子句的使用三、结果排序:ORDE

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四