App启动性能分析

1.基本的测试cheklist和手段

但不限于这些,具体的是根据业务来决定的

2.专项测试(用户维度)

  • 崩溃(Crash,弱网)
  • 卡顿(掉帧、gc、cpu)
  • 响应慢(启动时间、交互时间、H5加载)
  • 发热(cpu,mem、io、network、gps等硬件的使用)
  • 掉电快(硬件占用)
  • 兼容性问题(机型覆盖、回归)

3.app启动

app性能,有的app还有与app之间的交互,比如app中去用微博、微信等登录的场景, App交互的时候可以指定任意activity,activity之间的耦合性是很小的

android官方的图如下:activity启动流程

第一件事:启动

   第一步底层系统(可能是linux,安卓主要依赖于linux系统)启动app

   第二步调起activity,创建白窗口什么都不做

   第三步启动进程

第二件事:启动object,加载

  启动一个object,onCreate,类似于去调用对象,紧接着去创建一个Mainthread,创建一个主线程;主要用来加载我们的activity,mainacticity(用来做页面的初始化,数据初始化,页面的渲染),到了displayed time的时候已经渲染完成,会对前面打开的空白窗口进行对调(要记住)

other stuff 可能页面已经加载完了 但是还没有加载完全,还有一个动态加载的过

这整个过程是非常快的

主要流程:

app启动性能指标:

  • 冷启动
  • 暖启动
  • 热启动
  • 首屏启动

各指标描述如下

冷启动:重新安装进行启动等,冷对应已经被kill掉了,重新启动,冷启动对应的就是上面分析的打开app的一个过程,不包括other stuff 一定要记住(场景:数据全被清掉了,或者重新安装启动)

热启动:说明app还活着,放在后台运行,去微信聊天再回来

暖启动:app在后台待得时间久了,可能系统已经杀掉了app内存,用户此时再重启app,其实会有一些object进行保留;初始化的时候会把加载的东西保存在手机上(这些并不会完全丢掉)

首屏启动:就是加上other stuff

最重要的是冷启动!!因为暖启动和热启动本来时间就很短,不需要优化了;首屏启动

建议时间只是做参考,没有太大意义

录制1秒进行拆成10帧,可以计算首屏启动的时间;adb logcat只能计算首屏之前的时间,因此只能查看activity的加载时间,所以是不准确的

traceview是安卓的一个分析工具,了解即可

硬埋点:要求开发人员,在app启动之前加一个卖点,启动完成之后,结束埋点将数据回传到服务器,将埋点结束时间回传至服务器,需要开发人员配合,通常不经常采用

-s就是启动前先停掉,为了保险

-w等待activity启动完成 

1

2

3

4

5

package=com.xueqiu.android

adb shell pm clear $package

adb shell am force-stop $package s

adb shell am start --W $package/.view.WelcomeActivityAlias(手动启动和使用命令是差不多的)

adb logcat|grep -i displayed

 

如下为运行结果:

Total time是最重要的this time和Total time是一样的

wait time稍微长一点,它是受系统的操作快慢的影响 

首先需要下载 ffmpeg工具,然后执行以上命令:

Mac用&符号可以后台运行

下载下来:. 表示下载到本地当前目录

拆帧 也可以使用自己的拆帧工具这里推荐使用ffmpeg -r 10就是一秒拆成10帧 

具体步骤,将app启动的视频保存到本地,拆成图片并查看从页面启动到启动完成,一共是多少张图片,图片数目n/10(1秒拆成10帧)就是最后的app启动时间

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值