一、TraceView简介

TraceView是AndroidSDK里面自带的工具,用于对Android的应用程序以及Framework层的代码进行性能分析。

TraceView是图形化的工具,最终它会产生一个图表,用于对性能分析进行说明。

TraceView可以跟踪到具体的Method

二、TraceView的原理

TraceView通过修改code,在需要调试的起始位置加入调试函数,程序运行之后会在SD的根目录下产生*.trace文件来保存运行时的数据,然后把*.trace文件考到pc机上,通过traceview命令对*.trace文件进行分析。

二、TraceView的使用

TraceView使用的前提是无论手机还是模拟器,都要有SD卡的支持,因为它产生的数据文件将会存到SD卡上。对于手机需要插入SD卡,对于模拟器要在建立/启动模拟器的时候加入SD卡的支持就可以了。

需要TraceView起作用,需要在对code进行修改。具体修改内容如下:

只要在打算调试的开始位置和结束位置加上相应的函数就可以,至于调试的起始位置的选择需要根据具体情况而定。

通过命令traceview *.trace对数据文件进行分析。

打开的数据文件如下:

看到界面是不是晕了啊!:原来:

在traceview的右半部统计字段中:

Exclusive: 同级函数本身运行的时间

Inclusive 就是说除统计函数本身运行的时间外再加上调用子函数所运行的时间

Name:列出的是所有的调用项,前面的数字是编号,展开可以看到有的有Parent 和Children子项,就是指被调用和调用。

Incl: inclusive时间占总时间的白分比

Excl: 执行占总时间的白分比。 
Calls+Recur Calls/Total: 调用和重复调用的次数 
Time/Call: 总的时间。(ms)

Incl Cpu Time% : 函数本身运行的cpu时间占总时间的百分比

Incl Cpu Time     : 函数本身运行的cpu时间

Excl Cpu Time% : 函数本身运行的cpu时间 + 函数调用了进程的cpu时间 占总时间的    百分比

Excl Cpu Time    : 函数本身运行的cpu时间 + 函数调用了进程的cpu时间

Incl Real Time% :函数本身运行的real时间占总时间的百分比

Incl Real Time   :函数本身运行的real时间

Excl Real Time%:函数本身运行的cpu时间 + 函数调用了进程的real时间 占总时间的    百分比

Excl Real Time    :函数本身运行的cpu时间 + 函数调用了进程的cpu时间

Calls + RecurCall/Total:函数总的调用次数

Cpu Time/Call      :总的Cpu时间与总的调用次数之比

Real Time/Call     :总的Real时间与总的调用次数之比

转自:http://blog.163.com/zhou_411424/blog/static/197362156201381264158793/

TraceView简单使用方法的更多相关文章

  1. MySQL笔记-最简单的方法来解决找不到mysqld.sock文件的问题

    首先,环境:ubuntu 14.04,采用apt-get的方式安装的,手动安装可能路径设置稍有区别. 1.安装MySQL后,用命令行首次启动时发现找不到Mysqld.sock文件,提示: ERROR ...

  2. mfc显示静态图片最简单的方法

    一致都是研究如何调用opencv显示动态图片,但是很多时候在显示图标的时候,都是需要显示静态图片,现在将最简单的方法总结下: 1.添加picture控件 2.添加资源,要求为bmp 3.修改属性 结果 ...

  3. ECshop设置301最快捷最简单的方法

    ECshop设置301最快捷最简单的方法 在 init.php中加入以下代码 if (strtolower($_SERVER['SERVER_NAME'])!='www.fz1688.com') { ...

  4. git 的简单使用方法

    git 的简单使用方法1. 服务器 安装完成2. ssh 中的账号创建完成3. 创建 ssh 账号,会在 ssh 的安装目录下的home 目录里面,多了用户家目录4. 进入该目录 ,创建一个新的文件夹 ...

  5. JavaScript,一个超级简单的方法判断浏览器的内核前缀

    先说明,此处的方法是说超级简单的方法,不是指代码超级少,而是用非常简单的知识点,只要懂得怎么写JavaScript的行内样式就可以判断. 大家应该还记得JavaScript行内样式怎么写吧?(看来我是 ...

  6. NET MVC1项目升级到MVC2最简单的方法

    NET MVC1项目升级到MVC2最简单的方法 把MVC1项目升级到MVC2,最简单的做法如下: 新建MVC2项目 新建一个MVC2项目,把原来MVC1的项目文件全部拷贝到新建MVC2项目目录里,依照 ...

  7. js 获取当天23点59分59秒 时间戳 (最简单的方法)

    js 获取当天23点59分59秒 时间戳 (最简单的方法) new Date(new Date(new Date().toLocaleDateString()).getTime()+24*60*60* ...

  8. [ASP.NET]更简单的方法:FormsAuthentication登录ReturnUrl使用绝对路径

    转自:http://www.cnblogs.com/dudu/p/formsauthentication-returnurl-absoluteuri.html [ASP.NET]更简单的方法:Form ...

  9. ASP.Net MVC_DotNetZip简单使用方法,解决文件压缩的问题[转]

    准备工作: 在vs工具栏中找到NuGet   下载DotNetZip   现在就可以使用DotNetZip强大的类库了,在这里我给出一些简单的使用. ? 1 2 3 4 5 6 7 8 9 10 11 ...

随机推荐

  1. 嵌入式平台组件白盒测试gcov、lcov和genhtml 使用指导

    在嵌入式平台上使用了gtest白盒测试工具,覆盖了被测函数,但是不知道自己测试的效果如何,测试行覆盖率.函数覆盖率,分支覆盖率的数据. 便开始研究gcov这个代码覆盖率工具能否使用,来检查白盒测试的效 ...

  2. 对简单的正则表达式的理解V1.0

    [^<]* 我得理解也是基本来自官方的解释 [] 我理解是它其中的内容,是指内容哦, 内容是可以选择的 字符 集合 ,比如说  @"<div style="color: ...

  3. J2SE知识点摘记(六)

    1.        static关键字的使用 static 关键字:可以用于修饰属性,也可以用于修饰方法,还可以用于修饰类. static 修饰属性:无论一个类生成了多少个对象,所有这些对象共同使用唯 ...

  4. docker 创建镜像

    docker:/root# docker search centos NAME DESCRIPTION STARS OFFICIAL AUTOMATED centos The official bui ...

  5. 如何在你的project中使用support library【转】

    Android support library是google以jar包形式提供的一个代码库,里面包含一些向后兼容的framework API以及一些只有在这个library中才提供的feature. ...

  6. 基于本地iso 搭建的本地yum源 安装部署openldap

    1,yum openldap-servers,openldap-clients 基于iso-cd1搭建的本地yum源(具体搭建参看ruige的repo本地快速搭建,在右边 找找看中输入repo key ...

  7. 服务器:RAID、AHCI、IDE

    RAID 独立磁盘冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬盘的不同的地方(因此,冗余地)的方法.通过把数据放在多个硬盘上 ...

  8. CRM Entity 之Money转string int类型等

    Money转string 左右都是string //服务站地址 vehicleDetail["yt_servicestation_address"]=serviceStationC ...

  9. iOS 自定义button

    UIButton默认的布局是左侧image,右侧title,如果想要改变image与title的frame,直接设置是不会有效果的.可以通过titleEdgeInsets.imageEdgeInset ...

  10. EBS R12 修改 apps 密码[Z]

    注意:修改密码时应保证所有用户已退出, 最好是关闭应用实例.不用关闭数据库.在修改密码之前一定要改备下数据库中的FND_ORACLE_USERID和FND_USER表.FNDCPASS工具会自动把AP ...