从图中的关系可得知,对于内存缓存主要考虑的是:缓存空间大小,缓存时图片对象的大小,缓存图片存在时间长短,缓存图片的顺序,

即时间,空间,大小,顺序

MemoryCache:定义基本操作

BaseMemoryCache:Reference引用,key:图片对象,value:图片引用

LimitedAgeMemoryCache:
1.缓存大小不受限,强引用,key:图片对象,value:图片放入时的当前系统时间
2.当图片对象超过其能生存的最长时间,会被删除

LruMemoryCache: 系统LruCache的精简版

WeakMemoryCache:对缓存的图片使用WeakReference

LimitedMemoryCache(抽象类):
1.有限的缓存,强引用,双向列表 value:图片
2.当缓存超过限制时,会按照先进先出的规则清除缓存的图片对象
3.但是删除的对象仍然可存在BaseMemoryCache的软引用中(会随时被GC)

LRULimitedMemoryCache:
1.有限的缓存,强引用,key:图片对象,value:图片使用次数
2.当缓存超过限制时,会删除使用次数最少的对象
3.但是删除的对象仍然可存在BaseMemoryCache的软引用中(会随时被GC)

LargestLimitedMemoryCache:
1.强引用,key:图片对象,value:图片的大小
2.当缓存控件已满时,会删除图片中最大的对象-->value
3.但是在仍然存在BaseMemoryCache的软引用中(会随时被GC)

UsingFreqLimitedMemoryCache:
1.有限的缓存,强引用,key:图片对象,value:图片的大小
2.当缓存超过限制时,会删除最近最少使用的对象
3.但是删除的对象仍然可存在BaseMemoryCache的软引用中(会随时被GC)

FIFOLimitedMemoryCache:
1.有限的缓存,强引用,双向列表 value:图片
2.当缓存超过限制时,会按照先进先出的规则清除缓存的图片对象
3.但是删除的对象仍然可存在BaseMemoryCache的软引用中(会随时被GC)

Android开源框架:Universal-Image-Loader解析(二)MemoryCache的更多相关文章

  1. Android开源库--Universal Image Loader通用图片加载器

    如果说我比别人看得更远些,那是因为我站在了巨人的肩上.   github地址:https://github.com/nostra13/Android-Universal-Image-Loader 介绍 ...

  2. Android 开源框架Universal-Image-Loader完全解析(二)--- 图片缓存策略详解

    转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/26810303),请尊重他人的辛勤劳动成果,谢谢! 本篇文章 ...

  3. Android 开源框架Universal-Image-Loader全然解析(二)--- 图片缓存策略具体解释

    转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/26810303),请尊重他人的辛勤劳动成果,谢谢! 本篇文章 ...

  4. Android 开源框架Universal-Image-Loader完全解析(三)---源代码解读

    转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/39057201),请尊重他人的辛勤劳动成果,谢谢! 本篇文章 ...

  5. Android 开源框架Universal-Image-Loader学习

    Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用 Android 开源框架Universal-Image-Loader完全解析(二)--- 图片 ...

  6. Android——开源框架Universal-Image-Loader + Fragment使用+轮播广告

    原文地址: Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用 Android 开源框架Universal-Image-Loader完全解析(二) ...

  7. [转]Android开源框架ImageLoader的完美例子

    Android开源框架ImageLoader的完美例子 2013年8月19日开源框架之Universal_Image_Loader学习 很多人都在讨论如何让图片能在异步加载更加流畅,可以显示大量图片, ...

  8. 值得推荐的android开源框架

    1.volley 项目地址https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载: (2) 网络请求的排序(scheduling) ...

  9. 6个值得推荐的Android开源框架简介(转)

    虽然我们在做app的时候并不一定用到框架,但是一些好框架的思想是非常有学习价值的 1.volley 项目地址 https://github.com/smanikandan14/Volley-demo  ...

  10. android开源框架

    1.volley 项目地址 https://github.com/smanikandan14/Volley-demo (1)  JSON,图像等的异步下载: (2)  网络请求的排序(scheduli ...

随机推荐

  1. MySQL DDL 整理

    DDL is Data Definition Language statements. Some examples:数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言 -- 清空表内容 T ...

  2. centos7查看端口命令

    查看Centos端口命令: # netstat -lntp #查看监听(Listen)的端口# netstat -antp #查看所有建立的TCP连接其他关于查看服务器网络信息命令:1.查看Linux ...

  3. MySQL问题记录--Can't connect to MySQL server on localhost (10061)解决方法

    本文mysql的安装环境为win7 64位,mysql版本为MySQL5.7 问题描述:在命令行输入 mysql -u root -p 登录mysql,返回"Can't connect to ...

  4. ios cordova报gap://ready 弹出框,一直弹

    The iOS app was not working because there was a plugin missing: https://github.com/apache/cordova-pl ...

  5. js工作中日常问题集中

    1.判断问题 如果type存在就设置type的值为type,否则设置type为0: 原始的写法,使用 if else:if(type){type = type} 使用三元操作符:type : type ...

  6. js判断是手机还是电脑访问网站

    js判断是手机还是电脑访问网站                               <script type="text/javascript"> <!- ...

  7. [转]JavaScript快速检测浏览器对CSS3特性的支持

    转自:https://yuguo.us/weblog/detect-css-support-in-browsers-with-javascript/ ------------------------- ...

  8. maven私服搭建(centOS6.5)

    maven的好处和私服的应用本文不赘述,私服搭建如下: MAVEN 私服搭建(centOS 6.5 环境) 1.  准备环境,搭建centOS6.5系统环境,略 2.  准备对应的软件包如下: A. ...

  9. java 文件按行读取

    /*代码写的可能有点累赘里面的好多东西写的不太好 还望各位大佬能提点一二,不胜感激*/package com.zzp.fileopration;import java.io.*;/** * Creat ...

  10. Mysql Innodb 引擎优化-内存、日志、IO、其他相关参数

    介绍: InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎.InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读.这些特色增加 ...