- iOS基于UNIX系统 因此从系统的稳定性来讲他比其他操作系统的产品好得多
-
iOS的系统架构分为四层 由上到下依次为: 可触摸层(Cocoa Touch layer) 媒体层(Media layer) 核心服务层(Core Services layer) 核心操作层(Core OS layer) 如图:
应用程序项目都是Cocoa Touch层开始的 具体来说就是从UIKit Framework开始的 当在编写程序的时候需要用到一些特殊功能的时候 我们应该从框架最顶端技术开始寻找相应的框架 只有在上层结构无法解决的时候 才能使用其下层的技术 其实顶层结构已经涵盖了我们绝大多数需要的功能
(1) 触摸层: 为用程序各种常见的框架 其中大部分框架与界面有关 本质上来说它是负责用户在iOS设备上的触摸交互操作
下面来介绍一下触摸层中都有哪些常用的框架:
1. AddressBookUI: 使用通讯录的UI框架 以显示联系人的通讯录中的数据(提供一个UI界面 用于显示存储在地址簿中的联系人信息)
2. EvenKitUI: 创建的用户界面 用于查看和编辑日历数据与实践嵌套UI框架
3. GameKit: 在应用程序与游戏框架添加网络功能
4. iAd: 在您的应用程序放置全屏幕广告或者横幅广告
5. MapKit: 提供应用程序嵌入地图的接口
6. MessageUI: 提供一个用于邮箱发送的ViewController的用户界面接口
7. Twitter: TwitterAPI
8. UIKit: 提供应用程序用户界面基础与案件的管理功能
(2) 媒体层: 通过它我们可以在应用程序中使用各种媒体文件 进行音频和视频录制 图形绘制 以及制作基础的动画效果
下面来介绍一下媒体层有哪些常用的框架
1. AssetsLibrary: 获得用户媒体库和数据库的框架
2. AudioToolbox: 录制或者播放音频 转换格式 解析音频流 并配置您的音频会以的音频工具箱框架不透明类型(提供音频录制和回放的底层API 同时也负责管理音频硬件)
3. AudioUnit: 打开链接 使用音频插件被称为音频单元与音频单元框架(提供一个接口让我们可以对音频进行处理)
4. AVFoundation: 录制 编辑和播放音频视频 配置您的音频会以 并在设备中的音频环境变化的响应AVFoundation框架(提供音频录制和回放的底层API 同时也负责管理音频硬件)
5. CoreAudio: 表示具有从核心音频框架的基本数据类型的音频流 复杂的缓冲区和时间值
6. CoreGraphics: 处理2D渲染任务 使用核心图形框架 使用基于C的API 这是基于Quartz的绘图引擎 路径为基础的绘图 抗锯齿渲染 渐变 图像 色彩管理 和PDF文件处理
7. CoreImage: 执行图像处理和视频图像处理的核心映像框架
8. CoreMIDI: MIDI设备包括硬件键盘和频率合成器 使用核心MIDI框架 进行交流使用Dock连接器进行网络连接
9. CoreText: 布局文本和执行核心文本框架的字体处理 文本布局API提供高品质的排版 包括字符 字形的线条和段落字形的转换和定位 互补的字形技术提供功能 如自动字体替换(级联), 字体的描述和集合 并容易获得字体适度量和字形数据
10. CoreVideo: 电影播放和过程访问单个帧 与核心的视频框架 这种基于C的框架提供了一个低级别的电影工作 管道的API 您可以使用它的工作与像素的缓存区 OpenGL的缓冲区 和OpenGL纹理
11. GLKit: 创建使用GLKit框架的OpenGL ES应用程序所需的时间缩短 GLKit包括数学库 一个标准视图和视图控制器来实现你的渲染循环 背景纹理加载和预先创建的着色效果
12. ImageIO: 大多数图像文件格式的读取和写入图像I/O框架 这种基于C的框架还支持色彩管理和图像元数据的访问
13. MediaPlayer: 查找和播放用户安装媒体项目 包括歌曲 音频播客 有声读物 并与媒体播放器框架 您还可以用它来播放定制的电影文件
14. OpenAL: 使用低延迟 音频播放位置 建立为iOS引人注目的游戏 OpenAL会使您沉浸在定向声音跟踪屏幕上的动画用户 内置CoreAudio后 在iOS的OpenAL提供高性能和出色的视频质量
15. OpenGLES: 使用一个紧凑 高效的移动设备上的二维和三维绘图的OpenGL API的子集 OpenGL ES的框架包括EAGL 基于C的API 支持OpenGL ES的渲染核心动画层和UIKit意见的整合 还可以使用EAGL渲染像素缓冲区
16. QuartzCore: 使用Quartz的核心框架 呈现最佳性能 然后在硬件配置的动画和效果 该框架包含了先进的动画和合成技术为核心动画
(3) 核心服务层CoreServince 基础系统服务
下面介绍一下基础服务层有哪些框架
1. Acounts: 管理用户账号的外部账户使用框架
2. AddressBook: 使用通讯簿框架, 以获得访问中央数据库 用于存储用户的联系人 该数据库称为地址簿(提供访问存储核心数据库中用户联系人信息的功能)
3. CFNetwork: 提供对系统网络服务和配置的访问接口(访问和配置网络 如HTTP FIP Bonjour Servince)
4. CoreData: 使用一般化和自动化解决方案与对象生命周期和对象图的管理 包括持久相关的共同任务中的核心数据框架
5. CoreFoundation: 使用所有iOS应用程序的基本系统服务的核心基础框架 提供了常见的数据类型的抽象 有利于国际化和Unicode字符串存储 他提供了一个套件 例如公用事业插件支持 XML属性列表 URL资源的访问和喜好 (提供抽象的常用数据类型 如XML URL)
6. CoreMedia: 核心媒体框架的基本数据类型的基于时间的影像数据
7. CoreMotion: 接收和处理的核心运动框架的加速度计和其他运动事件
8. CoreTelephony: 访问蜂窝电话的地理位置和移动电话服务提供商的信息与核心电话框架
9. EvenKit: 读写日历数据的EvenKit框架
10. Foundation: 该框架提供您需要的实现图形 事件驱动 iOS应用程序的基本工具和基础设施
11. MobileCoreServinces: 访问标准类型和常数与移动核心服务框架 依赖UTI的类型信息的其他框架一起使用
12. NewstandKit: 下载和处理杂志的问题或其他书报亭的框架 还可以使用次框架来管理下载的问题
13. QuickLook:显示基于视图的QuickLook框架的项目预览
14. StoreKit: 嵌入在您应用程序的存储 使用StoreKit框架用它来管理购买内容和服务 从您的应用程序相关的金融交易
15. SystermConfiguration: 使用系统配置框架 以确定网络的可用性和设备状态 系统配置框架声明的功能 类型 以及网络可达性有关的常数
16. UIAutomation: 这个文件集为UI自动化功能 它允许你编写的测试脚本 行驶应用程序的用户界面元素 作为连接的设备上运行的应用程序的API参考 你写的UI自动化API 模拟与应用程序的用户交互 运行日志信息 并返回到主机 因为他在JavaScript测试
(4) 核心系统层: 内存管理 文件系统 电源管理以及其他的操作系统任务 他可以直接和硬件设备进行交互
核心系统层包含以下框架:
1. Accelerate: 执行复杂的数学与加速框架或图像计算
2. CoreBluetooth: 核心蓝牙框架
3. ExternalAccessory: 沟通与外部附件框架连接到基于iOS的设备配件 用他的基座接口连接配件 或通过蓝牙互动
4. Security: 使用安全框架 以确保您的应用程序管理的数据这个框架定义为保护信息和控制访问软件的C接口
5. Systerm: 该框架提供了一个BSD和POSIX功能 如UNIX系统调用和C库函数的一个子集
探讨一下iOS系统架构及常用框架
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
- //我所经历的大数据平台发展史(三):互联网时代 • 上篇http://www.infoq.com/cn/arti...
- 【R 原文片段】 非暴力沟通第二个要素是感受。心理学家罗洛.梅认为”成熟的人十分敏锐,就像听交响乐的不同乐章,不论...