1、本节课知识点大纲:
![](https://i-blog.csdnimg.cn/blog_migrate/9a8d30dbf3c93b95edee0f2650766c71.png)
iOS系统框架
2.iOS系统框架
2.1框架 Frameworks
框架的原文是Frameworks,而Frameworks的本意,是指一个核心的支撑结构,任何东西都可以搭建在他之上,是一个通用的,可复用,具备特定功能的软件或是环境,他可能包含了代码库,API文件,或是一些工具的集合体。
2.2iOS 框架 iOS Frameworks
Framework是一个有层级的目录,他将 动态代码库,nib files,图片文件,头文件和参考文件 全部封装成一个单一的资源包,多个程序之间可以同时共用它,并被程序调用去执行某个任务。
简单来说,对于Xcode而言,Framework就是一个文件后坠为 .framework的文件包,里面包含了与其相关的文件,程序在启动时会将它加载进内存。
2.3iOS Framework 文件夹
Headers文件夹,里面是存放了大量的.h头文件,里面记录了这个Framework对外开放类的声明或是一些静态变量...等
Framework同名的二进至文件,它的类型在Finder显示是 Unix executable 可执行文件,大家可以理解为里面记录的就是系统的实现代码被编译后的产物。
Framewoek资源文件夹Resources
![](https://i-blog.csdnimg.cn/blog_migrate/dd11ed288ed6b1049826961619b05f1d.png)
Foundation.framework / Headers
![](https://i-blog.csdnimg.cn/blog_migrate/d9ea4c905162d25a5074c3ac30baaba3.png)
3.iOS 系统框架 iOS System Frameworks
苹果官方为开发者准备了上百个稳定且成熟的框架,而大部分的框架都只提供了 Objective-C 跟 Swift的接口
![](https://i-blog.csdnimg.cn/blog_migrate/a9d7df8ff644559d96c390493be20249.png)
3.1系统框架分层
所有的系统框架可以被分作四层(四个Layer),分别是 Cocoa Touch (触摸层),Media (媒体层),Core Services (核心服务层),以及 Core OS (操作系统层),
![](https://i-blog.csdnimg.cn/blog_migrate/cafbd4690da041c743c6e394a523794a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6754bc5b5ee1df87cd70e5930f4f3868.png)
3.1.1系统框架分层 - Core OS
位于最底层的是CoreOS 核心操作系统层,这层提供的这些框架,已经是苹果提供的最靠近硬件的框架,通常情况下,这些功能不会直接应用于我们的应用程序,而是应用于其他框架。但是,在直接处理安全事务或和其他设备通讯的时候,则必须要应用到该层的框架。
可以利用CoreBluetooth 框架使用蓝牙和外部设备交互
Security框架提供管理证书,公钥私钥的策略
如果有复杂的计算可以使用Accelerate框架,委托硬件进行计算
![](https://i-blog.csdnimg.cn/blog_migrate/e1196f4100f649a55492ba9d557a1e33.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3149c097a3004aa831b0ac8936bcad25.png)
3.1.2系统框架分层 - Core Service层
第二层是提供应用程序所需要的基础系统服务的核心服务层 Core Service ,
![](https://i-blog.csdnimg.cn/blog_migrate/2138b6e95dbb71586a8830cf07c23c30.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b578196e8c1e52f2a1e8b278029611d0.png)
3.1.3系统框架分层 - Media层
媒体层里的框架功能就更明确了,是提供包括图行,音频,视频相关的技术支持
如果你想要开发一个短视频/直播,或是滤镜相机之类的App,那就会需要跟这一层的框架多打交道了。
![](https://i-blog.csdnimg.cn/blog_migrate/539717eec7d58f13ca71cabcbee889a2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/91f805ba1fd5be9ccf4df69400d2c2d6.png)
3.1.4系统框架分层 - CocoaTouch层
最上一层 CocoaTouch层,大部分框架都与界面有关,也都具备自己特定的UI介面
其中包含了开发App的最重要的框架之一 UIKit,UIKit提供了大量的UI控件,例如按钮, Label,滚动列表,宫格视图,以及App的页面UIViewController 和 UIView试图
一个App的使用介面,跟页面之间的跳转都离不开UIKit,我们也会在后面的课程专门去介绍UIKit 介绍如何搭建App的页面。
其他像是MapKit地图框架 和 NotificationCenter 通知中心框架也是开发常用的。
![](https://i-blog.csdnimg.cn/blog_migrate/7cb3f788156133fe8771cb3bef2a9fb1.png)
![](https://i-blog.csdnimg.cn/blog_migrate/84aa7e2c6e80b3bd3a0174c246e51df6.png)
3.2系统框架存放位置
SDK下的 /System/Library/Frameworks 对应所有的系统框架了,
设备上的iOS文件路经中,也有 /System/Library/Frameworks 文件夹,里面也放著对应的系统框架,并且是包含实现的也就是包含可执行文件。于是我们的App在启动时,也能链接到对应的Framework,并且正常执行
![](https://i-blog.csdnimg.cn/blog_migrate/6739bc4b4749806b60cbbdd2c475c6a2.png)
原文链接:https://juejin.cn/post/7128809789626253326
★文末名片可以免费领取音视频开发学习资料,内容包括(FFmpeg ,webRTC ,rtmp ,hls ,rtsp ,ffplay ,srs)以及音视频学习路线图等等。
见下方!↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓