前面的内容请参见Android应用自动化测试-提纲。 本篇继续介绍Android SDK中的强大工具-Monitor。devices界面上方的工具栏如图,我们继续未尽的内容
Start Method Profiing
这是Monitor工具提供的又一个强大功能。在我们分析应用性能如CPU消耗、卡顿现象时非常有用。它其实调用的是Android SDK的traceview工具来进行分析。使用上我们选中需要分析的应用进程,执行工具栏上的Start Method Profiing开始trace,然后去操作应用中我们关注的流程,然后再点击下停止trace,这是Monitor会自动调用traceview并加载刚才Trace的结果
下面具体说下这个界面上的内容,traceview的面板分上下两个部分:
时间线面板以每个线程为一行,右边是该线程在整个过程中方法执行的情况
分析面板则是以表格的形式展示所有线程的方法的各项指标
时间线面板:
左边是线程信息,main线程就是Android应用的主线程,这个线程是每个应用都会有的,其他的线程可能因操作不同而发生改变.每个线程的右边对应的是该线程中每个方法的执行信息,左边为第一个方法执行开始,最右边为最后一个方法执行结束,其中的每一个小立柱就代表一次方法的调用,你可以把鼠标放到立柱上,就会显示该方法调用的详细信息。
分析面板:
名称 | 意义 |
---|---|
Name | 方法的详细信息,包括包名和参数信息 |
Incl Cpu Time | Cpu执行该方法该方法及其子方法所花费的时间 |
Incl Cpu Time % | Cpu执行该方法该方法及其子方法所花费占Cpu总执行时间的百分比 |
Excl Cpu Time | Cpu执行该方法所话费的时间 |
Excl Cpu Time % | Cpu执行该方法所话费的时间占Cpu总时间的百分比 |
Incl Real Time | 该方法及其子方法执行所话费的实际时间,从执行该方法到结束一共花了多少时间 |
Incl Real Time % | 上述时间占总的运行时间的百分比 |
Excl Real Time % | 该方法自身的实际允许时间 |
Excl Real Time | 上述时间占总的允许时间的百分比 |
Calls+Recur | 调用次数+递归次数,只在方法中显示,在子展开后的父类和子类方法这一栏被下面的数据代替 |
Calls/Total | 调用次数和总次数的占比 |
Cpu Time/Call | Cpu执行时间和调用次数的百分比,代表该函数消耗cpu的平均时间 |
Real Time/Call | 实际时间于调用次数的百分比,该表该函数平均执行时间 |
方法展开后,大多数有以下两个类别:
- Parents:调用该方法的父类方法
- Children:该方法调用的子类方法
如果该方法含有递归调用,可能还会多出两个类别:
- Parents while recursive:递归调用时所涉及的父类方法
- Children while recursive:递归调用时所涉及的子类方法
在应用存在卡顿等性能问题时,借助traceview,特别是方法调用cpu时间的分析,我们可以比较准确第定位到应用存在性能问题的方法调用。
stop process
这是个非常容易理解的功能,选中相应的进程,执行该操作,会强制终止该进程。类似android设备上应用管理的强制终止应用功能
Screen Capture
这个功能也很容易理解,会按照设备的分辨率获取设备上的当前界面到Monitor工具中展示。
Dump view Hierarchy for Ui automator
这又是一个非常有用的功能,特别是我们再做自动化测试时,更是经常需要使用。该功能其实是调用的Android SDK在API17以后提供的一个重要自动化测试框架UiAutomator的辅助工具UiAutomatorViewer,我们一般会单独使用该工具。Monitor中对该工具进行了集成。
UiAutomatorViewer可以获取当前设备界面上的所用控件元素树,并给出每个控件的属性值。我们在实施自动化时,经常需要利用该工具来确定元素的属性。
SysTrace
下一个工具栏按钮的作用是启动android systrace工具,来监视和跟踪Android系统的行为(trace)。它会告诉你系统都在哪些工作上花费时间、CPU周期都用在哪里,甚至你可以看到每个线程、进程在指定时间内都在干嘛。它同时还会突出观测到的问题,从垃圾回收到渲染内容都可能是问题对象,甚至提供给你建议的解决方案。
按照设定的trace时间,完成信息收集后,SysTrace工具会整合结果到一个html文件中,打开如图:
关于Systrace应用的详细说明可以参见官方的介绍文档 Analyzing UI Performance with Systrace
Trace OpenGL calls
Monitor中还提供了这个用于分析OpenGL应用性能的工具, 配置如图
网友评论