iOS的系统架构分为四个层次:核心操作系统层(Core OS layer)、核心服务层(Core Services layer)、媒体层(Media layer)和可触摸层(Cocoa Touch layer)。
1.Core OS层-----包含核心部分、文件系统、网络基础、安全特性、能量管理和一些设备驱动,还有一些系统级别的API。
2.Core Services层----提供核心服务,例如字符串处理函数、集合管理、网络管理、URL处理工具、联系人维护、偏好设置等。
3.Media层----该层框架和服务依赖Core Services层,向Cocoa Touch层提供画图和多媒体服务,如声音、 图片、视频等。
4.Cocoa Touch层----该框架基于 iPhone OS应用层直接调用层,如触摸事件、照相机管理等,包该层含UIKit框架和Foundation框架。
其实iOS是基于UNIX的,所以我们完全可以相信这个操作系统,要知道从系统的稳定性上来说它要比其他操作系统的产品好很多。
位于iOS系统架构最下面的一层是 核心操作系统层 ,它包括内存管理、文件系统、电源管理以及一些其他的操作系统任务。它可以直接和硬件设备进行交互。核心操作系统层包括以下这些组件:
OS X Kernel Mach 3.0 BSD
Sockets Power Mgmt File System
Keychain Certificates Security
Bonjour
第二层是核心服务层 ,我们可以通过它来访问iOS的一些服务。它包括以下这些组件:
Collections Address Book Networking
File Access SQLite Core Location
Net Services Threading Preferences
URL Utilities
第三层是媒体层 ,通过它我们可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。它包括以下这些组件:
Core Audio OpenGL Audio Mixing
Audio Recording Video Playback JPG,PNG,TIFF
PDF Quartz Core Animation
OpenGL ES
最上面一层是可触摸层 ,这一层为我们的应用程序开发提供了各种有用的框架,并且大部分与用户界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。它包括以下这些组件:
Multi-Touch Events Core Motion Camera
View Hierarchy Localization Alerts
Web Views Image Picker Multi-Touch Controls
在Cocoa Touch层中的很多技术都是基于Objective-C语言的。Objective-C语言为iOS提供了像集合、文件管理、网络操作等支持。像UIKit框架,它为应用程序提供了各种可视化组件,比如像窗口(Window)、视图(View)和按钮组件(UIButton)。Cocoa Touch层中的其他框架,对我们在应用程序中的开发来说也是非常有用的,如访问用户通信录功能框架、获取照片信息功能的框架、负责加速感应器和三维陀螺仪等硬件支持的框架。
UIkit:它负责启动和结束应用程序、控制界面和多点触摸事件,让您能够访问常见的数据视图,网页、excel、word。还负责iOS内部众多的集成功能,访问数据库、照片库和加速计也是使用UIKit中的类和方法实现。
MapKit:跟Apple 地图视图有关。
Game Kit:提高iOS应用程序的网络的交互性,提供了创建并使用对等网络的机制,回话发现、仲裁和语音聊天。
Message UI/Address/Event KIt UI:帮组我们的程序访问电子邮件、联系人和日历事件。
iAd:加入广告。
Core Graphics:实现在应用程序中添加2D绘画和合成功能。
OpenGL ES:OpenGL ES 是OpenGL 框架的子集,适用于嵌入式系统(ES)。OpenGL ES 可用于在应用程序中创建2D和3D动画。
Quartz Core:利用硬件的功能,创建动画。
核心服务层:Accounts、Address Book、CFNetwork、Core Data:用于创建iOS应用程序的数据模型,它提供了一个基于SQLite关系的数据库模型,用于将数据绑定到界面的对象。
Core Fondation、Foundation、Event Kit、Core Location、Core Motion、Newsstand、Pass Kit、Quick Lock 、Social:可以访问Twitter和Facebook的应用程序,无需管理账号信息,不用了解Twitter和Facebook的专用网路的协议。
Store Kit、System Configuration:用于确定设备网络配置的当前状态。
4.核心应用程序类:NSObject、UIApplication(应用程序类)、窗口类(UIWindow)放置视图的容器、视图(UIView)、响应者(UIResponse)、屏幕控件(UIControl)、视图控制器(UIViewController):管理视图的功能