Android中图片的三级缓存
来源:互联网 发布:java宠物商店项目代码 编辑:程序博客网 时间:2024/06/06 08:38
1.咱们先说说为什么要使用图片的三级缓存机制
移动端app显示的图片还是蛮多的,如应用商场商品的图片。如果不进行三级缓存机制的处理,对用户来说是一个很大的损失,现在数据流量还是蛮贵的。
2.什么是三级缓存机制
网络缓存:不优先加载,加载慢,费流量
本地缓存:次优先加载, 加载速度快
内存缓存:优先加载,加载的速度超快。
当访问网络的时候,首先要判断内存里是否有 这个缓存如果有就加载显示,如果没有就看本地缓存是否有该缓存,如果有加载显示,如果没有进行网络请求。
3.网络缓存简单就是进行网络请求,本地缓存就是就该链接的内容保存到本地,这里我们说的重点是内存缓存。
内存缓存注意的一个点就是防止内存溢出的问题。
为什么会造成内存溢出呢?? 因为手机系统为应用提供的内存是16M或24M,不过不同手机品牌的手机分配的内存大小不一样。
android系统加载图片的时候是解析图片的像素信息,然后将每一个像素信息保存到内存中。
图片大小=图片的总像素*每个像素点的大小
例如一张1920x1080的JPG图片,在Android 系统中是以ARGB格式解析的,即一个像素需占用4个字节,图片的大小=1920x1080x4=7M
实现方法:通过hashMap<string ,Bitmap> 键值对来保存图片,key为URL,bitmap为要保持的信息。强引用很容易造成内存的泄露。我们采用弱引用。
通过hashMap<String, SoftReference<Bitmap>>为引用对象,(垃圾回收器会自动回收软引用对象)但是从系统2.3以后系统会优先考虑回收弱引用的对象。所以我们要用
软引用对象,LruCache<String,Bitmap> 使用最少最近使用算法,会将内存控制在一定的大小,超出部分,采用最近最少使用算法进行回收。
- Android中图片的三级缓存
- Android中图片的三级缓存机制
- Android中图片的三级缓存
- Android中图片的三级缓存策略
- Android开发中图片的三级缓存
- Android中图片的三级缓存
- Android开发中图片的三级缓存
- Android中图片的三级缓存策略
- Android中图片的三级缓存详解
- Android中图片的三级缓存
- Android中图片的三级缓存
- Android中图片的三级缓存
- Android中图片的三级缓存
- Android中图片的三级缓存详解
- Android中图片的三级缓存
- Android中图片的三级缓存
- Android中图片的三级缓存
- Android图片的三级缓存
- ios Masonry官方使用教程翻译
- 基础题目选解_字符串(QWERTY,TEX括号 , 周期串)
- 异常 -- Cause: java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符
- 获取某个对象的x、y坐标
- 走迷宫最短步数--BFS
- Android中图片的三级缓存
- PropertySourcesPlaceholderConfigurer读取properties信息文件配置
- 场景中self其实就相当于Java,C++中的this对象
- UML-类图2
- 逆序对
- KNN算法原理与实现
- 方法,构造方法,抽象方法的区别
- linux(4)
- <高仿微信>我的高仿微信