这是我参与「第四届青训营 」笔记创作活动的的第3天。
今天整理了上课的系统框架部分,感觉比前面讲的知识都好理解,初步感觉有点入门,明日会增加foundation部分的。
iOS开发基础工具
iOS系统框架
框架(Frameworks)
开发者可以基于框架开发。
框架指一个通用的,可复用,具备特定功能的软件或环境,可能包含了代码库,API文件,或是一些工具的集合体,用于支撑软件开发者能更容易更方便的达到某个程序功能。提供方可能是系统/其他开发者/软件开发公司。
iOS框架
Framework是一个有层级的目录,将动态代码库,nib files,图片文件,头文件和参考文件 全部封装成一个单一的资源包,多个程序之间可以同时共用,并且通过程序调用去执行某个任务。
对于Xcode而言,Framework就是一个文件后坠为 .framework的文件包,里面包含了与其相关的文件,程序在启动时会将它加载进内存。程序会链接加载到内存,然后可用。
iOS Framework 文件夹
Framework 的文件目录
-
Headers文件夹(存放了.h头文件)
记录这个Framework对外开放类的声明或是一些静态变量等
-
与该Framework同名的二进制文件
类型在Finder显示是 Unix executable 可执行文件,即记录的是系统的实现代码被编译后的产物
- Resources文件夹(其他资源文件)
Framework以一个资源包的形式去供开发者使用的,除了系统提供的之外,也可以自己去开发Framework或是使用其他三方提供的Framework
iOS系统框架
WWDC升级更新,大部分框架只提供了OC和Swift的接口
系统框架分层
-
四层(四个Layer)
-
Cocoa Touch (触摸层) 🌰 UIKit
最顶层 大部分框架和界面相关 具备特定的UI界面 包括UIKit等
-
Media (媒体层)
提供包括图片,音频,视频相关的技术支持
-
Core Services (核心服务层) 🌰 Foundation
提供应用程序所需要的基础系统服务的核心服务层
-
Core OS (操作系统层)
处于最底层 提供最接近硬件的框架 应用于其他框架/直接处理安全事务或和其他设备通讯时 一般不会直接应用于应用程序
-
系统框架存放位置
每个SDK下的 /System/Library/Frameworks