Android App性能之--启动时间

本文详细解析了App启动时间的三种类型:首次安装启动、冷启动和热启动,并介绍了通过adb命令采集这些时间的具体方法。同时,阐述了启动时间的计算原理,包括thisTime、totalTime和waitTime的含义及计算公式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

App启动时间的包括首次安装启动时间、冷启动时间、热启动时间3种

启动时间的采集方式均通过如下adb命令

#命令行输入命令:
adb shell am start -W -n packageName/ActivityName

#结果如下
Status: ok
Activity: packageName/activityName
ThisTime: 1298
TotalTime: 1298
WaitTime: 1308
Complete

1)首次安装启动

首次安装后,需要做资源初始化操作,因此,如果需要采集这个值,就需要在App安装后执行上述命令

2)冷启动

冷启是后台进程被关闭时启动App所需的时间,关闭进程可以在手机端滑动关闭(各个手机操作略有差异)也可以通过adb命令(参考如下)

adb shell am force-stop packageName

3)热启动

热启动是不关闭进程,比如按home键或者adb命令(参考如下)返回系统主界面,但App进程仍在后台运行

adb shell input keyevent 3

 

输出结果有三个值,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、将当前Resume的Activity进行pause)+totalTime

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值