iOS系统框架|青训营笔记

298 阅读2分钟

这是我参与「第四届青训营」笔记创作活动的第2天,记录了7月25日iOS端青训营课堂的第一部分重点内容。

课堂重点

本节课主要学习了解iOS系统框架结构、分层、存放位置等内容。

iOS系统框架

苹果官方文档:将动态代码库、nib files、图片文件、头文件和参考文件全部封装成一个单一的资源包,多个程序可以同时共用它,调用它去执行任务。

在Xcode中,Framework是一个后缀为.framework的文件夹,程序在启动时会将它加载进内存。Framework以资源包的形式存在,除了系统提供的Framework,还可以自己开发/调用第三方开发的Framework。

image1.png

Framework目录结构特征

  • Headers文件夹,存放.h头文件,记录Framework中public类的声明、静态变量等
  • 与该Framework文件夹同名的二进制文件,unix executable,记录实现代码被编译后的内容
  • Resources文件夹,存放其他资源文件
  • Modules文件夹
  • Versions文件夹,存放各版本的上述文件——文件内容真正存放的位置,而上述四条目录结构都是对应文件的链接

系统框架分层

从上到下分为四层:Cocoa Touch(触摸层)、Media(媒体层)、Core Services(服务层)、Core OS(操作系统层)。

上层框架会依赖底层框架,底层框架不会依赖上层。

image2.png

  • Core OS
    • 该层提供的框架是Apple中最接近硬件层面的框架
    • 一般不会直接应用于应用程序,而是为其他框架提供依赖
    • 安全相关任务、设备间交互通讯等场景,一定会应用到该层的框架
      • CoreBluetooth:蓝牙与外部交互
      • Security:管理证书,管理公钥私钥
      • Accelerate:利用硬件进行复杂计算
  • Core Services
    • 提供应用程序所需要的基础系统服务
    • Foundation框架在这一层
  • Media
    • 提供图片、音频、视频等技术支持
    • 视频、直播、相机等app与Media层打交道较多
  • Cocoa Touch
    • 大部分框架与UI界面有关
    • UIKit框架在这一层:提供大量UI控件
      • 按钮、标签、滚动列表、宫格视图
      • UIViewController、UIView
      • app的页面显示和跳转离不开UIKit框架的功能
    • MapKit地图框架
    • NotificationCenter通知中心框架

系统框架存放的位置

  • Xcode:各SDK文件夹下都存在路径/System/Library/Frameworks
  • app在实际设备运行:iOS文件路经中,也有/System/Library/Frameworks
    • 文件夹中包含实现的可执行文件,以供app运行时链接和使用

总结

今天先系统了解一下iOS系统框架的一些特点和用途~~明天重点关注服务层的Foundation框架为应用程序提供的各项基础系统服务哈哈哈哈😄