性能优化检测

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