首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
编译
订阅
火柴盒环游记
更多收藏集
微信扫码分享
微信
新浪微博
QQ
17篇文章 · 0订阅
iOS 符号二三事
调试符号:包括行号信息的调试符号信息,行号信息中记录了函数和变量所对应的文件和文件行号。 Mach-O 中可以保存有调试信息,Mach-O采用DWARF (Debug With Arbitrary Record Foramt) 的标准调试信息格式。DWARF 中调试信息也可以单…
iOS底层原理:weak的实现原理
该方法的两个参数location和newObj。 从上面的代码可以看出objc_initWeak方法只是一个深层次函数调用的入口,在该方法内部调用了storeWeak 方法。下面我们来看下storeWeak 方法的实现代码。 如下是storeWeak方法的实现代码。 store…
老司机 iOS 周报 #108 | 2020.04.06
老司机 iOS 周报,只为你呈现有价值的信息。 你也可以为这个项目出一份力,如果发现有价值的信息、文章、工具等可以到 Issues 里提给我们,我们会尽快处理。记得写上推荐的理由哦。有建议和意见也欢迎到 Issues 提出。 @水水:现在,可以在通用购买中包含 app 的 ma…
编译链接二三事
少部分动态库在程序启动加载时,通过dyld链接。 大部分动态库的第一次使用时,才通过dyld链接(减少启动耗时)。 跨端UI框架Flutter同样支持AOT和JIT;在Debug 模式下,采用 JIT即时编译,Release 模式下采用的是 AOT 静态编译。其中,JIT将 D…
iOS逆向(5)-不知MachO怎敢说自己懂DYLD
窥一斑而知全豹,从这些许内容其实已经可以了解到MachO在我们APP中的地位是多么的重要。同样,在咱们逆向的实践中,MachO也是一道绕不过去门槛! 目前已知的架构分为armv7,armv7s,arm64,i386,x86_64等等,MachO中其实也是这些架构的集合。可以随意…
dyld背后的故事&源码分析
dyld(the dynamic link editor)是苹果的动态链接器,是苹果操作系统的一个重要组成部分,当系统内核做好启动程序的准备工作之后,余下的工作会交给dyld来负责处理。那它存在的意义是什么?它又具体都负责做些什么呢?这一篇我们一起来一探究竟。前方长篇预警~ 存…
iOS底层学习 - 从编译到启动的奇幻旅程(一)
总体来说,一个APP从编写完代码到运行,就经历了两大步骤,即编译和运行,这一章节,主要来看一下APP的进行编译的。 iOS的代码,是通过编译器将代码直接编写成机器码,然后直接在CPU上运行机器码的,这样能使得我们的app和手机都能效率更高,运行更快。C,C++,OC等语言,都是…
iOS进阶之路 (八)dyld加载流程
1. 编译过程 链接(Linking):将源文件中用到的库函数与汇编生成的目标文件.o合并生成可执行文件。链接器将不同的目标文件链接起来,因为不同的目标文件之间可能有相互引用的变量或调用的函数,如我们经常调用Foundation框架和UIKit 框架中的方法和变量,但是这些框架…
工作6年,私藏的25个,调优工具/技术网站,我贡献出来了
对于程序员来说,不停的学习新技术,是我们一直要做的事情,平时不积累,等到金三银四,金九银十的跳槽季节,身边的朋友,一个个的拿着高薪跳槽,自己只能眼巴巴的看着,后悔平时没有积累学习。 LeetCode: 被称为刷题神器,里面有很编程算法面试的海量题目,可以在线编译运行,难度比较高…
如何实现 iOS App 的冷启动优化
当 App 中的业务模块越来越多、越来越复杂,集成了更多的三方库,App 启动也会越来越慢,因此我们希望能在业务扩张的同时,保持较优的启动速度,给用户带来良好的使用体验。 当用户按下 home 键,iOS App 不会立刻被 kill,而是存活一段时间,这段时间里用户再打开 A…