首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
iOS 基建技术
订阅
榛子田
更多收藏集
微信扫码分享
微信
新浪微博
QQ
18篇文章 · 0订阅
一个iOS程序员的自我修养(三)Mach-O文件静态链接
上文分析了 Mach-O 文件的整体结构,那么 Mach-O 文件是怎么来的呢?其中一个重要的过程就是静态链接,链接器将所有输入的 “.o” 文件打包输出可执行文件,可以简单理解这个可执行文件就是 Mach-O 文件,因为本篇主要分析静态链接,所以暂且理解为静态链接后生成了最终…
一文读懂崩溃原理
64位系统对应的__PAGEZERO段地址空间为0~4GB,在这个范围内所有访问权限-读、写和执行-都被撤销,因此若访问该地址就会引发MMU的硬件页错误,进而产生一个异常。 为了防止一个应用占用过多的系统资源,开发iOS的苹果工程师门设计了一个“看门狗”Watchdog的机制。…
一文读懂fishhook原理
fishhook是facebook开源的第三方框架。从名称上看含有hook这个词,其本意就是"钩子",钩子就是用来勾住某一种事物,比如fish鱼。在计算机中就可以勾住某一个程序(就是挂钩程序)或者某一个函数,从而扩展程序功能或者改变程序运行的流程,比如在iOS开发中经常会被用来…
谈谈Mac进程间通信--XPC
XPC Service是一种整合了GCD与launchd的一种轻量级进程间通信机制,其主要目的是提供:权限分离和稳定性。 XPC Service由launchd来管理其启动、监视及终止,比如崩溃恢复,服务完成或者闲置会被kill -9终止,更好地管理XPC服务的生命周期。 通过…
运行时Hook所有Block方法调用的技术实现
本技术实现在YSBlockHook中。 iOS系统中一共有:C函数、Block、OC类方法三种形式的方法调用。Hook一个方法调用的目的一般是为了监控拦截或者统计一些系统的行为。Hook的机制有很多种,通常良好的Hook方法都是以AOP的形式来实现的。 当我们想Hook一个OC…
深入iOS系统底层之程序映像
绿树阴浓夏日长,楼台倒影入池塘。--《唐高骈·山亭夏日》 iOS系统生成的可执行程序或者动态库文件的存储布局格式被称之为mach-o格式。文件中存放着程序的代码和数据,而程序运行时系统会为其建立一个进程,以及分配虚拟内存空间。同时会把程序文件中的内容加载到虚拟内存地址空间中去,…
深入iOS系统底层之静态库
少长咸集,群贤毕至。--《王羲之・兰亭集序》 程序员编写的是源代码,而计算机运行的则是CPU能识别的机器指令,因此必须要有一系列工具或程序来将源代码转化为机器指令,这个转化的过程需要经历编译和链接两个主要阶段。所谓编译就是将源代码文件转化为中间的目标文件(Object file…
Thunk程序的实现原理以及在iOS中的应用(二)
👉Thunk程序的实现原理以及在iOS中的应用 入口处。 thunk程序其实就是一段代码块,这段代码块可以在运行时动态构造也可以在编译时构造。thunk程序除了在第一篇文章中介绍的用途外还可以作为某些真实函数调用的跳板(trampoline)代码,以及解决一些函数参数不一致的…
Thunk程序的实现原理以及在iOS中的应用
在说Thunk程序之前,我想先通过一个实际中排序的例子来引出本文所要介绍的Thunk技术的方方面面。 这个函数要求提供一个排序的数组指针base, 数组的元素个数nmemb, 数组中每个元素的尺寸size,以及一个排序的比较器函数compar四个参数。下面的例子演示了这个函数的…
深入iOS系统底层之crash解决方法
一个应用程序并不总会一直运行的很好,它总会有出现crash崩溃的情况。如果在应用程序中接入了一些第三方的crash收集工具或者自建crash收集报告平台的话将会很好的帮助开发者去分析和解决应用程序在线上运行的问题,当出现的崩溃问题能得到及时的解决和快速的修复时必将会大大的提升应…