Android应用开发之性能测试之TraceView

本文介绍Android性能测试工具TraceView的使用方法,包括如何通过代码采集数据及如何分析这些数据以定位性能瓶颈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.youkuaiyun.com/leverage_1229

        TraceView是Android平台下的性能测试工具,它以图形化的方式向我们展现待跟踪程序的性能,并且能具体到method。TraceView包含两个部分,一部分用于程序执行过程中采集数据,另一部分用于在程序执行完毕后对数据进行分析。

1采集数据

        用户可以选择激活或者取消实时数据采集功能。当该功能激活以后,TraceView进程就会记录下用户程序每一次的方法调用和耗时。并将数据保存到SDCard上的一个二进制文件中。

        在程序中调用android.os.Debug.startMethodTracing()方法启动实时数据采集,代码如下:

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //启动实时数据采集 "/sdcard/calc.trace"
        Debug.startMethodTracing("calc");
    }
    protected void onStop(Bundle savedInstanceState) {
        //停止实时数据采集
        Debug.stopMethodTracing();
        super.onStop();
    }

2分析数据

        把sdcard的二进制数据文件导出到电脑上,在Dos窗口上进入Android SDK的tools目录,然后执行命令:
        traceview c:\\calc.trace
        执行指令后将打开图形化分析界面。

        窗口的上半部分是时间轴面图(Timeline Panel),右上角的值为方法执行时间的总和。窗口的下半部分是对各个方法调用的汇总图(Profile Panel)。
        界面上方的尺子代表了MethodTracing的时间段(从Debug.startMethodTracing("")到Debug.stopMethodTracing()的时间)。

列的名称列的涵义
Name方法的名称
Incl %执行方法总时间在整个MethodTracing时间里所占百分比
Inclusive执行方法总时间
Excl %执行方法基本操作的时间(不包括调用子方法的耗时)在整个MethodTracing时间里所占百分比
Exclusive执行方法基本操作的时间(不包括调用子方法的耗时)
Calls+Rec执行方法的次数(如:"4+0"表示4次非递归调用,0次递归调用;"3/2"表示3次非递归调用,2次递归调用。)
Cpu Time执行方法的平均时间(即执行方法总时间/执行方法的次数)       
         注:如果方法A调用方法B,那么方法A称为方法B的"parents",方法B称为方法A的"children"。最下边的搜索框(Find:),可以进行方法类等搜索。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值