Adnroid 性能分析利器-traceview

 

问题背景:PP在测试机运行一段时间后出现手机发烫、卡顿、高CPU占有率的现象。如何去检查当前性能变化的...



问题背景:PP 在测试机运行一段时间后出现手机发烫、卡顿、高 CPU 占有率的现象。如何去检查当前性能变化的原因是什么,可以使用android系统分析工具-traceview

traceView 是Android 平台配备一个很好的性能分析的工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能。TraceView是 Android 平台特有的数据采集和分析工具,它主要用于分析 Android 中应用程序的 hotspot。TraceView 本身只是一个数据分析工具,而数据的采集则需要使用 AndroidSDK中的 Debug 类或者利用 DDMS 工具。

一般有两种方式:

A、调用Debug类

在开始调试的地方,如Activity的OnCreate函数,添加

Debug.startMethodTracing("tracefilename");

在结束调试的地方,如Activity的OnCreate函数,添加;

Debug.stopMethodTracing();

       之后运行你的app一段时间并退出会在sd卡根目录生成tracefilename.trace这个log文件,记录这段时间内的运行信息。将日志文件pull到PC端,cmd到android sdktools文件夹内(或绑定sdk tools目录到系统path内),运行traceviewtracefilename.trace即可打开TraceView分析界面

B、调用DMMSDDMS 中 TraceView 使用示意图如下,调试人员可以通过选择 Devices 中的应用后点击 

按钮 Start Method Profiling(开启方法分析)和点击 
Stop MethodProfiling(停止方法分析)



开启方法分析后对应用的目标页面进行测试操作,测试完毕后停止方法分析,界面会跳转到DDMS 的 trace 分析界面,如下图所示:



TraceView 界面比较复杂,其 UI 划分为上下两个面板,即 Timeline Panel(时间线面板)和 Profile Panel(分析面板)。上图中的上半部分为 Timeline Panel(时间线面板),Timeline Panel 又可细分为左右两个 Pane:

•   左边 Pane 显示的是测试数据中所采集的线程信息。由图可知,本次测试数据采集了 main 线程,传感器线程和其它系统辅助线程的信息。

•   右边 Pane 所示为时间线,时间线上是每个线程测试时间段内所涉及的函数调用信息。这些信息包括函数名、函数执行时间等。由图可知,Thread-1412 线程对应行的的内容非常丰富,而其他线程在这段时间内干得工作则要少得多。

•   另外,开发者可以在时间线 Pane 中移动时间线纵轴。纵轴上边将显示当前时间点中某线程正在执行的函数信息。

上图中的下半部分为 Profile Panel(分析面板),Profile Panel 是 TraceView 的核心界面,其内涵非常丰富。它主要展示了某个线程(先在 Timeline Panel 中选择线程)中各个函数调用的情况,包括 CPU 使用时间、调用次数等信息。而这些信息正是查找 hotspot 的关键依据。所以,对开发者而言,一定要了解 Profile Panel 中各列的含义。下表列出了 Profile Panel 中比较重要的列名及其描述。


    关注 搜狗测试


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册