性能优化:统计安卓apk的安装时间的3种方法

背景

在性能优化中,有一个apk的安装场景也是各个产品关注的重点指标,测试会对apk的安装时间进行相关竞品的测试对比。
在这里插入图片描述
那么作为开发的我们首先要知道如何科学合理的测试出整个apk的安装时间,
下面分享几个性能优化过程中apk的安装时间统计方法。

UI方式进行统计

观察一下安装过程的UI特点
首先在点击安装前会有一个可以点击安卓的dialog弹出

在这里插入图片描述

点击这里的install后,在安装时候明显出现了一个安装中进度条
在这里插入图片描述
安装完成后,进度条就消失了,变成如下:

在这里插入图片描述
所以这里就完全可以,使用老方法高速摄像机拍照整个安装过程,通过卡画面变化的时间点方式进行统计。

Perfetto统计画面变化方法

每次使用照相机拍照方式相对很不方便,测试可以使用这种方式,但是对我们开发这里完全可以使用抓取trace使用Perfetto UI来进行测量。

试想其实从开始安装到安装结束,这个全过程其实显示的界面都是同一个有进度条动画的窗口:
在这里插入图片描述这里我们可以去SurfaceFlinger找到这个窗口的的Buffer,进行时间卡点计算:
专门buffer如下

BufferTX - com.android.packageinstaller/com.android.packageinstaller.InstallInstalling#509

找到后也可以和实际现象完全对应,可以看到在不断上帧,因为进度条在不断的动。
在这里插入图片描述

SQL方式进行查询及Slice查看

直接看installSession,installPackages的slice

在这里插入图片描述

使用SQL语句查询:

SELECT name, count(*) AS cnt, avg(dur)/1e6 AS avg_ms
   FROM slice
   WHERE name IN (
     'installSession', 'installStage', 'verification',
     'installPackages', 'scanPackage', 'copyApk'
   )
   GROUP BY name
   ORDER BY avg_ms DESC;

可以得出下面的结果:

在这里插入图片描述明显可以看出整个install耗费时间为5.3s,核心耗费时间在installPackages这块,耗费时间为4.9s。

总结:

上面已经分享了3-4种的统计apk安装时间的方法,这里作为开发,大家可以首选Perfetto的方式进行统计,然后再找到相关的apk安装的性能瓶颈点进行相关的优化,优化后,再使用同样方式进行查询apk的安装时间。

https://mp.weixin.qq.com/s/y6QTYQec_otf1Ixj2bst2g

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

千里马学框架

帮助你了,就请我喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值