打印启动时间
首先要知道启动时间有多长,AndroidStudio中可以直接用logcat打印出来
好家伙,快10秒钟了,死了算了。
trace工具
在你想要跟踪的代码块前后分别插桩
Debug.startMethodTracing("sample");
Debug.stopMethodTracing();
生成的 .trace
文件会被保存在固定目录下,与 getExternalFilesDir()
返回的目录相同,即 /sdcard/Android/data/[YOUR_PACKAGE_NAME]/files
下。这里的命名可以自己随意。
使用 AS 查看
将 .trace 文件保存至电脑,直接拖入AS窗口,可直接打开该视图。
分析trace
上述图片很容易看出,主线程执行了5秒钟,从右边的分析窗口中可以一步步点下去,点到最后就可以看到具体某个方法耗时了或者等待了。再具体问题具体分析了。
注意点
如果出现trace文件无法被解析,实测在这段代码块中如果出现了异常被try catch住的话,虽然能够产生trace文件,但该文件并不能被解析,可以先分析是否存在异常,二分法排查你懂的。