你想知道App是怎么显示到我们眼前的吗?你想知道点击Run之后发生了什么吗?你想知道在Main函数之前都还有那些你不知道操作吗?你想知道在Objective-C和Swift混编的时候这么处理AppDelegate吗?你想知道UIApplication都干了撒吗?你想知道怎么优化App启动过程吗?你想知道…..你撒都想知道,那还等什么?
前言
本文的起因:
- 前段时间在研究App启动相关内容,还有启动优化相关的东西,网上寻找了一下相关的资料并试着在整理,也自己试着去验证了其中的一些步骤。
- 公司项目是Objective-C版本的,大部分相关类都已经使用Swift重写了,后期新增的功能都使用的Swift混合开发。但是由于项目庞大又复杂,没有时间也没有精力去完全使用Swift重写。
- 因为从Swift一出来我就在学习,但是并没有在实际项目中应用到Swift,从1.0到2.0,再到3.0都有了解和学习相关的语法。但是近四年来一直都在使用OC和学习各种技术,以致于Swift其实该忘的也忘得差不多了。网上有句话:Swift从入门到入门。相信你既然都能看到这里,肯定明白其中的原因。所以我又开始重写学了一遍Swift,这一次是Swift3.1开始学,其实Swift4已经出来了,但是和3.1并没有太大的变化。
- 因为公司每个星期都有一个技术分享,所以我觉得去试一次,希望能把我知道的东西通过口述的方式分享出来。(不过分享的结果很差,毕竟是第一次,所以导致最后连我自己都不知道自己在说什么),同时这也是我在公司内部做的第一次技术分享的主题。
- 这一次,我希望能彻底从OC转到Swift进行实际开发。
资料地址: iOS——App整个启动过程分析。如果你觉得有用希望能给个star,或者有什么疑问欢迎issuse也欢迎联系我,谢谢!
首先申明,本文大部分会以理论和实际分析,不会涉及的太多的代码实战,也不会涉及到太多相关术语的解释,当然部分会给出链接地址,但是力求从下面几个问题并结合实际App的启动过程,让你了解代码之前所干的事情和处理实际开发中遇到的相关问题….
- 点击Run之后发生了什么,以致App能够显示在我们的眼前?
- Main函数之前苹果还为我们的App做了哪些操作?
- OC项目中怎么使用Swift重写AppDelagate?
- UIApplication&UIApplicationMain背后做了什么?
- 如何优化App启动过程?
……
本文篇幅会比较长,但是如果你能完全掌握里面的内容和应用,足以让你有一个质的提升,当然这是在你不了解上面我提到的情况下。
好了,废话说太多没有什么意思……开干!
2016 WWDC(苹果提供的启动优化方案)
https://developer.apple.com/videos/play/wwdc2016/406/
优化 App 的启动时间(各个阶段优化与处理)
iOS 程序 main 函数之前发生了什么
http://blog.sunnyxx.com/2014/08/30/objc-pre-main/
点击 Run 之后发生了什么?(Build类似)
http://www.jianshu.com/p/d5cf01424e92
Xcode编译性能优化(各个阶段优化实战与对比)