Android中如何计算 App 的启动时间

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010356768/article/details/89646794

adb命令统计

应用第一次启动
也就是我们常说的冷启动,这时候你的应用程序的进程是没有创建的. 这也是大部分应用的使用场景.用户在桌面上点击你应用的 icon 之后,首先要创建进程,然后才启动 MainActivity

使用以下命令行可以获取启动时间

adb shell am start -W packagename/绝对路径下的MainActivity

例如我的包名为com.xx.myapplication,我的启动页是SplashActivity
在这里插入图片描述
那么我应该在Terminal中输入的命令为:

adb shell am start -W com.xx.myapplication/com.xx.myapplication.SplashActivity

记得运行安装应用之后再进行测试…

在这里插入图片描述

  • ThisTime : ThisTime 表示一连串启动 Activity 的最后一个 Activity 的启动耗时
  • TotalTime : 启动一连串的 Activity 总耗时.(有几个Activity 就统计几个),表示新应用启动的耗时,包括新进程的启动和 Activity 的启动,但不包括前一个应用 Activity pause 的耗时。也就是说,开发者一般只要关心 TotalTime 即可,这个时间才是自己应用真正启动的耗时
  • WaitTime : 应用进程的创建过程 + TotalTime,就是总的耗时,包括前一个应用 Activity pause 的时间和新应用启动的时间

在这里插入图片描述

  • 在第①个时间段内,AMS 创建 ActivityRecord 记录块和选择合理的 Task、将当前Resume 的 Activity 进行 pause
  • 在第②个时间段内,启动进程、调用无界面 Activity 的 onCreate() 等、 pause/finish 无界面的 Activity
  • 在第③个时间段内,调用有界面 Activity 的 onCreate、onResume

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

Android 中如何计算 App 的启动时间?
作者:Gracker

系统日志统计

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/u010356768/article/details/89646794
今日推荐