1、本节课知识点大纲:
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
- Foundation.framework / Headers
3.iOS 系统框架 iOS System Frameworks
苹果官方为开发者准备了上百个稳定且成熟的框架,而大部分的框架都只提供了 Objective-C 跟 Swift的接口
3.1系统框架分层
所有的系统框架可以被分作四层(四个Layer),分别是 Cocoa Touch (触摸层),Media (媒体层),Core Services (核心服务层),以及 Core OS (操作系统层),
3.1.1系统框架分层 - Core OS
位于最底层的是CoreOS 核心操作系统层,这层提供的这些框架,已经是苹果提供的最靠近硬件的框架,通常情况下,这些功能不会直接应用于我们的应用程序,而是应用于其他框架。但是,在直接处理安全事务或和其他设备通讯的时候,则必须要应用到该层的框架。
- 可以利用CoreBluetooth 框架使用蓝牙和外部设备交互
- Security框架提供管理证书,公钥私钥的策略
- 如果有复杂的计算可以使用Accelerate框架,委托硬件进行计算
3.1.2系统框架分层 - Core Service层
第二层是提供应用程序所需要的基础系统服务的核心服务层 Core Service ,
3.1.3系统框架分层 - Media层
媒体层里的框架功能就更明确了,是提供包括图行,音频,视频相关的技术支持
如果你想要开发一个短视频/直播,或是滤镜相机之类的App,那就会需要跟这一层的框架多打交道了。
3.1.4系统框架分层 - CocoaTouch层
最上一层 CocoaTouch层,大部分框架都与界面有关,也都具备自己特定的UI介面
- 其中包含了开发App的最重要的框架之一 UIKit,UIKit提供了大量的UI控件,例如按钮, Label,滚动列表,宫格视图,以及App的页面UIViewController 和 UIView试图
- 一个App的使用介面,跟页面之间的跳转都离不开UIKit,我们也会在后面的课程专门去介绍UIKit 介绍如何搭建App的页面。
- 其他像是MapKit地图框架 和 NotificationCenter 通知中心框架也是开发常用的。
3.2系统框架存放位置
SDK下的 /System/Library/Frameworks 对应所有的系统框架了,
设备上的iOS文件路经中,也有 /System/Library/Frameworks 文件夹,里面也放著对应的系统框架,并且是包含实现的也就是包含可执行文件。于是我们的App在启动时,也能链接到对应的Framework,并且正常执行