去年,我们写过一篇文章,对于android原生提供的key-value存储API SharePreference,进行了从使用到原理的深入分析,同时对其中存在的ANR问题、存取慢等问题,进行了深入的探索、总结。但是之前的文章,我们仅仅指出了问题,没有给大家提供解决方案,也就是说,SharePreference既然不建议使用,那么我应该使用啥?

答案是有的,例如Tencent的mmkv、 Jetpack DataStore,本文,我们从使用入手,一起来深入学习一下MMKV的原理,并且过程中,也会与SharePreference进行对比分析,看它如何解决SharePreference存在的诸多问题的。

小需求:我们为了同步验证MMKV的跨进程通信能力,那么我们新建两个activity,分别为Test1Activity与Test2Activity,两个activity属于不同的进程,在Test1Activity中使用mmkv进行数据的存储,然后在Test2Activity中获取相关key的value,然后进行显示。

1.MMKV的使用

这个简单,我们直接看github mmkv组件的介绍
首先在build.gradle 文件中,引入mmkv

dependencies 

【Android源码面试宝典】MMKV从使用到原理分析(一)相关推荐

  1. 【Android源码面试宝典】MMKV从使用到原理分析(二)

    上一章节,我们从使用入手,进行了MMKV的简单讲解,我们通过分析简单的运行时日志,从中大概猜到了一些MMKV的代码内部流程,同时,我们也提出了若干的疑问?还是那句话,带着目标(问题)去阅读一篇源码,那 ...

  2. android 三方_面试官送你一份Android热门三方库源码面试宝典及学习笔记

    前言 众所周知,优秀源码的阅读与理解是最能提升自身功力的途径,如果想要成为一名优秀的Android工程师,那么Android中优秀三方库源码的分析和理解则是必备技能.就拿比较热门的图片加载框架Glid ...

  3. Android源码配置第三方应用电池白名单流程分析笔记

    这里以MTK6765 Android S举例说明,Android系统在加载客户应用白名单的过程. 首先Android系统可以根据不同手机厂商的需要进行源码的定制,当然定制应用白名单也是可以的,一般情况 ...

  4. 【Spring源码】Spring中的AOP底层原理分析

    AOP中的几个概念 Advisor 和 Advice Advice,我们通常都会把他翻译为通知,其实很不好理解,其实他还有另外一个意思,就是"建议",我觉得把Advice理解为&q ...

  5. JVM源码系列:ThreadMXBean 打出堆栈信息原理分析

    我们通常会使用工具jstack 去跟踪线程信息,其如何实现使用attach 的方式还是ptrace 的方式,这些可以去参考本人的博客的其他文章. 但这些方式都是外部使用的方式,如何直接使用java代码 ...

  6. Android源码设计模式分析项目

    原文链接:https://github.com/simple-android-framework/android_design_patterns_analysis Android源码设计模式分析开源项 ...

  7. 编译android源码m、mm、mmm命令的使用

    http://blog.163.com/zz_forward/blog/static/212898222201442873435471/ gcc怎么查看它的默认include路径和库的路径呢? //- ...

  8. android源码项目(绝对的学习宝典)

    上百个Android开源项目分享,希望对android开发有帮助.  转载于  http://blog.csdn.net/dyllove98/article/details/8842329 Andro ...

  9. Android源码的Binder权限是如何控制,附超全教程文档

    从初中级到高级,移动端程序员的进阶宝典 想要成为一名优秀的Android开发,你需要一份完备的 知识体系,在这里,让我们一起成长为自己所想的那样. 下面我们就以 Android 开发为例,从硬技能和软 ...

最新文章

  1. 【Python】有道翻译的爬虫实现(后篇)
  2. 在eclipse里jsp编译后的java和class文件的位置
  3. 微博:推动世界的力量(第2版)
  4. Jenkins-自动化构建、测试和部署-学习笔记
  5. mysql与mssql中datetime类型字段问题_excel数据存入sqlserver过程中,遇到Datetime的格式问题。...
  6. servlet中中文正常显示,mysql数据库手动插入中文正常显示,servlet向mysql中插入中文显示乱码...
  7. 华为P20 Pro销售火爆卖断货?淘宝商家加价卖
  8. Spring Cloud Config统一管理微服务配置
  9. java支付宝支付_Java 高并发环境下的性能优化,揭秘支付宝技术内幕
  10. Tomcat无响应问题
  11. Vagrant常见问题汇总
  12. iphone在jsp显示时间会NAN解决办法
  13. 台式计算机怎么关闭无线网络,台式机无线网卡被禁用了如何解决
  14. 提供小图标(Icon)的网站(不定时更新)
  15. 99行Swift完成Markdown在线编辑服务器
  16. 安装CAD2006出现html,win7系统安装cad2006出现已终止CAD2006-Simplifieng安装的解决方法...
  17. MAC 下ifconfig看IP
  18. html微信图片自适应,微信小程序实现图片高度自适应
  19. Dev C++下载及使用
  20. 在RHEL6.0 X64系统中安装oracle 11g数据库及安装后设置

热门文章

  1. Excel表格统计满足两列条件的总数:countifs方法
  2. mysql的prepared statement
  3. 隐马尔可夫模型之Baum-Welch算法详解
  4. Ubuntu 18.04 LTS 安装wine 、exe程序安装和卸载
  5. 机器视觉-相机镜头光源介绍及选型-3.光源分类
  6. 大数据开发工程师都需要学什么大数据课程?
  7. ffmpeg去除水印
  8. 福禄克DTX-1800其配件DTX-CHA002通道适配器CHANNEL更换RJ45插座小记
  9. Arduino控制WS2812灯带(灯环)
  10. python简笔画程序_只用C++和Python,让你的简笔画实时动起来!