APP两种启动耗时分析方法对比 - 知乎

由:admin 发布于:2024-05-12 分类:素质提升 阅读:37 评论:0

在我们使用每一款app时,都会经历的过程是点击它的应用图标进入首页,但有的app启动耗时很长,速度会很慢,页面加载不出来,甚至会出现黑屏的状态,这种情况会流失很多用户,启动耗时对app来说也是一个致命的缺点,接下来就介绍两种启动耗时分析方法!

一、shell 命令

  热启动

"热启动" 是指您的应用已经启动且正在后台运行 (但被暂停了) 时的启动。

C:\Users\xxx>adb shell am start-activity -W -n com.xdja.safekeyservice/com.xdja.scservice.presenter.activity.SplashScreenPresener

Starting: Intent { cmp=com.xdja.safekeyservice/com.xdja.scservice.presenter.activity.SplashScreenPresener }

Warning: Activity not started, its current task has been brought to the front

Status: ok

APP两种启动耗时分析方法对比 - 知乎

LaunchState: HOT

Activity: com.xdja.safekeyservice/com.xdja.scservice.presenter.activity.MainFragmentPresenter

TotalTime: 190

WaitTime: 60

Complete

  冷启动

"冷启动" 是指您的应用在安装后的第一次启动、重启,或者不在后台时的启动。

APP两种启动耗时分析方法对比 - 知乎

一致性: 冷启动可以确保您的应用每次启动时都经历相同的操作。应用被热启动时,我们没法明确知道哪些步骤被跳过,而哪些步骤被执行,因而也无从得知您到底在对什么进行计时 (也无法保证重复测试时所测试的内容是否一致);

最坏情况: 按照定义,冷启动是最坏的情况——这是您的用户经历启动过程时间最长的场景。您需要专注于最坏情况的统计数据,而不是状况最好的热启动。如果您忽略最坏情况,许多重大问题将无法被解决。

C:\Users\xxx>adb shell am start-activity -W -n com.xdja.safekeyservice/com.xdja.scservice.presenter.activity.SplashScreenPresener

Starting: Intent { cmp=com.xdja.safekeyservice/com.xdja.scservice.presenter.activity.SplashScreenPresener }

Status: ok

LaunchState: COLD

Activity: com.xdja.safekeyservice/com.xdja.scservice.presenter.activity.SplashScreenPresener

TotalTime: 3136

WaitTime: 3141

Complete

  耗时说明

WaitTime 就是总的耗时,包括前一个应用 Activity pause 的时间和新应用启动的时间;

ThisTime 表示一连串启动 Activity 的最后一个 Activity 的启动耗时;

TotalTime 表示新应用启动的耗时,包括新进程的启动和 Activity 的启动,但不包括前一个应用 Activity pause 的耗时。也就是说,开发者一般只要关心 TotalTime 即可,这个时间才是自己应用真正启动的耗时。

  shell脚本控制

性能测试总是应当多次去运行测试用例,以排除结果中的可变因素。进行的运行次数越多,平均结果就越可靠。

确保每次冷启动应用(打开应用前先kill应用进程)

设备CPU锁频(用户真实场景可能不会主动操作锁频,可忽略此项)

Windows机器使用Git Bash命令行启动https://zhuanlan.zhihu.com/p/startAPP.sh

返回TotalTime后可计算平均冷启动时间

二、友盟启动耗时功能

对于启动这方面的问题,推荐开发者使用“友盟+u-apm应用性能监测平台”这款工具,它作为一款监测工具可以帮助开发者实时监测app性能及启动时的问题,还可定位到问题所在处并及时进行处理和修复。它还具有多种功能可供使用,其中,启动分析是通过提供详尽的启动耗时、慢启动情况、启动崩溃数据。帮助您把控应用的启动性能状态,从源头减少客户流失。

其中,启动趋势页面展示启动耗时的平均值、分位值、区间分布等数据,以及启动阶段的性能分解数据,展示预置采集的阶段性数据和您自定义的阶段数据,帮助你一目了然的观察到启动耗时数据,并分析出耗时原因,使用起来比较顺手。

相关阅读

评论

精彩评论
二维码