性能优化检测
1、如何测量每个函数的执行时间
1.1 Debug
Debug.startMethodTracing()
fun()
Debug.stopMethodTracing()
可以生成一个.trace文件在手机文件夹中,找到文件拖到studio中就可以查看文件了,可以看到函数执行时间
1.2 Profiler
打开Profiler->cpu->点击record-->点击stop--->查看Profiler
比如我们要查看testFunTime()的执行时间。
在搜索框里搜索函数名
1.3 AOP切面编程
可以自定义注解,然后再需要检测函数前加上注解,ExeTime就是自定义的注解,测量onCreate的时间的。
2、UI优化
首先看下CPU\GPU工作
CPU:经过view三大流程之后,cpu把控件转换为内存中的多边图形和纹理
cpu通过openGL接口将纹理数据传给GPU
GPU:栅格化(像素)。
从CPU角度来说就是要 优化布局。减少不必要的布局,层级等
从GPU角度来说可以避免过度绘制,去掉window默认背景,自定义View中clipRect(),减少嵌套,使用merge减少层级,viewStub延迟加载等。
3、ANR
3.1 定位
3.2 避免ANR
4