标签:
Traceview是执行日志的图形查看器。这些日志通过使用Debug类记录。 Traceview可以帮助调试应用和profile性能。
Traceview可以加载trac日志文件(通过添加跟踪代码添加到应用或由DDMS生成)。TraceView的界面分为两部分,上面是时间线面板(Time Panel),描述了当每个线程和方法的启动和停止时间。下面是profile面板,概述方法所做的事情,如下图所示:
时间线面板:
profile面板:
有两种方法可以生成跟踪日志:
在代码中包含Debug类并调用其方法,如startMethodTracing()和stopMethodTracing(),这种方法很精确。
使用DDMS的profile分析功能来生成跟踪日志。不太准确,不能够访问应用程序的代码或不需要精确的记录时间时使用。
注意:如果使用Debug类,应用程序必须具有外部存储的写权限(WRITE_EXTERNAL_STORAG??E)。
1
2
3
4
5
|
// start tracing to "/sdcard/calc.trace" Debug.startMethodTracing( "calc" ); // ... // stop tracing Debug.stopMethodTracing(); |
应用调用startMethodTracing()时,系统会创建<trace-base-name>.trace文件。这包含二进制方法跟踪数据和线程及方法名映射表。
然后系统开始缓冲生成的跟踪数据,直到应用程序调用stopMethodTracing(),此时将其缓冲的数据写入到输出文件中。如果系统调用stopMethodTracing前达到最大缓冲器大小,系统停止trace并发送通知给控制台。
开启profile时,解释的代码运行速度会较慢,并不代表实际执行速度。
在Android的4.4和更高版本,取样会减少性能影响。使用startMethodTracingSampling()即可,停止依旧使用stopMethodTracing()。
执行实例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
C:\Users\Administrator>adb pull / mnt / sdcard / tc.trace / tmp / tc.trace C:\Users\Administrator>adb shell am start - n com.mamlambo.article.simplecalc / .MainActivity Starting: Intent { cmp = com.mamlambo.article.simplecalc / .MainActivity } C:\Users\Administrator>adb shell am profile com.mamlambo.article.simplecalc start / mnt / sdcard / tc.trace C:\Users\Administrator>adb shell am profile com.mamlambo.article.simplecalc stop C:\Users\Administrator>adb pull / mnt / sdcard / tc.trace / tmp / tc.trace 1352 KB / s ( 2429326 bytes in 1.754s ) C:\Users\Administrator>traceview c:\tmp\tc.trace The standalone version of traceview is deprecated. Please use Android Device Monitor (tools / monitor) instead. |
注意:若出现mkdir failed for img Read-only file system,在执行 adb shell 命令后执行mount -o remount ,rw /即可
http://www.cnblogs.com/pythontesting/p/4935451.html
标签:
原文地址:http://www.cnblogs.com/softidea/p/4935603.html