1. 场景
项目中多个页面有较多图片
2. 思路
1) 延迟加载
2) 内存缓存
3) 外存缓存
4) 缓存删除策略 LruCache
5) 当某个对象不需要时,释放内存
6) 使用库 Fresco
7) 减少或取消内存缓存
例如:详情页面,较大图片
8) 不可见的页面,暂时清除内存缓存,当重新可见时,刷新页面
9) 首先将大图下载到SDCard中,再边读边压缩
3. Fresco使用步骤
功能:类似于UIL的图像处理库,性能强大
优势:使用共享内存 C++
https://github.com/facebook/fresco
http://fresco-cn.org/docs/index.html
使用步骤
1) 依赖库fresco
2) 在Application中初始化
3) 在布局中使用SimpleDraweeView替换ImageView
注意:必须明确指定宽高,不能用wrap_content
4) 为draweeView设置url,显示图片
4. 服务端返回大量较大图片
问题分析:在内存中下载图片,图片越大占内存越大
解决思路:首先将图片下载到SDCard中,然后边读边压缩
相关文章
- 读书笔记——《深入理解Java虚拟机》系列之Java内存区域与常见内存溢出异常
- matlab学习笔记之求解线性规划问题和二次型问题
- Python学习笔记之编码问题 unicode、encode、decode
- 《深入理解Java虚拟机学习笔记之垃圾收集器与内存分配策略》
- 深入理解Java虚拟机读书笔记之Java内存区域与内存溢出异常
- 《深入理解Java虚拟机学习笔记》之JAVA内存区域与OutOfMemoryError
- 深入理解java虚拟机学习 笔记 第二章 java 内存区域和内存溢出异常
- 嵌入式linux学习笔记1—内存管理MMU之虚拟地址到物理地址的转化
- Kafka技术专题之「性能调优篇」消息队列服务端出现内存溢出OOM以及相关性能调优实战分析
- 《深入理解Java虚拟机》学习笔记(第二章 Java内存区域与内存溢出异常)