1.traceview:
打开DDMS窗口(如果界面上没,则Window->Open Perspective->DDMS);2)在DDMS界面上打开Devices视图(如果没有,则Window->ShowView->Devices)
2. 命令行:
在你的SDK安装目录下有一个文件夹android-sdks/tools/systrace
结果图反映了你操作过程中涉及到的所有函数调用所消耗的资源,包括所占CPU的时间,其中Incl表示自己本身代码执行的时间加上所有子函数调用的时间,而Excl则仅仅表示自己本身代码执行的时间,上半部分是按照每个线程的函数调用绘制的时间流调用图,而下半部分则是按照资源消耗程度从大到小排序的,其中0(toplevel)应该是系统级别的线程,它的时间全是100%的,所以,下面的百分比全是以它为基准计算,比如,1的Incl Cpu Time%为85.0%,就是1548.292/1822.001得到的,正常情况下,排在前面的函数应该都是一些系统底层的函数,而不应该出现你自己写的函数,假如你有一个函数跑到很前面,比如已经达到40%(参考值,我看自己的程序一般在12%以下)以上,那么那个函数肯定是有问题了,网上有人专门写了一个函数做测试,已经达到89%以上了,果断需要修改.
可以看到函数的调用时间、流程以及CPU被哪个进程所占用。
Android 内存分析工具 MAT(Memory Analyzer Tool)
生成.hprof文件 这个由DDMS生成的文件不能直接在MAT打开,需要转换。
运行cmd打开命令行,cd到\ android-sdk-windows\tools所在目录,并输入命令hprof-conv xxxxx.hprof yyyyy.hprof,其中xxxxx.hprof为原始文件,yyyyy.hprof为转换过后的文件。转换过后的文件自动放在android-sdk-windows\tools 目录下。