02 | App 启动速度怎么做优化与监控?

2019-03-14 戴铭
《iOS 开发高手课》
课程介绍


讲述:冯永吉

时长:大小17.57M


你好,我是戴铭。
我已经在专栏的第一篇文章中,和你梳理了一份 iOS 开发的知识体系框架图。今天,我们就正式从基础出发,开始自己的 iOS 开发知识体系构建之路吧。接下来,我就先和你聊聊与 App 启动速度密切相关的那些事儿。希望你听我说完启动速度的事儿之后,在专栏里的学习状态也能够快速地启动起来。
在文章开始前,我们先设想这么一个场景:假设你在排队结账时,掏出手机打开 App 甲准备扫码支付,结果半天进不去,后面排队的人给你压力够大吧。然后,你又打开 App 乙,秒进,支付完成。试想一下,以后再支付时你会选择哪个 App 呢。
不难想象,在提供的功能和服务相似的情况下,一款 App 的启动速度,不单单是用户体验的事情,往往还决定了它能否获取更多的用户。这就好像陌生人第一次碰面,第一感觉往往决定了他们接下来是否会继续交往。
由此可见,启动速度的优化必然就是 App 开发过程中,不可或缺的一个环节。接下来,我就先和你一起分析下 App 在启动时都做了哪些事儿。

App 启动时都干了些什么事儿?

一般情况下,App 的启动分为冷启动和热启动。<...

展开全文
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。

精选留言

  • Glenn•D
    置顶
    2019-03-15
    模拟器上试了一下耗时检查没有效果

    作者回复: 需要真机,arm64芯片,模拟器是 x86

    
    3
  • 好多余先生丶
    置顶
    2019-03-14
    完了,上来就懵逼

    作者回复: 可以从作业入手,学习不能着急,需要慢慢来,多重复就会有更多体会

    共 3 条评论
    117
  • Neo
    置顶
    2019-03-14
    不错 提纲挈领 希望汇编那块能稍微细讲一下 没有太多写汇编的经验

    作者回复: 汇编语言入门可以看阮一峰老师的《汇编语言入门教程》啊。链接是 http://www.ruanyifeng.com/blog/2018/01/assembly-language-primer.html 。以后可以考虑写个 iOS 视角的

    
    27
  • 西京富贵兔
    2019-03-14
    看完这篇我膨胀了,我都敢去点 objc_msgSend 源码文件了,嗯,不出意料,一句没看懂。。。

    作者回复: 哈哈

    共 2 条评论
    33
  • 星空
    2019-03-14
    友情提示:想要尝试SMCallTrace的朋友,需要在SMCallTrace.m中打开第54行的注释。

    作者回复: 赞

    
    30
  • 嗨
    2019-03-14
    只有C和OC基础,学起来很吃力

    作者回复: 想要一个东西就去买,喜欢一个人就去追,哪怕最后那个东西没有用,那个人没有跟你在一起,都没有关系,人生苦短,要知道遗憾要比失败可怕的多。

    共 2 条评论
    21
  • 冰风落叶
    2019-04-04
    大佬们 这是我的写的总结和课后作业 不知道写的对不对 恳请各位大佬指正 总结:https://www.jianshu.com/p/f26c4f16692a 课后作业:https://github.com/308823810/BSMonitorTimeTool

    作者回复: 赞

    共 3 条评论
    19
  • 哈
    2019-03-14
    说swift没有main函数那位,其实swift是有main函数的,只不过苹果把它精简成了一个@NSApplicationMain了而已,不信去你的AppDelegate.swift最上面看!

    作者回复: 赞

    
    19
  • Justin
    2019-03-15
    戴老师:多个动态库进行合并,具体怎么合并了,没弄过动态库合并该功能

    作者回复: https://blog.automatic.com/how-we-cut-our-ios-apps-launch-time-in-half-with-this-one-cool-trick-7aca2011e2ea 了解下

    共 5 条评论
    17
  • Kam
    2019-03-14
    这个方法耗时计算的工具很赞,白天要花点时间实践一下才行。 有个让我疑惑的地方是关于“热启动”的概念,我再去看了下 WWDC 上的说法,里面提到热启动应该也包括“启动后退出 App 再启动”这种情况,不知道我下面这段话的理解是否正确: “And a warm launch is an app where the application is already in memory, either because it's been launched and quit previously, and it's still sitting in the discache in the kernel, or because you just copied it over.” - https://developer.apple.com/videos/play/wwdc2016-406/?time=1484
    展开

    作者回复: 官方的解释很全面,情况都说清楚了

    共 2 条评论
    15