AI智能
改变未来

Android内存优化—内存优化总结


内存优化总结

内存问题

  1. 内存抖动:导致GC导致卡顿
  2. 内存泄漏:导致频繁GC,可用内存减少
  1. 内存溢出:导致OOM

工具排查

  1. AS中的Profiler查看内存情况,是否锯齿状,是否持续上升
  2. MAT排查
  1. LeakCanary排查泄漏

问题解决方案

抖动

  1. 禁止string拼接
  2. 使用优化后的数据结构,SparseMap,ArrayMap等
  1. 使用资源池复用
  2. 减少不必要的对象创建
  1. 在c++层进行虚拟机的空闲内存大小配置,需要兼容各个版本和ROM

泄漏

主要通过工具排查问题

也可以进行容灾处理,对GC进行监控或者对内存的触顶率进行监控,达到要求后,可在Activity的onDestory中对Activity对象空壳处理,循环view树进行图片等回收,避免内存持续增长

OOM

  1. 正确选择数据结构
  2. 避免枚举,枚举本身就占了24个字节
  1. Bitmap使用正确的分辨率
  2. 不用帧动画
  1. 使用webp
  2. 使用NDK,内存大户交给C++处理
  1. 代码中注意主动去销毁资源
  2. 谨慎使用多进程、第三方框架
  1. 不同机型可适当移除一些业务
  2. 避免大内存对象,比如在SP中存入大对象会导致该对象一直存在内存中

监控

  1. 美团的Probe,OOM监控
  2. Debug.startAllocCounting实验环境的GC监控
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Android内存优化—内存优化总结