1、在代码中添加Traceview跟踪方法,方法为
android.os.Debug.startMethodTracing()和
android.os.Debug.stopMethodTracing();
如下代码所示,则程序运行时会记录两个方法中间所有函数执行的时间统计
android.os.Debug.startMethodTracing(); fun1();
fun2();
android.os.Debug.stopMethodTracing();
方法执行完后,会在手机sdcard中生成一个dmtrace.trace文件
使用ddms将该文件导出至电脑上,然后cmd命令进入Android sdk的tools目录下,执行命令:
traceview d:dmtrace.trace
执行命令后会打开如下界面:
知道哪个函数耗时,就可以逐个优化耗时操作了
下表是Traceview界面每个字段表示的含义
列名 |
描述 |
Name |
该线程运行过程中所调用的函数名 |
Incl Cpu Time |
某函数占用的CPU时间,包含内部调用其它函数的CPU时间 |
Excl Cpu Time |
某函数占用的CPU时间,但不含内部调用其它函数所占用的CPU时间 |
Incl Real Time |
某函数运行的真实时间(以毫秒为单位),内含调用其它函数所占用的真实时间 |
Excl Real Time |
某函数运行的真实时间(以毫秒为单位),不含调用其它函数所占用的真实时间 |
Call+Recur Calls/Total |
某函数被调用次数以及递归调用占总调用次数的百分比 |
Cpu Time/Call |
某函数调用CPU时间与调用次数的比。相当于该函数平均执行时间 |
Real Time/Call |
同CPU Time/Call类似,只不过统计单位换成了真实时间 |