30.7性能优化工具
1 选择Analyze->InspectCode,可以使用Lint对代码、布局文件和资源文件,从语法、内存使用、性能和冗余性等方面进行静态分析,结果如下:
2 选择Tools->Android->AndroidDevice Monitor在此界面中,
可以选择Hierarchy Viewer进行布局优化
选择DDMS->AllocationTracker进行内存优化
选择DDMS,然后从左边的进程列表中,选择一个进程,接着点击上面的“StartMethod Profiling”按钮(红色小点变为黑色即开始运行),进行运行速度优化
属性名 含义
name 线程中调运的方法名
InclCPU Time 当前方法(包含内部调运的子方法)执行占用的CPU时间
ExclCPU Time 当前方法(不包含内部调运的子方法)执行占用的CPU时间
InclReal Time 当前方法(包含内部调运的子方法)执行的真实时间,ms单位
ExclReal Time 当前方法(不包含内部调运的子方法)执行的真实时间,ms单位
Calls+RecurCalls/Total 当前方法被调运的次数及递归调运占总调运次数百分比
CPUTime/Call 当前方法调运CPU时间与调运次数比,即当前方法平均执行CPU耗时时间
RealTime/Call 当前方法调运真实时间与调运次数比,即当前方法平均执行真实耗时时间
对于UI性能的优化还可以选择系统自带的GPU过度绘制工具来进行分析。选择设置->开发者选项->调试GPU过度绘制(不同设备可能位置或者叫法不同)可以看见如下图:
显示过度绘制区域这项是在屏幕上用不同的颜色表示过度绘制的程度
显示过度绘制计数器这项是在屏幕左下角显示一个数字表示过度绘制的程度,如3.74x(这项功能在4.4以上的系统中被取消了)
两者对应关系:
颜色 含义
蓝色 1.XXx过度绘制
绿色 2.XXx过度绘制
淡红色 3.XXx过度绘制
红色 4.XXx(+)过度
数字越大,过度绘制情况越严重,最好数字不要超过3.00x,也就是如果选择显示过度绘制区域这项功能,屏幕上没有红色区域。
1 ProGuard:可以在编译时,剔除无用的代码和资源文件。
2 LeakCanary:内存泄露分析工具,把这个库集成在APK里后,使用APK的时候,如果有内存泄露的情况发生,会立即显示在哪个界面发生的。
项目网址:https://github.com/square/leakcanary
3 OneAPM:可以监控每个页面的加载速度、APP向服务器发送的每个请求的响应速度和流量等性能。