性能问题
- 内存泄漏:分配出去的内存(一些可达的,无用对象)无法回收。可以借助MAT内存泄漏分析工具分析。
- 内存溢出:程序要求的内存超出了系统所能分配的内存范围。内存泄漏时内存溢出的一种诱因,也有其他原因造成内存溢出。
- ANR:过多使用CPU资源,执行大量耗时任务,导致手机卡顿甚至无响应。我们可以通过产生的traces.txt定位产生ANR的问题原因。
性能优化方法
布局优化
减少无用布局和层级,用一些低耗能ViewGroup减少嵌套,采用按需加载的ViewStub标签。
绘制优化
View的三大绘制方法避免大量变量和耗时操作
内存泄漏优化
导致原因有静态变量,单例模式,属性动画没有停止,内部类持有外部类引用等,所以对应的注意静态变量的引用对象,在onDestory方法内要停止动画,使用静态内部类代替内部类。
响应速度优化
采用异步处理耗时操作,降低异步操作的频率(滑动列表停止时再加载)