- 浏览: 134127 次
- 性别:
- 来自: 北京
最新评论
-
qiuhuahui1:
真的有用,帮我节省了大把的时间。
android的ant编译打包 -
fxiaozj:
楼主,有没有demo?
Android ViewGroup实现页面滑动效果并实现不同的动画效果 -
sgjsdf5944:
你好,请问下楼主如果我想在安装完成页面上控制打开不可用该怎么实 ...
Android 监控程序安装和删除的实现 -
renfujiang:
养成好习惯,看过别人的文章 就得评论 增加点人气 好文章 我是 ...
android的ant编译打包 -
leishengwei:
你好,第一种方法在4.0时,输入法是弹不出去了,但是光标不能正 ...
Android如何关闭EditText中的软键盘
Traceview是android平台配备的一个很好的性能分析工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到method。
进行Traceview的版本限制
对于Android 1.5及以下的版本:不支持。
对于Android 1.5以上2.1下(含2.1)的版本:受限支持。trace文件只能生成到SD卡,且必须在程序中加入代码。
对于Android 2.2上(含2.2)的版本:全支持。可以不用SD卡,不用在程序中加代码,直接自己用DDMS就可以进程Traceview。
Android 1.5以上2.1下(含2.1)的版本中Traceview的使用
首先,必须在程序当中加入代码,以便生成trace文件,有了这个trace文件我们才可以将其转化为图形。
A启动
使用Debug的以下静态方法方法来启动:
static void startMethodTracing(String traceName)
Start method tracing, specifying the trace log file name.
使用指定trace文件的名字和默认最大容量(8M)的方式开始方法的追踪
static void startMethodTracing()
Start method tracing with default log name and buffer size.
使用默认trace文件的名字(dmtrace.trace)和默认最大容量(8M)的方式开始方法的追踪
static void startMethodTracing(String traceName, int bufferSize, int flags)
Start method tracing, specifying the trace log file name and the buffer size.
使用指定trace文件的名字和最大容量的方式开始方法的追踪。并可指定flags.
注:int flags好像没意义。一般都用0.
static void startMethodTracing(String traceName, int bufferSize)
Start method tracing, specifying the trace log file name and the buffer size.
使用指定trace文件的名字和最大容量的方式开始方法的追踪。
注1:以上的方法的文件都会创建于SD卡下,即"/sdcard/"下,对默认文件名的就是"/sdcard/dmtrace.trace"
如果没SD卡,以上方法会抛异常致使程序crash.
注2:如果文件名没有指定类型,系统为其加上类型.trace
B停止
使用Debug的静态方法方法来停止:
public static void stopMethodTracing ()。
例如在activity的onCreate()中添加Debug.startMethodTracing(), 而在onDestroy()中添加Debug.stopMethodTracing(),
如下:
@Override
public void onCreate(Bundle savedInstanceState) {
Debug.startMethodTracing();
super.onCreate(savedInstanceState);
..............................
}
protected void onDestroy() {
super.onDestroy();
.................
Debug.stopMethodTracing();
}
对于模拟器我们还得创建一个带有SD card的AVD,这样才能使trace文件保存到/sdcard/...当中。
可以在命令中分别单独创建,也可以在创建avd的时候一起将sdcard创建。创建之后通过DDMS file explore我们就可以看到/sdcard/目录下有一个trace文件,如果没有在Debug语句中设置名字则默认为dmtrace.trace.
C 把trace文件从SD卡拷到电脑上
现在我们把这个文件copy到我们的电脑上指定的目录:
adb pull /sdcard/dmtrace.trace d:
D 拷贝traceview文件到电脑
现在就可以通过命令行来执行traceview了。进入SDK的tools目录后,执行traceview,如下:
traceview D:\dmtrace.trace.
之后即可以看到图形界面了。
E 分析traceview结果
Timeline Panel
窗口的上半部分是时间轴面图(Timeline Panel)
The image below shows a close up of the timeline panel. Each thread’s execution is shown in its own row, with time increasing to the right.
Each method is shown in another color (colors are reused in a round-robin fashion starting with the methods that have the most inclusive time).
The thin lines underneath the first row show the extent (entry to exit) of all the calls to the selected method.
界面上方的尺子代表了MethodTracing的时间段(从Debug.startMethodTracing()到Debug.stopMethodTracing()的时间)。
每个线程的函数执行时间图处于和线程名同一行的右侧。
注1:线宽度代表执行该函数本身操作所用的时间。
注2:函数所调用的子函数时间线夹杂在该函数本身操作所用的时间线之间。
注3:时间线的高度不知道有什么意义。
注4:函数本身是嵌套的。
注5:每行下面粗的线段标注了Profile Panel中被选中函数调用所消耗的时间段。每个线段对应一次函数的运行。
在下面的图中我们可以看到有14次对LoadListener.nativeFinished()的调用,其中有一次调用耗时特别的多。
图1:The Traceview Timeline Panel
Profile Panel
窗口的下半界面是对各个函数调用的汇总图Profile Panel
Figure 2 shows the profile pane, a summary of all the time spent in a method.
The table shows both the inclusive and exclusive times (as well as the percentage of the total time).
Exclusive time is the time spent in the method.
Inclusive time is the time spent in the method plus the time spent in any called functions.
We refer to calling methods as "parents" and called methods as "children." When a method is selected (by clicking on it),
it expands to show the parents and children. Parents are shown with a purple background and children with a yellow background.
The last column in the table shows the number of calls to this method plus the number of recursive calls.
The last column shows the number of calls out of the total number of calls made to that method.
In this view, we can see that there were 14 calls to LoadListener.nativeFinished();
looking at the timeline panel shows that one of those calls took an unusually long time.
图2是对各个函数调用的汇总图Profile Panel。该表给出了the inclusive and exclusive times及他们所占有的百分比。
Exclusive time是该函数本身基本操作(不包括子函数调用)的时间。
Inclusive time是该函数调用所用的时间(包括子函数调用)的时间。
列1:"Name"表示函数名。
双击函数名,可以看到在上半界面是时间轴面图(Timeline Panel)看他的所消耗的时间段。(用粗的线段标注)。
双击函数名左边的"+"展开后可以看到,该函数的"parents"和"children"
列2:"incl%"表示函数的Inclusive time在整个MethodTracing时间里占的百分比。
列3:"Inclusive"表示Inclusive time。
列4:"Excl%"表示函数的Exclusive time在整个MethodTracing时间里占的百分比。
列5:"Exclusive"表示Exclusive time。
列6:"Calls+RecurCalls/Total"表示对函数的调用次数(包括递归调用)。如图2的nativeFinished()那列为"14+0"表示14次非递归调用,0次递归调用.
列7:新的版本(比如2.1)还有"time/calls"表示平均的调用时间(即Inclusive time/ total calls)。如图3。来自google文档的图2感觉有老了。
注:如果函数A调用函数B那么函数A称为函数B的"parents",函数B称为函数A的"children."
图2:Profile Panel
图3:Profile Panel
Traceview文件格式
关于Traceview文件格式请参照http://developer.android.com/guide/developing/debugging/debugging-tracing.html
Android 2.2以上(含2.2)的版本中Traceview的简化使用。
Android 2.2除了像2.1当中那样使用Traceview,还可以在DDMS使用Traceview,比以前简化的不少。
* The trace log files are streamed directly to your development machine.
在Android 2.2后可以不用SD卡。Traceview文件流是直接指向开发调试的主机(即DDMS所在的电脑)
To start method profiling:
1. On the Devices tab, select the process that you want to enable method profiling for.
2. Click the Start Method Profiling button.
3. Interact with your application to start the methods that you want to profile.
4. Click the Stop Method Profiling button. DDMS stops profiling your application and opens Traceview with the method profiling information that was collected between the time you clicked on Start Method Profiling and Stop Method Profiling.
在DDMS中如何进行Traceview。
1,在设备表中选中你想进行method trace的进程。
2,单击Method Profiling按钮开始method trace。该按钮在窗口的左上方,它在"stop"按钮的左方,"Device菜单的正下方"。
3,method trace进行中。
4,单击Method Profiling按钮停止method trace。紧接着系统会自动弹出Traceview窗口来显示刚才的method trace结果。
本文参照来源:
http://wbdban.javaeye.com/blog/564309
http://developer.android.com/guide/developing/debugging/debugging-tracing.html
http://developer.android.com/guide/developing/debugging/ddms.html#profiling
进行Traceview的版本限制
对于Android 1.5及以下的版本:不支持。
对于Android 1.5以上2.1下(含2.1)的版本:受限支持。trace文件只能生成到SD卡,且必须在程序中加入代码。
对于Android 2.2上(含2.2)的版本:全支持。可以不用SD卡,不用在程序中加代码,直接自己用DDMS就可以进程Traceview。
Android 1.5以上2.1下(含2.1)的版本中Traceview的使用
首先,必须在程序当中加入代码,以便生成trace文件,有了这个trace文件我们才可以将其转化为图形。
A启动
使用Debug的以下静态方法方法来启动:
static void startMethodTracing(String traceName)
Start method tracing, specifying the trace log file name.
使用指定trace文件的名字和默认最大容量(8M)的方式开始方法的追踪
static void startMethodTracing()
Start method tracing with default log name and buffer size.
使用默认trace文件的名字(dmtrace.trace)和默认最大容量(8M)的方式开始方法的追踪
static void startMethodTracing(String traceName, int bufferSize, int flags)
Start method tracing, specifying the trace log file name and the buffer size.
使用指定trace文件的名字和最大容量的方式开始方法的追踪。并可指定flags.
注:int flags好像没意义。一般都用0.
static void startMethodTracing(String traceName, int bufferSize)
Start method tracing, specifying the trace log file name and the buffer size.
使用指定trace文件的名字和最大容量的方式开始方法的追踪。
注1:以上的方法的文件都会创建于SD卡下,即"/sdcard/"下,对默认文件名的就是"/sdcard/dmtrace.trace"
如果没SD卡,以上方法会抛异常致使程序crash.
注2:如果文件名没有指定类型,系统为其加上类型.trace
B停止
使用Debug的静态方法方法来停止:
public static void stopMethodTracing ()。
例如在activity的onCreate()中添加Debug.startMethodTracing(), 而在onDestroy()中添加Debug.stopMethodTracing(),
如下:
@Override
public void onCreate(Bundle savedInstanceState) {
Debug.startMethodTracing();
super.onCreate(savedInstanceState);
..............................
}
protected void onDestroy() {
super.onDestroy();
.................
Debug.stopMethodTracing();
}
对于模拟器我们还得创建一个带有SD card的AVD,这样才能使trace文件保存到/sdcard/...当中。
可以在命令中分别单独创建,也可以在创建avd的时候一起将sdcard创建。创建之后通过DDMS file explore我们就可以看到/sdcard/目录下有一个trace文件,如果没有在Debug语句中设置名字则默认为dmtrace.trace.
C 把trace文件从SD卡拷到电脑上
现在我们把这个文件copy到我们的电脑上指定的目录:
adb pull /sdcard/dmtrace.trace d:
D 拷贝traceview文件到电脑
现在就可以通过命令行来执行traceview了。进入SDK的tools目录后,执行traceview,如下:
traceview D:\dmtrace.trace.
之后即可以看到图形界面了。
E 分析traceview结果
Timeline Panel
窗口的上半部分是时间轴面图(Timeline Panel)
The image below shows a close up of the timeline panel. Each thread’s execution is shown in its own row, with time increasing to the right.
Each method is shown in another color (colors are reused in a round-robin fashion starting with the methods that have the most inclusive time).
The thin lines underneath the first row show the extent (entry to exit) of all the calls to the selected method.
界面上方的尺子代表了MethodTracing的时间段(从Debug.startMethodTracing()到Debug.stopMethodTracing()的时间)。
每个线程的函数执行时间图处于和线程名同一行的右侧。
注1:线宽度代表执行该函数本身操作所用的时间。
注2:函数所调用的子函数时间线夹杂在该函数本身操作所用的时间线之间。
注3:时间线的高度不知道有什么意义。
注4:函数本身是嵌套的。
注5:每行下面粗的线段标注了Profile Panel中被选中函数调用所消耗的时间段。每个线段对应一次函数的运行。
在下面的图中我们可以看到有14次对LoadListener.nativeFinished()的调用,其中有一次调用耗时特别的多。
图1:The Traceview Timeline Panel
Profile Panel
窗口的下半界面是对各个函数调用的汇总图Profile Panel
Figure 2 shows the profile pane, a summary of all the time spent in a method.
The table shows both the inclusive and exclusive times (as well as the percentage of the total time).
Exclusive time is the time spent in the method.
Inclusive time is the time spent in the method plus the time spent in any called functions.
We refer to calling methods as "parents" and called methods as "children." When a method is selected (by clicking on it),
it expands to show the parents and children. Parents are shown with a purple background and children with a yellow background.
The last column in the table shows the number of calls to this method plus the number of recursive calls.
The last column shows the number of calls out of the total number of calls made to that method.
In this view, we can see that there were 14 calls to LoadListener.nativeFinished();
looking at the timeline panel shows that one of those calls took an unusually long time.
图2是对各个函数调用的汇总图Profile Panel。该表给出了the inclusive and exclusive times及他们所占有的百分比。
Exclusive time是该函数本身基本操作(不包括子函数调用)的时间。
Inclusive time是该函数调用所用的时间(包括子函数调用)的时间。
列1:"Name"表示函数名。
双击函数名,可以看到在上半界面是时间轴面图(Timeline Panel)看他的所消耗的时间段。(用粗的线段标注)。
双击函数名左边的"+"展开后可以看到,该函数的"parents"和"children"
列2:"incl%"表示函数的Inclusive time在整个MethodTracing时间里占的百分比。
列3:"Inclusive"表示Inclusive time。
列4:"Excl%"表示函数的Exclusive time在整个MethodTracing时间里占的百分比。
列5:"Exclusive"表示Exclusive time。
列6:"Calls+RecurCalls/Total"表示对函数的调用次数(包括递归调用)。如图2的nativeFinished()那列为"14+0"表示14次非递归调用,0次递归调用.
列7:新的版本(比如2.1)还有"time/calls"表示平均的调用时间(即Inclusive time/ total calls)。如图3。来自google文档的图2感觉有老了。
注:如果函数A调用函数B那么函数A称为函数B的"parents",函数B称为函数A的"children."
图2:Profile Panel
图3:Profile Panel
Traceview文件格式
关于Traceview文件格式请参照http://developer.android.com/guide/developing/debugging/debugging-tracing.html
Android 2.2以上(含2.2)的版本中Traceview的简化使用。
Android 2.2除了像2.1当中那样使用Traceview,还可以在DDMS使用Traceview,比以前简化的不少。
* The trace log files are streamed directly to your development machine.
在Android 2.2后可以不用SD卡。Traceview文件流是直接指向开发调试的主机(即DDMS所在的电脑)
To start method profiling:
1. On the Devices tab, select the process that you want to enable method profiling for.
2. Click the Start Method Profiling button.
3. Interact with your application to start the methods that you want to profile.
4. Click the Stop Method Profiling button. DDMS stops profiling your application and opens Traceview with the method profiling information that was collected between the time you clicked on Start Method Profiling and Stop Method Profiling.
在DDMS中如何进行Traceview。
1,在设备表中选中你想进行method trace的进程。
2,单击Method Profiling按钮开始method trace。该按钮在窗口的左上方,它在"stop"按钮的左方,"Device菜单的正下方"。
3,method trace进行中。
4,单击Method Profiling按钮停止method trace。紧接着系统会自动弹出Traceview窗口来显示刚才的method trace结果。
本文参照来源:
http://wbdban.javaeye.com/blog/564309
http://developer.android.com/guide/developing/debugging/debugging-tracing.html
http://developer.android.com/guide/developing/debugging/ddms.html#profiling
发表评论
-
ListView与Button、imageButton 的共存问题解决
2013-02-20 11:39 1375ListView与Button、imageButton 的共存 ... -
android实现popupwindow的动画效果
2013-02-01 18:56 2047问题:在打开或者关闭popupwindow的时候怎么样显示动画 ... -
Android开发ViewPager中ListView失效问题解决方法
2013-01-28 22:12 2821最近开发一个Android小应用。就是利用ViewPager实 ... -
Android ViewGroup实现页面滑动效果并实现不同的动画效果
2012-08-28 22:24 3206这应该是自己第一次开始写博客,今天起想要记录下自己工作上学到的 ... -
关于WebView的loadData方法以及乱码问题
2012-08-09 14:37 1013WebView是Android应用开发 ... -
Android对图片的压缩读取和保存
2012-08-08 10:27 1428在开发图片浏览器等软件是,很多时候要显示图片的缩略图,而一般情 ... -
ubuntu下载android源代码
2012-07-22 00:50 2010用虚拟机来创建一个Ubun ... -
android面试(2)
2012-07-20 16:17 1142附带答案,共100分 一、选择题(30题,每题1.5分,共4 ... -
自定义PreferenceActivity——修改Preference样式、加顶部布局
2012-05-27 20:19 2751首先在res/xml文件夹下建立preferences.xml ... -
android拦截短信并屏蔽系统的Notification
2012-05-21 09:25 1873Android短信拦截,总的来说有两种方式: (一)、在代码 ... -
Android设置应用程序默认语言
2012-05-19 21:03 1607Android应用程序的国际化还是做得不错的,通过设置资源文件 ... -
(android 实战总结)android对html支持接口总结
2012-04-18 09:50 2435Android支持html 的两个接口 1 Spanned ... -
Android的TextView使用Html来处理图片显示、字体样式、超链接等
2012-04-16 11:09 1634转eoe:http://www.eoeandroid.com/ ... -
android的ant编译打包
2012-04-11 14:52 3988Android本身是支持ant打包项目的,并且SDK中自带一个 ... -
使用InputStreamEntity 边读取边上传文件
2012-04-09 17:32 7512HttpClient httpclient = new Def ... -
android xliff字符串操作
2012-04-09 14:59 1470参考:http://blog.csdn.net/freshma ... -
Android:只读EditText内容可滚动(禁止输入法)的实现
2012-04-06 12:00 1480实验设备为HTC hero (SDK 2.1-update1) ... -
Eclipse报内存溢出
2012-04-04 10:50 1156(1)在配置tomcat的JDK里面设置。Window--&g ... -
Android解压缩zip的实现
2012-03-20 11:21 2871android 解压缩zip包,需要在menifest.xml ... -
Android alertdialog的按钮点击后不消失
2012-03-15 20:35 1947使用反射: 在你的setPositiveButton中添加 ...
相关推荐
以下是基于Android Studio的TraceView使用技巧和相关知识点。 首先,在Android Studio中启动TraceView的步骤包括: 1. 双击shift键,然后输入并搜索AndroidDeviceMonitor,打开DDMS(Dalvik Debug Monitor Server)...
4. **颜色编码**: Traceview使用不同的颜色表示不同级别的性能问题,红色代表最慢,绿色表示最快,帮助开发者直观地识别问题。 **四、性能优化策略** 1. **减少不必要的计算**: 对于执行时间较长的函数,检查是否...
在使用`traceview`时,你需要首先通过`adb logcat -v threadtime`收集应用的性能日志,然后选择相应的进程ID,将日志导入`traceview`。`traceview`会显示一个详细的调用树,每个节点代表一个方法调用,其中包含了...
在这个“TraceView工具分享”中,我们将深入探讨TraceView的功能、使用方法以及如何通过它来优化你的.NET应用。 TraceView主要功能包括: 1. **事件跟踪日志记录(ETW):** TraceView支持事件跟踪窗口提供者(ETW...
`Traceview`是Android开发中一个非常重要的性能分析工具,它可以帮助开发者深入理解应用程序的运行时性能,包括CPU使用率、方法调用时间等。在Android SDK中,`Traceview`是一个图形化的日志分析器,它能显示应用...
为了使用TraceView,开发者通常需要在代码中插入适当的Log信息,然后在Android设备或模拟器上运行应用,通过ADB(Android Debug Bridge)将日志数据传输到开发机上的TraceView。一旦数据导入,TraceView会自动生成...
描述中提到的问题表明在用户的SDK安装目录下的`tools`文件夹中缺失了`traceview.bat`,这会导致尝试使用DDMS(Dalvik Debug Monitor Service)时,系统找不到`traceview.bat`,从而引发错误。 **Traceview详解** ...
本篇文章将对`Traceview`进行详细的总结,探讨如何使用它来提升Android应用的性能。 ### 1. Traceview基础 `Traceview`是一款图形化的性能分析器,它通过收集Dalvik虚拟机执行的函数调用时间,生成详细的性能报告...
在压缩包中的`使用说明.txt`文件,可能包含了如何使用`traceview.bat`的详细步骤和注意事项。一般来说,使用`traceview`涉及以下步骤: 1. 运行`traceview.bat`。 2. 选择要分析的应用进程。 3. 开始记录(通常通过...
TraceView是Android系统中一个强大的性能分析工具,主要用于调试应用程序的性能问题,特别是对于CPU密集型的任务和内存使用情况有着详细的追踪能力。它能够提供细粒度的函数调用时间线,帮助开发者找出代码中的瓶颈...
4. 使用`Traceview`:现在,你可以通过命令行运行`traceview.bat`来启动`Traceview`。如果一切配置正确,它会打开一个窗口,你可以导入日志文件(`.trace`格式)或者直接连接到运行中的设备或模拟器进行实时跟踪。 ...
【Android 性能分析工具 TraceView 的正确使用】 在 Android 开发中,性能优化是提升用户体验的关键环节之一。TraceView 是 Android 提供的一款强大的性能分析工具,它可以帮助开发者定位应用程序中的性能瓶颈,...
win10 64位的traceview.exe 工具,亲自验证很好用。测试使用的是win10 64位系统,其他版本未测试。
DDMS files not found traceview.bat问题,将traceview.bat文件放到SDK相应tools文件夹下,重启eclipse
综上所述,Anritsu TraceView 5.0 是一款专业的OTDR数据分析工具,它为光通信行业的工程师提供了高效、准确的数据处理手段,对于保障光纤网络的正常运行和优化具有重要作用。通过使用该软件,用户可以更好地理解和...
使用TraceView打开这些文件,用户能够以图形化的方式查看OTDR测试的结果,便于理解和解释测试数据。 在实际应用中,OTDR TraceView可能具备以下功能: 1. **数据导入**:支持导入SOR文件,快速加载并解析数据。 2....
Anritsu TraceView 5.0.00用于打开sor类型的曲线文件,安装TraceView后会自动与SOR/TRC/TRL文件建立关联关系,双击SOR文件后会自动调用本软件进行打开。安装之前需要先安装Microsoft Visual C 2010运行库,根据...
《OTDR仿真软件TraceView.zip详解》 OTDR(Optical Time Domain Reflectometer,光时域反射仪)是光纤通信领域中的重要测试设备,用于检测光纤的全长、接头损耗、故障点等信息。"TraceView.zip"是一个压缩包文件,...
然而,有时在使用Eclipse进行Android开发时,可能会遇到一些工具包缺失的问题,例如"Android在eclipse 缺少的工具包(hprof-conv.exe, traceview.bat)"。这两个文件是Android SDK中用于调试和性能分析的重要工具。 1...