【Android源码面试宝典】MMKV从使用到原理分析(一)
去年,我们写过一篇文章,对于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从使用到原理分析(一)相关推荐
- 【Android源码面试宝典】MMKV从使用到原理分析(二)
上一章节,我们从使用入手,进行了MMKV的简单讲解,我们通过分析简单的运行时日志,从中大概猜到了一些MMKV的代码内部流程,同时,我们也提出了若干的疑问?还是那句话,带着目标(问题)去阅读一篇源码,那 ...
- android 三方_面试官送你一份Android热门三方库源码面试宝典及学习笔记
前言 众所周知,优秀源码的阅读与理解是最能提升自身功力的途径,如果想要成为一名优秀的Android工程师,那么Android中优秀三方库源码的分析和理解则是必备技能.就拿比较热门的图片加载框架Glid ...
- Android源码配置第三方应用电池白名单流程分析笔记
这里以MTK6765 Android S举例说明,Android系统在加载客户应用白名单的过程. 首先Android系统可以根据不同手机厂商的需要进行源码的定制,当然定制应用白名单也是可以的,一般情况 ...
- 【Spring源码】Spring中的AOP底层原理分析
AOP中的几个概念 Advisor 和 Advice Advice,我们通常都会把他翻译为通知,其实很不好理解,其实他还有另外一个意思,就是"建议",我觉得把Advice理解为&q ...
- JVM源码系列:ThreadMXBean 打出堆栈信息原理分析
我们通常会使用工具jstack 去跟踪线程信息,其如何实现使用attach 的方式还是ptrace 的方式,这些可以去参考本人的博客的其他文章. 但这些方式都是外部使用的方式,如何直接使用java代码 ...
- Android源码设计模式分析项目
原文链接:https://github.com/simple-android-framework/android_design_patterns_analysis Android源码设计模式分析开源项 ...
- 编译android源码m、mm、mmm命令的使用
http://blog.163.com/zz_forward/blog/static/212898222201442873435471/ gcc怎么查看它的默认include路径和库的路径呢? //- ...
- android源码项目(绝对的学习宝典)
上百个Android开源项目分享,希望对android开发有帮助. 转载于 http://blog.csdn.net/dyllove98/article/details/8842329 Andro ...
- Android源码的Binder权限是如何控制,附超全教程文档
从初中级到高级,移动端程序员的进阶宝典 想要成为一名优秀的Android开发,你需要一份完备的 知识体系,在这里,让我们一起成长为自己所想的那样. 下面我们就以 Android 开发为例,从硬技能和软 ...
最新文章
- 【Python】有道翻译的爬虫实现(后篇)
- 在eclipse里jsp编译后的java和class文件的位置
- 微博:推动世界的力量(第2版)
- Jenkins-自动化构建、测试和部署-学习笔记
- mysql与mssql中datetime类型字段问题_excel数据存入sqlserver过程中,遇到Datetime的格式问题。...
- servlet中中文正常显示,mysql数据库手动插入中文正常显示,servlet向mysql中插入中文显示乱码...
- 华为P20 Pro销售火爆卖断货?淘宝商家加价卖
- Spring Cloud Config统一管理微服务配置
- java支付宝支付_Java 高并发环境下的性能优化,揭秘支付宝技术内幕
- Tomcat无响应问题
- Vagrant常见问题汇总
- iphone在jsp显示时间会NAN解决办法
- 台式计算机怎么关闭无线网络,台式机无线网卡被禁用了如何解决
- 提供小图标(Icon)的网站(不定时更新)
- 99行Swift完成Markdown在线编辑服务器
- 安装CAD2006出现html,win7系统安装cad2006出现已终止CAD2006-Simplifieng安装的解决方法...
- MAC 下ifconfig看IP
- html微信图片自适应,微信小程序实现图片高度自适应
- Dev C++下载及使用
- 在RHEL6.0 X64系统中安装oracle 11g数据库及安装后设置
热门文章
- Excel表格统计满足两列条件的总数:countifs方法
- mysql的prepared statement
- 隐马尔可夫模型之Baum-Welch算法详解
- Ubuntu 18.04 LTS 安装wine 、exe程序安装和卸载
- 机器视觉-相机镜头光源介绍及选型-3.光源分类
- 大数据开发工程师都需要学什么大数据课程?
- ffmpeg去除水印
- 福禄克DTX-1800其配件DTX-CHA002通道适配器CHANNEL更换RJ45插座小记
- Arduino控制WS2812灯带(灯环)
- python简笔画程序_只用C++和Python,让你的简笔画实时动起来!