面向对象语言就意味着对象要占用内存空间,那么,java中随便new 出来的东西到底多大?还有,new出来的东西全都都放在heap上吗(有些真不是)?
more >>
LruCache在android3.1中加入,即android.util.LruCache,主要是作为一种合理的缓存策略的实现,用于替代原来的SoftReference。v4包提供了static version的实现,即android.support.v4.util.LruCache。
此外,还有DiskLruCache对应磁盘缓存,在OkHttp和Glide等开源项目中都有,可直接复制过来,改下包名直接用。这些类本质上都是对于Least Recently Used算法的实现。稍微看了下网上的博客,LruCache实际上就是利用了LinkedHashmap的accessorder来实现末位淘汰的。v4包里的LinkedHashmap就是java.util里面的,platform里的LinkedHashmap添加了一些方法。
more >>
glide的源码几个月前曾经拜读过,大致了解了其异步加载的实现原理。图片加载和网络请求很类似,就像当初看Volley,从一个Request —> CacheDispatch —> NetworkDispatcher —-> ResponseDeliver。优秀的轮子不仅执行效率高,同时具备高的扩展性。读懂源码其实只是第一步,往下应该是利用框架提供的扩展方案,再往后应该就是能够独立设计出一套类似的框架了。
写这篇文章时,Glide的版本是3.8
很早的时候就知道,OkHttp在io层面上的操作是由Okio代为完成的,所以实际意义上和Socket打交道的应该是Okio。而Okio又比传统的java io要高效。所以,在分析OkHttp之前,有必要针对Okio的一些方法进行展开,作为后面读写操作的铺垫。
Okio -> OkHttp -> Picaso -> Retrofit
Okio版本 1.13.0
OkHttp版本 3.8.0
tag:
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true