APP启动性能

启动方式3种

  • 热启动

    Andriod:当启动应用时,后台已有该应用的进程(例:按back键、home键,应用虽然会退出,但是该应用的进程是依然会保留在后台,可进入任务列表查看),所以在已有进程的情况下,这种启动会从已有的进程中来启动应用,也就是直接从进程中启动,不需要重新创建Application,这个方式叫热启动。

    IOS:按下home键的时候,iOS APP还存存在一段时间,这时点击APP马上就能恢复到原状态,这种启动我们称为热启动。

  • 冷启动

    Andriod:当启动应用时,后台没有该应用的进程,这时系统会重新创建一个新的进程分配给该应用,这个启动方式就是冷启动,也就是先实例化Application。

    IOS:App被kill掉以后一切从头开始启动的过程

  • 温启动

    按下Home键,之后打开APP【介于冷启动与热启动之间】

测量启动时间3种方法

  • adb命令
#获取activity名字
adb logcat | grep Displayed
adb shell am start -W packageName(包名)/ActivityName(活动名)(绝对路径,首个Activity)
adb shell am start -W (包名)/(活动名)

在这里插入图片描述
应用第一次启动也就是我们常说的冷启动,这时候你的应用程序的进程是没有创建的. 这也是大部分应用的使用场景.用户在桌面上点击你应用的 icon 之后,首先要创建进程,然后才启动 MainActivity.这时候adbshell am start -w packagename/MainActivity 返回的结果,就是标准的应用程序的启动时间。注意Android 5.0 之前的手机是没有WaitTime这个值的。
关于ThisTime/TotalTime/WaitTime的区别,下面是其解释。WaitTime=endTime-startTime

1.startTime记录的刚准备调用startActivityAndWait()的时间点
2.endTime记录的是startActivityAndWait()函数调用返回的时间点
3.WaitTime = startActivityAndWait()调用耗时。WaitTime 就是总的耗时,包括前一个应用Activity pause 的时间和新应用启动的时间
4.ThisTime 表示一连串启动Activity 的最后一个 Activity 的启动耗时;
5.TotalTime表示新应用启动的耗时,包括新进程的启动和 Activity 的启动,但不包括前一个应用Activity pause 的耗时。也就是说,开发者一般只要关心 TotalTime 即可,这个时间才是自己应用真正启动的耗时。

总结一下,如果只关心某个应用自身启动耗时,参考TotalTime;如果关心系统启动应用耗时,参考WaitTime;如果关心应用有界面Activity启动耗时,参考ThisTime。

启动APP可能会出现的问题

  • 启动时间过长(参考时间:热启动1s、冷启动1.5s【最大值】)
  • 启动过程中出现白屏
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值