@TOC
1. Bitmap 占用内存分析及常见优化
分析工具:AS3.0以上使用 Android Profile
,以下可以使用 Android Device Monitor
优化:
- 耗时操作可以通过
Rxjava
去切换到子线程处理 - 如果涉及到高斯模糊,从网络上下载的大图,根据ui需求,通过 Glide 重新调整其大小(这样减少高斯模糊的计算时间)
- 使用LruCache 缓存,根据不同机型分配 不同的缓存 大小
1.1 Lrucache 两个点记录
- 记得重写 Lrucache 的
sizeOf(K key, V value)
方法为缓存的单个对象的大小,不然默认为 1 - 内存大小可以根据不同手机等条件动态设置
Glide 的 MemoryCache
的缓存大小为:(一个屏幕图片大小=widthPixels*heightPixels*4)* 2
LruCache实际上就是一个 LinkedHashMap( 补充知识:LinkedHashMap是一个双向循环列表,不支持线程安全,LruCache对它进行了封装添加了线程安全操作),里面保存了一定数量的对象强引用
,
每次添加的