学习笔记之——内存溢出OOM问题

时间:2021-05-17 20:55:24
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中初始化     学习笔记之——内存溢出OOM问题 3) 在布局中使用SimpleDraweeView替换ImageView     注意:必须明确指定宽高,不能用wrap_content     学习笔记之——内存溢出OOM问题 4) 为draweeView设置url,显示图片     学习笔记之——内存溢出OOM问题     学习笔记之——内存溢出OOM问题
4. 服务端返回大量较大图片 学习笔记之——内存溢出OOM问题 问题分析:在内存中下载图片,图片越大占内存越大 解决思路:首先将图片下载到SDCard中,然后边读边压缩      学习笔记之——内存溢出OOM问题