0%

起因

RV在几乎在所有的有界面的Android应用都会使用到,可以说日常开发中RV是老熟人天天见,可是仔细想想熟悉它的什么呢?熟悉的是怎么去使用,对于它的内部原理太过陌生。曾经多次点看它的源码,但都迷失在成千上万的代码与注释中。幸好网上还有很多关于RV优秀的文章,让我能抓住RV的一些重点,其中一个重点就是它对viewHolder的回收与复用机制,关于这一块网上很多文章已经分析过了,Recycler、四级缓存等等,但我还是有一个疑问,在什么操作下会将什么viewHolder放到哪一个缓存?由于RV源码太复杂了😭,下面就带着这个疑问片面地分析下它的缓存设计。

阅读全文 »

起因

在项目开发中发现很多数据都是用SharedPreferences做本地保存的,操作SharedPreferences只需要建立Editor,然后这个向这个Editor对象put各种各样的键值对,最后调用它的commit或者apply保存信息即可,非常简单方便。同时注释文档中说明commit是同步的而apply是异步的,说明SharedPreferences是支持多线程的,那就有些疑惑了:

  • 假设要保存的数据很多,apply异步线程保存,同时主线程再去读取数据,读取数据会不会等待?
  • 在异步保存时退出Activity,退出应用有影响吗?
    阅读全文 »

简介

CrossWalk是一款为HTML应用提供运行时环境的开源项目,从Android开发的角度讲Crosswalk可以用来替代WebView显示网页,在应用重度依赖网页时可以使用Crosswalk解决设备碎片化问题。直接将Crosswalk的库包导入到项目中即可像使用WebView一样使用,这种模式在Crosswalk项目中叫内嵌模式,但这样有一个问题由于Crosswalk库包太大集成后的应用体积太大,为此Crosswalk为Android设备提供了另外两种使用方式,共享模式下载模式。虽然Crosswalk项目
已经在17年停止维护,但它这种动态加载使用的方式仍值得我学习。本文将介绍Crosswalk的三种加载方式。

阅读全文 »