app的启动时间测试

本文详细介绍了Android应用启动性能测试中启动时间的测量方法,包括冷启动和热启动的区别,通过logcat获取活动启动信息及使用screenrecord工具进行屏幕录制分析启动时间的步骤。此外,还提供了通过按帧播放视频来精确测量用户体验启动时间的方法。

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

对于app的性能测试,启动时间是个重要指标,启动时间分为两种情况,一种是冷启动时间(通常是系统重启,即在启动前没有该app进程的情况),另一种是热启动,即app从被切换到前台(点back退出后再点击图标启动)。

12-13 00:10:41.331 855-957/? I/ActivityManager: [AppLaunch] Displayed Displayed com.tencent.android.qqdownloader/com.tencent.assistantv2.activity.MainActivity: +639ms (total +751ms)

12-13 00:10:41.331 855-957/? D/ActivityManager: AP_PROF:AppLaunch_LaunchTime:com.tencent.android.qqdownloader/com.tencent.assistantv2.activity.MainActivity:639:50307447

Android4.4API 19)开始,可以从logcat获取activity的启动信息,我用应用宝做实验,可以看到如下的输出,从这里我们可以看到应用的这个activity启动用了639ms

这个log信息会在activity首次被绘制时输出,也就是如果activity栈里有这个activity,再启动不会输出该信息,典型的场景是通过recent task列表切换到其他activity再立即切换回来时。

log中的时间包括系统从开始处理启动activity的时间到完成运行layoutdraw函数的时间,不包括点击icon到系统接收到消息的时间。显然,这个时间也不包括启动中异步UI绘制的时间。但是我们在测试中关注的其实是用户体验的启动时间,那么上面log中的时间就不能满足我们的需求了。

不过还好,既然是用户体验我们可以用更直观的方式,使用screenrecord进行屏幕录制然后分析视频。使用如下命令录制视频。

adb shell screenrecord --bugreport /sdcard/launch.mp4

--bugreport参数会使视频输出一些时间信息和帧信息便于我们分析启动时间。

activity启动后,使用ctrl+c结束视频录制,使用

adb shell pull /sdcard/launch.mp4 /Users/xxx/Downloads/launch.mp4

导出视频到电脑,使用可以按帧播放的视频软件打开(macquicktime就可以,win下可以用kmplayer),并按帧播放。

按帧播放视频,视频左上角会显示每一帧的时间(精确到ms)和帧数。在视频中会看到icon会变暗然后高亮,高亮时就是系统开始处理本次icon点击事件了。可以把这里作为点击时间,然后根据体验要求,看到app启动页完全绘制完作为终止时间,这个时间减去点击时间就是app的启动时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值