APP启动速度是一个APP体验好坏最重要的一个标志,一般APP上线之前都会进行启动速度的专项测试,最近看了很多这个测试方法,发现大家说的都不一致,我在这里总结下,用下面这个方法测试出来的启动速度是比较贴合用户实际使用感觉的。

名词解释

  • 启动速度:所谓启动速度,我给出的定义是从按下APP icon开始,到加载完启动页后第一个页面显示出来的时间。有时候这个页面是广告页,也可能是登陆页或者首页。
  • 冷启动:冷启动就是APP进程不在系统里时,点击启动APP。
  • 热启动: 热启动就是APP进程存活在系统里时,点击启动APP。

Android启动速度测试方法

Android 的启动速度测试方法很简单,官方有给出命令,所以我们直接用给出的命令测试就好了

  • 启动命令:
adb shell am start -W -n 包名(appPackage)/类名(appActivity)
#例如
com.taobao.example/.activity.MainActivity

其中,com.taobao.example是这个APP的包名,.activity.MainActivity是这个APP的MAIN Activity,也就是启动APP的第一个页面的Activity。

如截图展示所示,这个APP的启动时间大概在2227ms。

IOS APP 启动时间测试方法

相比较Android,IOS APP 的启动时间测试方法就会复杂很多,IOS的启动时间分为执行main方法前和main方法后,两个时间加起来就等于启动时间,所以先列出来这个公式:

IOS APP启动时间 = main方法执行前的时间 + main方法执行后的时间

1.main方法执行前的时间统计方法
使用xcode打开要测试APP项目的代码,按 command + shift + , 进入下面这个页面

勾选环境变量勾选DYLD_PRINT_STATISTICS_DETAILS = 1
然后RUN一下APP,在日志中就可以打印出来APP的main方法执行之前所花费的时间了,

total time就是main方法执行之前所花费的时间,为2.2秒。

  1. main方法执行后的时间计算方法
    main方法执行后所花费的时间需要在代码里面打点才能知道,首先找到main.m文件,插入如下代码
#在main.m顶部插入
CFAbsoluteTime AppStartLaunchTime;#main方法中插入
int main(int argc, char * argv[]) {AppStartLaunchTime = CFAbsoluteTimeGetCurrent();......
}

其次,找到启动后第一个页面的m文件,这个页面有可能是首页,也有可能是广告页,然后插入如下代码:

#在顶部插入
extern CFAbsoluteTime AppStartLaunchTime;#在viewDidLoad方法中插入
- (void)viewDidLoad {dispatch_async(dispatch_get_main_queue(), ^{NSLog(@"App启动时间--%f",(CFAbsoluteTimeGetCurrent()-AppStartLaunchTime));});......

然后启动一下,查看一下日志打印,发现main方法执行后所花费的时间会打印出来:

花费时间4.64秒。
所以,APP总的启动时间为2.2 + 4.64 = 6.88秒。

我看网上有些人把第上述的第二块代码插入到了AppDelegate.m文件夹下,个人觉得这种方法跟实际感受到的启动时间有出入,这个页面只是APP启动页显示出来的时间,而不是APP启动后第一个页面加载出来的时间,严格来说,启动页加载出来时,不能算是APP完全启动完成。

AndroidIOS APP启动速度专项测试方法相关推荐

  1. 功能测试(八)—— APP之专项测试、性能测试、性能测试工具SoloPi

    目录 APP测试要点 目标 一.APP专项测试 1.1 兼容性 1.2 安装 1.3 卸载 1.4 升级 1.5 干扰测试(交叉事件测试) 1.6 Push推送 1.7 用户体验 二. 性能测试工具 ...

  2. APP启动速度是门面,如何做到极致优化?

    大家好,我是极客时间专栏<iOS 开发高手课>的作者戴铭.之前我在专栏中跟大家梳理过成为一名开发高手所必备的知识体系,感兴趣的同学可以直接去APP里免费看看.今天想和大家一起分享一些干货, ...

  3. app启动速度优化实践

    外链:http://2d7eb962.wiz03.com/share/s/0JvHBy3NOASk2pFO7C39hO7i0ulHDJ32D4KW2AZQuK1p0cxF 延迟初始化 基于applic ...

  4. 友盟+U-APM:全方面无忧助力APP启动速度优化

    首先,我们来说一说影响移动APP启动速度的原理以及因素有哪些. 要想了解APP的启动,需要先了解APP的基本启动方式. APP启动方式粗略来看有三种:冷启动(cold start).热启动(hot s ...

  5. Android开机启动速度优化 app启动速度优化

    众所周知Android开机启动速度较慢,于是如何加快启动速度便成为一个值得讨论的问题.在查阅过许多资料后(特别是Google Group的android-platform),我整理总结出下面几点基本看 ...

  6. 安卓APP合规测试方法“火”了

    前天群里有人抛出app合规怎么测试,领导就抛出xx你去测试下app合规,然后这下群里就开始讨论,没有测试规范,没有测试标准怎么测试,有人讨论主动测试,寻找知识解决问题,走上加薪升职星光大道,有人说活多 ...

  7. IOS开发高手课第二篇 App 启动速度怎么做优化与监控?

    02 | App 启动速度怎么做优化与监控? 我已经在专栏的第一篇文章中,和你梳理了一份 iOS 开发的知识体系框架图.今天,我们就正式从基础出发,开始自己的 iOS 开发知识体系构建之路吧.接下来, ...

  8. App 启动速度优化

    前言​​​​​​​ APP打开的一瞬间速度快慢:就好比人的第一印象,快速的打开一个应用往往给人很舒服的体验.app经常性卡顿启动速度很慢,这无疑是对用户的流失. 启动方式介绍 APP启动的方式分为3种 ...

  9. APP启动速度慢,如何正确优化?

    由于APP经常出现启动问题,像启动速度缓慢.启动耗时久等问题,所以,大家都对APP启动速度优化比较感兴趣,那么,下面我来给大家分享几个优化小妙招! 一.对APP启动性能进行分析 我个人认为分析APP启 ...

最新文章

  1. JavaScript中的各种宽高以及位置总结
  2. linux中设备配额 磁盘加密
  3. numeric比较大小 数据库_Liquibase 数据库版本管理工具:3. changeSet 变更集详解
  4. HDU1054 Strategic Game —— 最小点覆盖 or 树形DP
  5. 支持Linux分区移动的,Linux怎样支持2T以上大硬盘分区
  6. java函数式编程的好处
  7. 字符编码发展史和密码算法那些事儿
  8. wap手机网页(网站)自适应中部悬浮小广告代码【靠右侧】
  9. 校内互测题 by LMY (FSN)
  10. AndroidStudio 制作一个超简易记账本App(1.0)【含详细步骤】
  11. MATLAB仿真节点个数和节点通信半径与网络连通率的关系,WSN实验
  12. 50 岁的 C 语言,掌控 Windows、Linux、macOS 等操作系统半边天
  13. PDF怎样编辑,PDF如何删除水印
  14. php开发环境搭建和基础入门
  15. 苹果这一次太强硬!如果你的 App 拒绝支持这些技术,将在2020年4月30日后全面下架!...
  16. 黑马程序员—C#多线程
  17. 请把ios文件解压出来是什么意思_新款 | 扁平黑白浅色安卓 / 附改色教程 / iOS 版图稿预览...
  18. andorid第三方不错的效果(持续更新)
  19. ncr管理系统_NCR安全的软件配置
  20. Android判断手机ROM

热门文章

  1. 99%的游戏建模师不知道的ZBrush的15个建模技巧
  2. 电视hdmi接口在哪_变废为宝!把旧笔记本电脑当电视盒子用
  3. Ubuntu20.04+GTX1060+显卡驱动+CUDA11.8+cuDNN8.5.0
  4. kali 控制安卓手机
  5. 大疆2019校招提前批机器学习算法工程师在线笔试题目回忆版
  6. 值得一生珍藏的经典台词
  7. 虚幻引擎图文笔记:使用MixamoConverter对Mixamo动画重定向成UESkeleton匹配动画
  8. Cesium实现UnrealBloom泛光效果
  9. 匈牙利算法与python实现
  10. HTTP-Runoob:HTPP Content-Type