一、
跟踪视图工具概述
Traceview是安卓平台上的一个优秀的性能分析工具。 您可以使用图形界面了解跟踪的程序的性能,并具体访问method。
二、
跟踪视图工具的使用方法
跟踪视图有三种启动方法。 分别进行说明。
1、用代码启动
可以添加到代码中
debug.startmethodtracing (" tracelog " )
Debug.stopMethodTracing (;
要使用此方法,必须打开APP应用程序的AndroidMainfest.xml中SD卡的读写权限
执行APP应用程序时,会在SD卡下生成Tracelog文件并使用adb
pull将该文件复制到XP系统,并在android sdk的工具目录中运行跟踪视图
Tracelog会弹出一个可以分析APP应用程序性能瓶颈的图形界面
2、用Eclipse启动
Eclipse将启动traceview及其简单性,并针对需要在DDMS中进行分析的APP应用程序单击以下按钮
如果在需要停止traceview的地方单击同一按钮,Eclipse会自动弹出一个类似1的图形界面
3.ADB命令行启动
ADB外壳am
性能分析开始
ADB外壳am
轮廓停止
PROCESS_ID是APP应用程序的进程号,可以通过ps命令获取。 TRACE_FILE是要保存的Trcaelog文件。
执行上述命令将生成相应的TRACE_FILE并使用adb
pull将该文件复制到XP系统,并在android sdk的工具目录中运行跟踪视图
Tracelog会弹出一个可以分析APP应用程序性能瓶颈的图形界面
三、
跟踪视图界面说明
上述步骤生成的图形界面如下。
1、时间轴面板:
每个线程的执行显示在每个随时间逐渐向右移动的自己身上。 不同的方法用不同的颜色表示。 下面的细线显示了所选方法的调用时间。
2、配置文件面板:
此表说明了the inclusive and exclusive
times和他们所占比例。
Exclusive time是函数本身的基本操作时间,子函数调用除外。
Inclusive time是包括子函数调用在内的函数调用所用的时间。
第1列:“name”表示函数名称。
双击函数名称,上半部分的界面将显示时间线的前视图(Timeline
Panel (看他消费的时间段。 (用粗线表示。
双击函数名称左侧的以将其展开,可以看到该函数的" parents "和" children "
第2列:“incl %”表示函数的不包含
时间在整个方法跟踪时间中所占的百分比。
第3列:“不包含”表示不包含时间。
第4列:“excl %”表示函数的Exclusive
时间在整个方法跟踪时间中所占的百分比
比较。
第5列: " exclusive "表示Exclusive time。
第6列: " calls recur calls/total "表示对函数的调用次数,包括递归调用。
列7 )在新版本(例如2.2 )中,“time/calls”表示平均调用时间(即Inclusive )
时间/
总呼叫)。
注意,当函数a调用函数b时,函数a被称为函数b的“parents”,函数b被称为函数a的“children .”
四、
使用跟踪视图工具实例
本例以安居客选择一个城市的一套房源进行收藏的过程为例,详细说明了如何使用TraceView工具。
操作步骤如下。
1、启动Eclipse并连接模拟器;
2、模拟器启动安居客APP,打开DDMS,选择安居客流程;
3、单击“Start profile method”按钮;
4、安居客中开一间房,待房间被打开后,看大图进行收藏;
5、点击DDMS上的stop profile method按钮,Eclipse会自动弹出图形界面。
按平均呼叫时间(time/calls )从大到小排序。 请参照下图:
如上图所示,detailactivityforpicture.on creat )函数的平均调用时间为4.034秒,总共调用一次,调用时间相对较长,请看被调用的子函数。 其中,子函数detailactivityforpicture.initinfo () )的调用时间为0.9s。 如果需要相对较长的时间并优化性能,则需要优化(initInfo ) )的运行时间。
接下来,如图所示,我们来看一下detailactivityforpicture.initinfo () )函数的子函数。
进一步分析,initFavoriteButton () )的调用时间最长为0.4s。 依次调查,请参照下图。
您可以优化dialog box util.getfavoritewindow ()和FavoritePropertyModel .函数。 这些性能分析结果可供开发人员参考,并可根据目标优化性能。