美文网首页测试、成长、路Android技术知识Android知识
Android SDK中的强大工具-Monitor(三)

Android SDK中的强大工具-Monitor(三)

作者: 城下秋草 | 来源:发表于2017-02-05 19:17 被阅读237次

    前面的内容请参见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应用性能的工具, 配置如图

    相关文章

      网友评论

        本文标题:Android SDK中的强大工具-Monitor(三)

        本文链接:https://www.haomeiwen.com/subject/ffveittx.html