LruCache缓存机制
LruCache:
Android提供的使用了(Least Recently Used)近期最少使用算法的缓存类
内部基于LinkedHashMap实现
实现这个主要需要重写
- 构造时需要确定Cache的最大内存,一般通过
//获取程序最大可用内存int max = (int)Runtime.getRuntime().maxMemory();//取可用内存的四分之一做缓存int size = max/4;
sizeOf()
方法:在添加value到Cache时会被调用,需要返回添加进数据的字节大小在
put(key,value)
添加时先通过get(key)
判断是否已经有key对应的value存在
在内存缓存图片的简单实现:
public class MyLruCache extends LruCache<String, Bitmap> {private static MyLruCache myLruCache;private MyLruCache(int maxSize) {super(maxSize);}public static MyLruCache getMyLruCache() {if (myLruCache == null) {int maxMemory = (int) Runtime.getRuntime().maxMemory();int maxSize = maxMemory / 4;myLruCache = new MyLruCache(maxSize);}return myLruCache;}//每次存入bitmap时调用,返回存入的数据大小@Overrideprotected int sizeOf(String key, Bitmap value) {return value.getByteCount();}//添加public void add(String key, Bitmap bitmap) {if (get(key) == null) {put(key, bitmap);}}//获取public Bitmap getBitmap(String key) {return get(key);}}
转载于:https://www.cnblogs.com/jiy-for-you/p/7282023.html
LruCache缓存机制相关推荐
- 剖析Picasso中的内存缓存机制——LruCache
众所周知,Picasso是一个优秀的Android图片加载库.本篇并不讨论picasso的使用,而是来谈一谈picasso的缓存机制. 我们知道,目前主流的图片解决方案大部分都是三级缓存,即内存缓存. ...
- Android 缓存机制 LRUCache
1.缓存策略 缓存策略主要包含缓存的添加.获取和删除三类操作.删除缓存是因为不管是内存缓存还是硬盘缓存,它们的缓存大小都是有限的.当缓存满了之后,再想添加缓存就需要删除一些旧的缓存来添加新的缓存. L ...
- android lru进程队列,Android缓存机制——LruCache
一.Android中的缓存策略 Android的缓存,主要的就是内存缓存和硬盘缓存. 不管是内存缓存还是硬盘缓存,它们的缓存大小都是有限的.当缓存满了之后,再想其添加缓存,这个时候就需要删除一些旧的缓 ...
- Glide的缓存机制
Glide的缓存分为两个模块,一个是内存缓存,一个是硬盘缓存. 内存缓存的作用是防止应用重复将图片数据读取到内存当中: 硬盘缓存的作用是防止应用重复从网络或其他地方下载和读取数据. Glide的缓存K ...
- LeetCode实战:LRU缓存机制
背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Design and ...
- 深入浅出 MyBatis 的一级、二级缓存机制
一.MyBatis 缓存 缓存就是内存中的数据,常常来自对数据库查询结果的保存.使用缓存,我们可以避免频繁与数据库进行交互,从而提高响应速度. MyBatis 也提供了对缓存的支持,分为一级缓存和二级 ...
- LeetCode第 146 号问题: LRU 缓存机制
题目描述 运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制.它应该支持以下操作: 获取数据 get 和 写入数据 put . 获取数据 get(key) - 如果密钥 (ke ...
- LruCache缓存处理及异步加载图片类的封装
Android中的缓存处理及异步加载图片类的封装 一.缓存介绍: (一).Android中缓存的必要性: 智能手机的缓存管理应用非常的普遍和需要,是提高用户体验的有效手段之一. 1.没有缓存的弊端 ...
- android 视频的缩略图 缓存机制和 异步加载缩略图
在这次的工作开发项目中,涉及到一个视频缩略图的视频列表:这个在大家看来,制作视频缩略图就是两行代码就搞定的事.确实是这样的,百度一下,每个帖子都知道制作视频缩略图的方法,在这里确实也是一样的,但是我要 ...
最新文章
- python 数据比对 函数_1行代码实现Python数据分析:图表美观清晰,自带对比功能丨开源...
- nginx proxy_cache 缓存配置
- Opencv SolvePnP调用实战
- golang plugin模块的使用
- Anaconda 镜像源操作(查看配置删除)
- vSphere 故障排除之网络篇
- Java基础篇:如何使用instanceof
- Uboot下SPI FLASH的添加(SPI 控制器采用软件模拟的方式)
- Android HAL(硬件抽象层)介绍以及调用
- U盘的针脚板竟然掉了
- 黑暗欺骗恐怖游戏c++代码完整
- 局域网桌面监控软件_如何促进局域网监控软件在企业中的普及
- 错误:“应用程序无法启动,因为应用程序的并行配置不正确。请参阅应用程序事件日志,或使用命令行sxstrace.exe工具” 的解决
- 士不可以不弘毅,任重而道远
- Redis介绍--列表(LISTS)数据类型(六)
- 曝光中国女性的私密数据-广西富婆多,快上车!
- 请输入一个数字作为秒数,在页面按时间,分钟,秒的格式输出(如输入600,页面显示:0时10分0秒
- Python循环语句(while循环、for循环)
- 项目从Spring转到SpringBoot Migrating from Spring to Spring Boot
- 外贸订单管理系统搭建丨汇信
热门文章
- python实现项目的复制_Python之copy模块
- idea svn配置_IDEA 导入svn项目实践
- archlinux php imagemagick,Arch Linux服务器启用Imagemagick PHP扩展
- boostrap-table export 导出监听
- 百度网络推广总结大家在做页面标题优化时需注意的事项!
- python访问k8s的api_如何通过Python Kubernetes客户端连接microk8s API?
- android从放弃到精通 第五天 excellent
- vue编写messageBox,使用函数调用
- IxRmhOECiP
- 判断某个点是否在不规则图形内