android缓存机制
2016-10-25 10:30
281 查看
一般android会采用缓存机制,内存缓存采用LruCache,存储缓存采用DiskLruCache
LruCache内部维护了一个LinkedHashMap
同时是线程安全的
一般存储空间为当前运行空间的1/8 单位为KB
LruCache 3.1以后源码可见
DiskLruCache 一般存储空间为50M key采用url经过Md5加密,防止url中的特殊字符,value为bitmap,对外提供get,put方法
LruCache内部维护了一个LinkedHashMap
/** * @param maxSize for caches that do not override {@link #sizeOf}, this is * the maximum number of entries in the cache. For all other caches, * this is the maximum sum of the sizes of the entries in this cache. */ public LruCache(int maxSize) { if (maxSize <= 0) { throw new IllegalArgumentException("maxSize <= 0"); } this.maxSize = maxSize; this.map = new LinkedHashMap<K, V>(0, 0.75f, true); }
同时是线程安全的
synchronized (this) { mapValue = map.get(key); if (mapValue != null) { hitCount++; return mapValue; } missCount++; } synchronized (this) { createCount++; mapValue = map.put(key, createdValue); if (mapValue != null) { // There was a conflict so undo that last put map.put(key, mapValue); } else { size += safeSizeOf(key, createdValue); } }
一般存储空间为当前运行空间的1/8 单位为KB
LruCache 3.1以后源码可见
DiskLruCache 一般存储空间为50M key采用url经过Md5加密,防止url中的特殊字符,value为bitmap,对外提供get,put方法
相关文章推荐
- Android 图片三级缓存机制工具类封装
- android WeakReference(弱引用 防止内存泄漏)与SoftReference(软引用 实现缓存机制(cache))
- Android:手把手教你构建 WebView 的缓存机制 & 资源预加载方案
- Android图片加载框架最全解析(三),深入探究Glide的缓存机制
- Android的Drawable缓存机制源码分析
- Android缓存机制详解之硬盘缓存DiskLruCache
- 从源代码分析Android Universal ImageLoader的缓存处理机制
- android 从源代码分析Android-Universal-Image-Loader的缓存处理机制
- Android WebView缓存机制详解
- Android 中的缓存机制与实现
- Android WebView缓存机制详解
- Android ListView 与 RecyclerView 对比浅析--缓存机制
- Android缓存机制&一个缓存框架推荐
- Android 利用缓存机制实现文件下载
- android中Resources的资源缓存机制
- Android性能优化之ListView缓存机制
- Android 缓存原理(一)----ListView缓存机制
- Android 图片的缓存机制分析
- android本地图片加载器,LruCache缓存机制
- Android中关于Volley的使用(五)缓存机制的深入认识