Android性能测试之冷启动时间

          冷启动是Android性能测试中的重要指标,即应用从进程未创建到完全启动的时间,一般要求时长<1.5s,过长需要考虑优化。

获取冷启动时间的方法:

1.用命令行 

adb shell am start -W packagename/activity

如果懒得找包名和activity名称,则直接打命令

logcat -b events -s am_activity_launch_time

然后在结果中拷贝出来就可以了。

adb shell am start -w的输出结果有三个值,thisTime,totalTime,waitTime.

thisTime(最后一个activity启动耗费时间)=curTime-displayStartTime(一连串启动Activity中的最后一个Activity的启动时间点)

totalTime=mlaunchStartTime(一连串页面中第一个activity启动时间,可能无界面)!=0?curTime-mlaunchStartTime:thisTime

waitTime=endTime(系统调用startActivityAndWait完成时间点)-startTime(系统调用startActivityAndWait开始时间点)


也可以说:

waitTime=initTime(系统初始化的一些工作,ActivityManagerService创建ActivityRecord记录块和选择合理的Task、将当前ResumeActivity进行pause+totalTime

也就是说应用启动总耗时应该是waitTime,但是initTime这个时间段内我们没有太多优化空间,所以我们可能更关注totalTime


2.更精细的时间分析可以用systrace

a:找到AndroidStudio安装目录下的systrace目录,比如我的目录就是Library/Android/sdk/platform-tools/systrace

b:杀掉应用并运行systrace目录下的systrace.py文件

   python systrace.py --app=packagename -b 40960           (其中packagename要替换成自己的包名)

c.在systrace目录下会生成一个文件trace.html

d.打开浏览器,访问chrome://tracing/    因为我用的是Chrome浏览器,在打开的页面中选择Load前面生成的trace.html文件就可以了。

e.在运行结果中ui Thread对应的地方就可以找到bindApplication,这里就有详细的启动耗时信息。




猜你喜欢

转载自blog.csdn.net/u012480148/article/details/52249620