TraceView简介和 DDMS工具使用

一、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举例

      下面的例子是我在一个Activity的里面对于TraceView的应用。

       

       在这个例子里面特意对init()进行处理,使其耗费比较大的时间。

       通过traceview得到的结果是:

       

 

    

从这个图里面可以很明显的看到init占用了大量的时间。

 

对于TraceView的详细说明,可以参考其官方文档:


DDMS使用
一.查看进程的堆栈使用情况
1.选中你要查看的进程;
2.点击“ Update Heap”按钮开启该进程的该项功能,如果单独打开ddms工具,按钮名为“Show heap updates”;
3.点击“Cause GC”按钮来进行垃圾回收,当操作完成后,您会看到一组对象类型和为每种类型已分配的内存;
4.点击列表中的一个对象类型,为该种特定内存大小的对象分配的数量。
heap.jpg 
二.跟踪对象的内存分配
1.在“设备”选项卡中,选择要启用的分配跟踪的进程;
2.在“分配跟踪”选项卡上,单击“开始跟踪”按钮开始分配跟踪,从这一时开始,你的应用程序所做的任何事将被跟踪。
3.单击”Get Allocations“,可以看到一个列表,当要继续跟踪时,可以重新点击”开始跟踪“按钮。
4.要停止跟踪或清除数据,并重新开始,请单击“停止跟踪”按钮。
5.点击列表中某一项,可以看到更多的信息,该条目的方法,所属对象以及代码行号等详细信息。
trace.jpg 
三.操作仿真器或设备的文件系统
1.在“设备”选项卡中,选择您想要查看的文件系统的仿真器。
2.从设备复制文件,在文件浏览器中找到该文件,然后单击“Pull file”按钮。
3.要复制一个文件到设备上的文件资源管理器“Push file ”按钮。
四.检查线程信息
1.在“设备”选项卡中,选择进程;
2.单击”Update Threads“按钮.单独打开ddms,显示”show thread update“。
3.在“Threads”选项卡上,您可以查看所选进程的线程信息。
thread.jpg 
五.方法分析
方法分析的方式来追踪特定的度量方法,如调用次数,执行时间,执行的方法花费的时间。
在您开始在DDMS的方法分析,注意以下限制:
Android 1.5的设备不被支持。
Android 2.1和更早版本的设备都必须有一个SD卡和你的应用程序必须写入SD卡的权限。
Android 2.2及更高版本的设备并不需要一个SD卡。跟踪日志文件直接传输到你的开发机。
1.在“设备”选项卡中,选择进程。
2.点击Start Method Profiling按钮。
3.与应用程序交互,启动你要分析的方法。
4.单击“停止”的方法剖析按钮。 DDMS停止分析您的应用程序,打开Traceview的方法收集的分析信息。
六.使用的网络流量工具
在Android 4.0, DDMS 具备监控详细的网络使用情况的功能,使得它可以跟踪您的应用程序的网络请求。使用这个工具,你可以监视应用程序的数据传输,并适当优化的底层代码。
七.使用LogCat
当你设置你的日志,你可以用logcat的功能, DDMS过滤某些信息通过下面的按钮:
详细
调试
信息
警告
错误
您还可以设置自己的自定义过滤器指定更多的细节,如过滤消息的日志标签或生成日志消息的进程ID 。
filter.jpg 
八.模拟电话业务和位置
”Emulator control “可以模拟手机的语音和数据网络的状态。这是非常有用的,当你想测试你的应用程序在不同网络环境下的鲁棒性。可以设置下面的选项:
  • Voice - unregistered, home, roaming, searching, denied
  • Data - unregistered, home, roaming, searching, denied
  • Speed - Full, GSM, HSCSD, GPRS, EDGE, UMTS, HSDPA
  • Latency - GPRS, EDGE, UMTS
九.模拟来电或SMS文本消息
声音 - 在“来电号码”字段中输入一个数字,然后点击呼叫,模拟呼叫发送到模拟器或手机。点击挂断键终止通话。
短信 - 来电号码字段和在消息中:“字段中输入一个数字,然后点击”发送“按钮发送消息。
十.设置手机地理位置
如果您的应用程序依赖于位置的手机,你可以有的DDMS送您的设备或AVD一个模拟的位置。这是非常有用的,如果你想测试你的应用程序的特定位置的功能,而不必实际移动的不同方面。您可以使用下面的地理位置数据类型:
手动设置位置 - 通过手动指定十进制或六十进制的经度和纬度值。
GPX - GPS交换文件
KML - Keyhole标记语言文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值