对于 iOS 的底层原理,该探索些什么?

微信扫一扫,分享到朋友圈

对于 iOS 的底层原理,该探索些什么?

问题

想了解 iOS 的底层原理,我们该从哪里入手呢?

探索

首先作为 iOS 开发者,我们都知道新建一个工程,首先进入的就是 main 函数,那我们就在此处下个断点,然后使用在控制台使用 bt 查看下调用栈,如下:


我们发现在 main 函数之前系统还做了一些其他的事,可以看到两次 start 的调用,其位于 libdyld.dylib 底层库,为了进一步了解,我们来插入 _objc_init、libdispatch_init、libSystem_initializer 三个符号断点,如下:


断点下好之后,我们重新运行我们的项目,就可以看到很多其他的调用栈了。


通过以上方式,可以查看到在 main 函数之前还涉及如下的一些底层库。

  1. libSystem.B.dylib(libSystem_initializer,连接系统函数库)
  2. libdispatch.dylib(libdispatch_init,对应系统 GCD)
  3. libobjc.A.dylib(_objc_init,对应底层 runtime)

发现

进入 main 函数之后,我们可以通过 bt 指令来查看系统调用了哪些库的全貌。

综上所述,我们可以知道要探索 iOS 底层原理,可以从 dyld 启动加载动态库、libSystem、以及类、分类、协议、属性、对象、runtime、runloop、kvc、kvo 等内容出发。

微信扫一扫,分享到朋友圈

对于 iOS 的底层原理,该探索些什么?

python之图像仿射变换实战-提取手写数字图片样本

上一篇

ES6(三)—— 数组

下一篇

你也可能喜欢

对于 iOS 的底层原理,该探索些什么?

长按储存图像,分享给朋友