1、耗时操作的处理
在UI上执行的代码中,找到耗时操作,并将耗时操作放在子线程中执行。
但是,问题是,怎么才能找到耗时操作。
2、不科学的方式寻找耗时代码
使用如下代码:
System.currentTimeMillis()
在一段代码的首尾获取当前时间,计算时间差,可以获得那段代码执行的时间。
这是一个非常不科学的做法。随着项目不断的迭代,代码量会越来越多,然而,使用计算时间差的方式寻找耗时代码是费时费力的。
3、Android SDK自带Debug生成tracelog
采用如下代码分析耗时操作:
File file = new File(Environment.getExternalStorageDirectory(), "MyCustomApplication.trace");
Log.d("TAG", "file:" + file.getAbsolutePath());
//把分析结果存在一个文件
Debug.startMethodTracing(file.getAbsolutePath());
... 这里放置检查耗时的代码
Debug.stopMethodTracing();
然后将生成的文件拖入Android Studio中。
4、Activity启动时间
可以过滤关键字“Displayed”可以查看Activity的启动时间:
![](https://img.haomeiwen.com/i12648131/7f4192dc6bce8929.png)
之后,可以查看Activity启动详细耗时:
输入命令:adb shell am start -W com.example.launchoptimization/.MainActivity
查看具体耗时:
![](https://img.haomeiwen.com/i12648131/4d98d48390229638.png)
ThisTime:最后一个Activity启动的时间;
TotalTime:所有Activity启动时间总和;
WaitTime:系统初始化时间 + 所有Activity启动时间总和
5、Android Studio自带traceview
使用Android Profiler可以查看指定时间区间的CPU使用情况
![](https://img.haomeiwen.com/i12648131/e4bac2e96cb13f6b.png)
右侧可以看出具体方法的耗时。
[完...]
网友评论