移动开发(IOS) – iOS系统架构
1.iOS系统架构的四个层次
1.1.可触摸层(Cocoa Touch):为应用程序开发提供各种有用的框架,并且大部分均与用户界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。
1.2.媒体服务层(Media Services):负责提供用于构建应用程序的图形和声音的API,可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形绘制,以及制作基础的动画效果。
1.3.核心服务层(Core Services):这一层提供了访问Core OS层的硬件功能并包含了Foundation框架。正因为如此,这一层提供了构建iOS应用程序所需的大量基础元件,例如字符串、数组以及其他通用数据类型。核心服务层可以访问iOS的一些服务,比如网络连接、文件访问、数据库、用户定位等。
1.4.核心操作系统层(Core OS ):这一层次包含了iOS操作系统的很多基础组件,其中包括:系统内核、内存管理、文件系统、电源管理、网络组件和设备驱动等,可以直接和硬件设备进行交互。
2.iOS系统框架
框架名称 | 功能 |
Foundation | 提供OC的基础类(像NSObject)、基本数据类型等。 |
UIKit | 创建和管理应用程序的用户界面。 |
QuartzCore | 提供动画特效以及通过硬件进行渲染的能力。 |
CoreGraphics | 提供2D绘制的基于C的API。 |
SystemConfiguration | 检测当前网络是否可用和硬件设备状态。 |
AVFoundation | 提供音频录制和回放的底层API,同时负责管理音频硬件。 |
CFNetwork | 访问和配置网络,像HTTP、FTP和Bonjour Services。 |
CoreFoundation | 提供抽象的常用数据类型,如Unicode strings、XML、URL等。 |
CoreLocation | 使用GPS和WIFI获取位置信息。 |
GameKit | 为游戏提供网络功能:点对点互联和游戏中的语音交流。 |
AddressBook | 提供访问用户联系人信息的功能。 |
AddressBookUI | 提供一个用户界面,显示存储在地址簿中的联系人信息。 |
AudioToolBox | 提供音频录制和回放的底层API,同时负责管理音频硬件。 |
AudioUnit | 提供一个接口,让应用程序可以对音频进行处理。 |
MapKit | 为应用程序提供内嵌地图的接口。 |
MediaPlayer | 提供播放视频和音频的功能。 |
MessageUI | 提供视图控制接口用以处理E-mail和短信。 |
OpenGLES | 提供动画特效以及通过硬件进行渲染的能力。 |
StoreKit | 为应用程序提供在程序运行中消费的支持。 |
3.iOS 和 android 系统架构对比
3.1.android是基于Linux内核设计的,在Linux内核上面运行了一个Java虚拟机,虚拟机再运行软件。像是在一个系统上面又套了一个系统,所以占内存较大、运行速度略低。
3.2.iOS是基于UNIX的,直接与底层硬件通信。系统底层、应用框架、应用软件都是采用C/C++或者Objective-C写的,所以有很高的运行效率。