性能优化
主要以这四个方向进行优化:
- 稳定
- 流畅
- 耗损
- apk 瘦身
稳定
- 避免内存溢出
- 异常捕获反馈机制
流畅
卡顿的原因:
- 布局复杂
- 动画过多
- View 的过度绘制
- UI 耗时操作
- 频繁 GC
耗损
- 减少没必要的网络访问或合并相关网络请求
- 加载合适尺寸的图片而非原图
apk瘦身
- 删除没必要的资源文件或依赖包
- 使用 webp 替换 png、jpg等,或对于图片进行适当压缩
- 开启混淆
- 使用 svga、lottie 代替 gif 或帧动画
- 插件化
内存优化
主要以这五个方向进行优化:
- 内存泄漏
- 图片分辨率
- 图片压缩
- 缓存池
- 内存抖动
内存泄漏
- 适时关闭缓存区。如各种 IO 操作结束后进行 close
- 不再使用对象后,将对其的引用进行断开。
- 单例 static 存储 context
- 内部类持有外部引用
- 观察者模式,订阅后,不再使用该对象时,要取消订阅
图片分辨率
- 不同尺寸的图片放在相应的分辨率文件夹,不能错发
- 创建 bitmap 时,根据不同场景灵活使用不同色彩模式,如:ARGB8888、ARGB4444、RGB565
图片压缩
- 加载图片时,根据 View 的大小对于原图进行压缩后再加载
缓存池
- 对于图片使用三级缓存
- 对于线程使用线程池
内存抖动
- 避免在 draw 中创建对象
- 对于图片使用三级缓存
- 对于线程使用线程池
这是我的公众号,关注获取第一信息!!欢迎关注支持下,谢谢!