
一位脚踏实地,拥有梦想的90后!
本来小编想先把内存这块梳理下,但是联系到内存在 iOS 平台中也是 app 编译后的 Mach-O 可执行文件,所以就先把 OS 编译启动过程来讲述。
因为小编是一位 iOSer 这里讲解进程可以大概理解为:进程 == App,下面给出进程的生命周期。进程的生命周期可以分为:创建(SIDL)、运行(SRUN)、睡眠(SSLEEP)、停止(SSTOP)、退出ing(SZONE)和终止(Dead)。

SIDL 这个状态是被父进程刚刚 Fork 创建生成一个唯一的 PID,处于一个临时空闲状态。此时让然被称为:“正在初始化”,不会响应任何的信号和操作。这个初始化的过程是在单线程中来进行内存布局设置和加载所需要的引来模块。
实现处理完成只有进程可以执行,同时不会返回 SIDL 状态。相当与用户在手机屏幕点击 ICON 按钮后执行。
本来小编想先把内存这块梳理下,但是联系到内存在 iOS 平台中也是 app 编译后的 Mach-O 可执行文件,所以就先把 OS 编译启动过程来讲述。
因为小编是一位 iOSer 这里讲解进程可以大概理解为:进程 == App,下面给出进程的生命周期。进程的生命周期可以分为:创建(SIDL)、运行(SRUN)、睡眠(SSLEEP)、停止(SSTOP)、退出ing(SZONE)和终止(Dead)。

SIDL 这个状态是被父进程刚刚 Fork 创建生成一个唯一的 PID,处于一个临时空闲状态。此时让然被称为:“正在初始化”,不会响应任何的信号和操作。这个初始化的过程是在单线程中来进行内存布局设置和加载所需要的引来模块。
实现处理完成只有进程可以执行,同时不会返回 SIDL 状态。相当与用户在手机屏幕点击 ICON 按钮后执行。

上面是 XNU 内核在架构图,由上图我们可以看出 XNU 包含:Mach 微内核、BSD 层、libKern 和 I/O Kit。
Mach 微内核Mach 微内核研发者是卡内基梅隆大学开发的操作系统,主要是致力于开发一套轻量级且高效平台。这个成果的就是我们讲述的 Mach 内核。
该操作系统包含:
1、进程和线程的抽象;
2、虚拟内存管理;
3、任务调度;
4、进程间通信和消息传递机制。
BSDBSD 是建立在 Mach 基础上,同样也是 XNU 不可分割的一部分。这一层也是提供了 POSIX 兼容性,提供的更高层次的抽象。包含:
1、
UNIX进程模型;
2、POSIX线程模型及其相关的同步原语;
3、UNIX用户模型和组;
4、网络协议栈;
5、文件访问系统;
6、设备访问。
libKern在内核构建时都会采用 C 和汇编来实现,而 XNU 是采用 I/O Kit 来实现驱动,再次基础上可以瞒住 C++ 来实现编写。于是就在此的基础上包含 libKern 库。
I/O Kit这是 Apple 对常见 XNU 引入 I/O Kit 设备驱动框架,是一个完整的自包含执行环境,让开发者快速创建设备驱动程序。I/O Kit 形成了受限环境 C++,并且带有 C++ 提供的功能:继承和重载。
在 Core Graphics 后面一篇文章本该对 Core Image 框架进行整理,但是基于 Core Graphics 的富文本编辑 Core Text 框架更方便讲述。而且结合自己兴趣和好玩的程度在讲述自己对 Texture 即 ASDK 和 YYKit 详细描述。
这里小编对 Core Text 在实现的层次结构上所处位置,以及在对 UIKit 框架我们常见控件 UITextFiled、UITextView 和 UILabel 具体实现基础。

more >>上图是小编根据 2018 WWDC 中 TextKit Best Practices 和 Introducing Text Kit 得出
Core Graphics、Core Text和UIKit中能够实现文本绘制的控件实现结构图。
根据上面结构可以看出:
(1)基于Quartz封装的Core Graphics为Core Text的实现基础。而且Quartz可以直接处理字体和字形将文字渲染到界面,也是在 Apple 基础库中唯一一个处理字体模块。
(2)基于Core Text封装实现的Text Kit为在UIKit和AppKit中文本显示控件TypeTextFiled、TypeTextView等提供最直接的接口。
在 Core Graphics 后面一篇文章本该对 Core Image 框架进行整理,但是基于 Core Graphics 的富文本编辑 Core Text 框架更方便讲述。而且结合自己兴趣和好玩的程度在讲述自己对 Texture 即 ASDK 和 YYKit 详细描述。
这里小编对 Core Text 在实现的层次结构上所处位置,以及在对 UIKit 框架我们常见控件 UITextFiled、UITextView 和 UILabel 具体实现基础。

more >>上图是小编根据 2018 WWDC 中 TextKit Best Practices 和 Introducing Text Kit 得出
Core Graphics、Core Text和UIKit中能够实现文本绘制的控件实现结构图。
根据上面结构可以看出:
(1)基于Quartz封装的Core Graphics为Core Text的实现基础。而且Quartz可以直接处理字体和字形将文字渲染到界面,也是在 Apple 基础库中唯一一个处理字体模块。
(2)基于Core Text封装实现的Text Kit为在UIKit和AppKit中文本显示控件TypeTextFiled、TypeTextView等提供最直接的接口。
又是一个常用但是不知怎么开篇博文。🤔🤔🤔
Core Graphics 在 iOS 整个架构的层次结构可以和上篇 Core Animation 实现,这里仅仅展示 Core Graphics 实现的基础实现架构。

在讲解 Core Graphics 之前还是按照小编的🍉惯,对该框架 API 的接口进行整理。
