KV-存储之mmkv
在平时的业务中,需要用到轻量级存储业务中的数据(例如设置数据存储),绝大多数时候 Anroid 管法提供的 SharedPreferences 组件就能实现,但针对一些需要高效的场景它就不那么使用了,不适合存储大量数据、多线程操作的不安全性、数据明文不安全性,以及不支持多进程之间的调用等各种问题。
MMKV的诞生就是为了解决以上的问题,本文主要对 MMKV 源码的学习知识点进行一些总结。
在平时的业务中,需要用到轻量级存储业务中的数据(例如设置数据存储),绝大多数时候 Anroid 管法提供的 SharedPreferences 组件就能实现,但针对一些需要高效的场景它就不那么使用了,不适合存储大量数据、多线程操作的不安全性、数据明文不安全性,以及不支持多进程之间的调用等各种问题。
MMKV的诞生就是为了解决以上的问题,本文主要对 MMKV 源码的学习知识点进行一些总结。
最近在研究 Android 屏幕显示与渲染相关的内容,平时经常看到这些类 ViewRootImpl
、Choreographer
、Surface
、 SurfaceFlinger
等,知道它们都用于屏幕渲染相关,但对它们细节了解较少,相关的文章也比较多,不需要自己完全重新再编写一份,于是对相关内容进行一个总结,
主要来源:《Android屏幕刷新机制—VSyncChoreographer 全面理解》,这篇博客是我认为是目前看到过最好的一篇,文章由浅入深比较好理解。不过文章里面图片链接资源已经失效,为以后复习相关知识点,在此将其整理删除冗余内容,并对图片资源进行更新。
此前我负责的 SDK 已集成多个司内业务,一切运行正常,最近在接入到一些游戏项目中的时候发现存在比较多关于 libc.so 的 crash,在游戏中某个场景会使用SDK 进行逻辑处理,在部分手机会在短时间就直接 Crash,且集中在性能比较好的手机中。经过一番折腾,最后被定位在了一个跟 SDK 没有什么关系的地方:pthread_key_t
最近在 Github 看到这一篇将程序员一直需要使用的非技术核心能力进行了总结,深受里面内容的启发,语言、框架都是会过时的,但有些技能无论是什么语言或者框架都是通用的,如果要在这个行业持续深根,那么这些非技术能力是必备的且实用的。本文在原文上进行翻译,并对文中提到部分专业术语进行了解释,以及对指向外部链接的文档内容作了一些简单的概述,希望能帮助到查看此文档的人。