首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MMKV 组件现在开源了

    MMKV 使用了 AES CFB-128 算法来加密/解密。我们选择 CFB 而不是常见的 CBC 算法,主要是因为 MMKV 使用 append-only 实现插入/更新操作,流式加密算法更加合适。...事实上这个功能也回馈到了 iOS 版,所以现在两个系统的 MMKV 都有加密功能。 MMKV 使用 iOS 的使用在前文已经陈述,这里简单介绍一下 Android 的用法。...在 App 启动时初始化 MMKV,设定 MMKV 的根目录(files/mmkv/),例如在 MainActivity 里: protected void onCreate(Bundle savedInstanceState...", "root: " + rootDir);    //…… } MMKV 提供一个全局的实例,可以直接使用: import com.tencent.mmkv.MMKV; //…… MMKV kv...String str = kv.decodeString("string"); 如果不同业务需要区别存储,也可以单独创建自己的实例: MMKV* mmkv = MMKV.mmkvWithID("MyID

    3.7K20

    MMKV for Android 多进程设计与实现

    现在一并对外开源:  https://github.com/tencent/mmkv 欢迎 Star、提 Issue 和 PR。 前言 MMKV 的源起、设计原理与具体实现参考前文。...MMKV 追求的是极致的访问速度,我们要尽可能地避免进程间通信,CS 架构是不可取的。再考虑到 MMKV 底层使用 mmap 实现,采用去中心化的架构是很自然的选择。...综合各种考虑,我们先将文件锁作为一个简单的互斥锁,进行 MMKV 的多进程开发,稍后再回头解决递归锁和读写锁升级/降级的问题。 多进程实现细节 首先我们简单回顾一下 MMKV 原来的逻辑。...,MMKV 只选用最后写入的作为有效键值。...MMKV 多进程性能 写了个简单的测试,创建两个 Service,测试 MMKV、MultiProcessSharedPreferences、SQLite 多进程读写的性能,具体代码见 GitHub。

    6K20

    Android MVVM框架搭建(三)MMKV + Room + RxJava2

    Android MVVM框架搭建(三)MMKV + Room + RxJava2 前言 正文 一、添加依赖 二、MMKV 1. 初始化 2. 数据存取 3. 使用 三、Room 1....,例如腾讯的MMKV库,比较的好用,在我以往的博客中也没有使用过MMKV,就在本文中使用吧,其实JetPack中也有一个组件是用来解决SharedPreferences的,就是DataStore,但是我发现它的使用群体还没有上去...初始化   第一步就是在自定义的Application中进行初始化,在onCreate方法中增加如下代码: //MMKV初始化 MMKV.initialize(this); 当然你也可以这样写...用于查看你的缓存文件存在哪里 String initialize = MMKV.initialize(this); System.out.println("MMKV INIT " + initialize...mmkv; public MVUtils() { mmkv = MMKV.defaultMMKV(); } public static MVUtils getInstance

    1.3K31

    微信最新开源MMKV

    MMKV 开源当日即登Github Trending日榜,三日后荣登周榜。MMKV 在腾讯内部开源半年,得到公司内部团队的广泛应用和一致好评。...MMKV 功能 MMKV 优点 高效 MMKV 使用 mmap 来保证内存与文件的同步, 底层使用 protobuf 来存储数据, 深入挖掘了操作系统的潜力来达到最高的性能。...MMKV 使用了 AES CFB-128 算法来加密/解密。我们选择 CFB 而不是常见的 CBC 算法,主要是因为 MMKV 使用 append-only 实现插入/更新操作,流式加密算法更加合适。...MMKV 性能 iOS 性能对比 我们将 MMKV 和 NSUserDefaults 进行对比,重复读写操作 1w 次。...Android 性能对比 我们将 MMKV 和 SharedPreferences、SQLite 进行对比, 重复读写操作 1k 次。相关测试代码在 Android/MMKV/mmkvdemo/。

    81530

    MMKV:微信团队开源的轻量级存储方案

    出现的意义 MMKV的出现是为了替代SharedPreferences的轻量级存储解决方案。SharedPreferences需要被替换的原因主要是存在下述问题: 1....读写方式:内存映射MMAP MMKV基于内存映射MMAP,下面主要介绍内存映射相关内容: 1.1 定义 Linux通过将一个虚拟内存区域与一个磁盘上的对象关联起来,以初始化这个虚拟内存区域的内容,这个过程称为内存映射...数据存储方式:Protobuf MMKV的序列化/反序列化使用 protobuf 实现,其采用了以 T - V 方式对数据进行二进制数据流存储,空间占存少、数据量精简,能以最少的数据量能表示最多的信息。...至此,关于微信团队开源的轻量级存储方案:MMKV 讲解完毕。...总结 本文全面介绍了MMKV的相关知识,接下来的文章,我将继续讲解MMKV相关知识,感兴趣的读者可以继续关注Carson带你学Android开源库系列文章: Carson带你学Android:主流开源图片加载库对比

    1.1K10

    Android MVVM框架搭建(三)MMKV + Room + RxJava2

    Android MVVM框架搭建(三)MMKV + Room + RxJava2 前言 正文 一、添加依赖 二、MMKV 1. 初始化 2. 数据存取 3. 使用 三、Room 1....,例如腾讯的MMKV库,比较的好用,在我以往的博客中也没有使用过MMKV,就在本文中使用吧,其实JetPack中也有一个组件是用来解决SharedPreferences的,就是DataStore,但是我发现它的使用群体还没有上去...初始化   第一步就是在自定义的Application中进行初始化,在onCreate方法中增加如下代码: //MMKV初始化 MMKV.initialize(this); 当然你也可以这样写...用于查看你的缓存文件存在哪里 String initialize = MMKV.initialize(this); System.out.println("MMKV INIT " + initialize...mmkv; public MVUtils() { mmkv = MMKV.defaultMMKV(); } public static MVUtils getInstance

    1.2K20

    锦囊篇|一文摸懂SharedPreferences和MMKV(一)

    第一步:开源库导入 implementation 'com.tencent:mmkv-static:1.1.2' 第二步:使用 // 1....自定义Aapplication public void onCreate() { super.onCreate(); MMKV.initialize(this); } // 2....调度使用 // 和SharedPreferenced一样,支持的数据类型直接往里面塞即可 // 不一样的地方,MMKV不需要自己去做一些apply()或者是commit()的操作,更加方便 MMKV kv...w=889&h=803&f=png&s=150991] 不论是单线程还是多线程,MMKV的读写能力都远远的甩开了SharedPreferences&SQLite&SQLite+Transacion。...不过下面一句话仅代表了我的个人意见,也是为什么我只写SharedPreferences和MMKV两者比较的原因,因为我个人认为SQLite和他们不太属于同一类产品,所以比较的意义上来说就趋于普通。

    1.2K10

    开源|携程机票 App KMM 跨端 KV 存储库 MMKV-Kotlin

    MMKV-Kotlin 在底层需要依赖并调用 MMKV,对上希望暴露与 MMKV 类似的 API 并做一些符合语言特性的封装。...4.2 MMKV 类型 在 MMKV 的 Java 与 Objective-C 版本中,MMKV 类型是具体 CRUD 功能的实现类。...我们需要在 common 层声明 MMKV 类型(为避免同名带来的混淆,我们将 common 层的 MMKV 类型命名为 MMKV_KMP),并且具体实现在各平台的 source set 中,MMKV ...若 MMKV 或 Kotlin 进行了升级,MMKV-Kotlin 未来都会进行跟进升级,请使用者确保 MMKV-Kotlin 依赖的 MMKV 或 Kotlin 版本与您使用的版本兼容。...Tencent/MMKV MMKV-Kotlin https://github.com/ctripcorp/mmkv-kotlin MMKV-Kotlin 跨进程测试的 Service https://

    1.7K20
    领券