iOS 客户端-iOS系统框架 | 青训营笔记

414 阅读4分钟

这是我参与「第四届青训营 」笔记创作活动的的第16天

一、前言

今天学习到的是【iOS 客户端专场 学习资料一】第四届字节跳动青训营的第二节:在IOS开发中,首先了解IOS的基础框架:iOS基于UNIX系统,iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer)、媒体层(Media layer)、核心服务层(Core Services layer)、核心操作系统层(Core OS layer)

二、本节课知识点大纲:

image.png

iOS系统框架

iOS系统框架

框架 Frameworks

框架的原文是Frameworks,而Frameworks的本意,是指一个核心的支撑结构,任何东西都可以搭建在他之上,是一个通用的,可复用,具备特定功能的软件或是环境,他可能包含了代码库,API文件,或是一些工具的集合体。

iOS 框架 iOS Frameworks

Framework是一个有层级的目录,他将 动态代码库,nib files,图片文件,头文件和参考文件 全部封装成一个单一的资源包,多个程序之间可以同时共用它,并被程序调用去执行某个任务。

简单来说,对于Xcode而言,Framework就是一个文件后坠为 .framework的文件包,里面包含了与其相关的文件,程序在启动时会将它加载进内存。

iOS Framework 文件夹

  • Headers文件夹,里面是存放了大量的.h头文件,里面记录了这个Framework对外开放类的声明或是一些静态变量...等
  • Framework同名的二进至文件,它的类型在Finder显示是 Unix executable 可执行文件,大家可以理解为里面记录的就是系统的实现代码被编译后的产物。
  • Framewoek资源文件夹Resources

  • Foundation.framework / Headers

iOS 系统框架 iOS System Frameworks

苹果官方为开发者准备了上百个稳定且成熟的框架,而大部分的框架都只提供了 Objective-C 跟 Swift的接口

系统框架分层

所有的系统框架可以被分作四层(四个Layer),分别是 Cocoa Touch (触摸层),Media (媒体层),Core Services (核心服务层),以及 Core OS (操作系统层),

系统框架分层 - Core OS

位于最底层的是CoreOS 核心操作系统层,这层提供的这些框架,已经是苹果提供的最靠近硬件的框架,通常情况下,这些功能不会直接应用于我们的应用程序,而是应用于其他框架。但是,在直接处理安全事务或和其他设备通讯的时候,则必须要应用到该层的框架。

  • 可以利用CoreBluetooth 框架使用蓝牙和外部设备交互
  • Security框架提供管理证书,公钥私钥的策略
  • 如果有复杂的计算可以使用Accelerate框架,委托硬件进行计算

系统框架分层 - Core Service层

第二层是提供应用程序所需要的基础系统服务的核心服务层 Core Service ,

系统框架分层 - Media层

媒体层里的框架功能就更明确了,是提供包括图行,音频,视频相关的技术支持

如果你想要开发一个短视频/直播,或是滤镜相机之类的App,那就会需要跟这一层的框架多打交道了。


系统框架分层 - CocoaTouch层

最上一层 CocoaTouch层,大部分框架都与界面有关,也都具备自己特定的UI介面

  • 其中包含了开发App的最重要的框架之一 UIKit,UIKit提供了大量的UI控件,例如按钮, Label,滚动列表,宫格视图,以及App的页面UIViewController 和 UIView试图

    • 一个App的使用介面,跟页面之间的跳转都离不开UIKit,我们也会在后面的课程专门去介绍UIKit 介绍如何搭建App的页面。
  • 其他像是MapKit地图框架 和 NotificationCenter 通知中心框架也是开发常用的。

系统框架存放位置

SDK下的 /System/Library/Frameworks 对应所有的系统框架了,

设备上的iOS文件路经中,也有 /System/Library/Frameworks 文件夹,里面也放著对应的系统框架,并且是包含实现的也就是包含可执行文件。于是我们的App在启动时,也能链接到对应的Framework,并且正常执行

引用参考:

课外补充引用:

文章学习来源:

感谢以上作者的文章,今天的学习收获满满!!Thanks and HappyCoding!