整理自互联网,感谢原文作者!
1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多
2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer)、媒体层(Media layer)、核心服务层(Core Services layer)、核心操作系统层(Core OS layer)如图:
(1)触摸层:为应用程序开发提供了各种常用的框架并且大部分框架与界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。它包括以下这些组件:
Multi-Touch Events Core Motion Camera View Hierarchy Localization Alerts Web Views Image Picker Multi-Touch Controls
(补充new:可触摸层主要提供用户交互相关的服务如界面控件、事件管理、通知中心、地图,包含
- UIKit(界面相关)
- EventKit(日历事件提醒等)
- Notification Center(通知中心)
- MapKit(地图显示)
- Address Book(联系人)
- iAd(广告)
- Message UI(邮件与SMS显示)
- PushKit(iOS8新push机制)
)
(2)媒体层:通过它我们可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。它包括以下这些组件:
Core Audio OpenGL Audio Mixing Audio Recording Video Playback JPG,PNG,TIFF PDF Quartz Core Animation OpenGL ES
(补充new:媒体层主要提供图像引擎、音频引擎、视频引擎框架。
- 图像引擎(Core Graphics、Core Image、Core Animation、OpenGL ES)
- 音频引擎 (Core Audio、 AV Foundation、OpenAL)
- 视频引擎(AV Foundation、Core Media)
)
(3)核心服务层:我们可以通过它来访问iOS的一些服务。它包括以下这些组件:
Collections Address Book Networking File Access SQLite Core Location Net Services Threading Preferences URL Utilities
(补充new:核心服务层为程序提供基础的系统服务例如网络访问、浏览器引擎、定位、文件访问、数据库访问等,主要包含以下框架:
- CFNetwork(网络访问)
- Core Data(数据存储)
- Core Location(定位功能)
- Core Motion(重力加速度,陀螺仪)
- Foundation(基础功能如NSString)
- Webkit(浏览器引擎)
- JavaScript(JavaScript引擎)
)
(4)核心操作系统层包括:内存管理、文件系统、电源管理以及一些其他的操作系统任务。它可以直接和硬件设备进行交互。核心操作系统层包括以下这些组件:
OS X Kernel Mach 3.0 BSD Sockets Power Mgmt File System Keychain Certificates Security Bonjour
(补充new:核心系统层提供为上层结构提供最基础的服务如操作系统内核服务、本地认证、安全、加速等。
- 操作系统内核服务(BSD sockets、I/O访问、内存申请、文件系统、数学计算等)
- 本地认证(指纹识别验证等)
- 安全(提供管理证书、公钥、密钥等的接口)
- 加速 (执行数学、大数字以及DSP运算,这些接口iOS设备硬件相匹配)
)
3.Cocoa Touch简介
(1)在最上层Cocoa Touch层中的很多技术都是基于Objective-C语言的。Objective-C语言为iOS提供了集合、文件管理、网络操作等支持。比如UIKit框架,它为应用程序提供了各种可视化组件,比如像窗口(Window)、视图(View)和按钮组件(UIButton)。Cocoa Touch层中的其他框架,对我们在应用程序中的开发来说也是非常有用的,如访问用户通信录功能框架、获取照片信息功能的框架、负责加速感应器和三维陀螺仪等硬件支持的框架。
4.Framework--应用程序框架
什么是框架?本质上来说它是帮助我们完成各种特定功能的软件库。
我们编写的应用程序项目,都是从Cocoa Touch层开始的,具体来说就是从UIKit Framework开始的。当在编写程序的过程中需要用到一些特殊功能的时候,我们应该从框架的最顶端技术开始寻找相应的框架,只有在上层结构无法解决时,才能使用其下层的技术。其实,顶层的框架已经涵盖了我们绝大多数需要的功能。
下列表格列出了一些常用的iOS SDK框架。
常用的iOS SDK框架:
框架名称 |
功 能 |
AddressBook.framework |
提供访问存储核心数据库中用户联系人信息的功能 |
AddressBookUI.framework |
提供一个用户界面,用于显示存储在地址簿中的联系人信息 |
AudioToolbox.framework |
提供音频录制和回放的底层API,同时也负责管理音频硬件 |
AudioUnit.framework |
提供一个接口,让我们的应用程序可以对音频进行处理 |
AVFoundation.framework |
提供音频录制和回放的底层API,同时也负责管理音频硬件 |
CFNetwork.framework |
访问和配置网络,像HTTP、FTP和Bonjour Services |
CoreFoundation.framework |
提供抽象的常用数据类型,如 Unicode strings、XML、URL等 |
CoreGraphics.framework |
提供2D绘制的基于C的API |
续表:
框架名称 |
功 能 |
CoreLocation.framework |
使用GPS和Wi-Fi获取位置信息 |
Foundation.framework |
提供Object-C的基础类(像NSObject)、 基本数据类型和操作系统服务等 |
GameKit.framework |
为游戏提供网络功能;点对点互联和游戏中的语音交流 |
MapKit.framework |
为应用程序提供内嵌地图的接口 |
MediaPlayer.framework |
提供播放视频和音频的功能 |
MessageUI.framework |
提供视图控制接口用以处理E-mail和短信 |
OpenGLES.framework |
提供简洁而高效的绘制2D和3D图形的OpenGL API子集 |
QuartzCore.framework |
提供动画特效以及通过硬件进行渲染的能力 |
StoreKit.framework |
为应用程序提供在程序运行中消费的支持 |
SystemConfiguration.framework |
检测当前网络是否可用和硬件设备状态的能力 |
UIKit.framework |
创建和管理应用程序的用户界面 |
iOS 系统架构 && 常用 framework的更多相关文章
-
ios系统架构及常用框架
1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer).媒体层(Media l ...
-
认识iOS系统架构
关于本文: 文章主要介绍iOS系统架构中的四层结构的内容.常用的框架.大致的功能,然后对iOS开发人员的发展提出自己的一些拙见. 一.iOS系统是基于UNIX系统,所有从系统稳定性上来说的确比其他操作 ...
-
iOS 系统架构
https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/ ...
-
iOS系统架构
1.iOS系统架构 iOS的系统架构分为四个层次 核心操作系统层 (Core OS) 它包括 内存管理 , 文件系统 , 电源管理以及一些其他的操作系统任务, 它可以直接和硬件设备进行交互 核心服务层 ...
-
iOS学习笔记(三)——iOS系统架构
iOS的系统架构分为四个层次:核心操作系统层(Core OS layer).核心服务层(Core Services layer).媒体层(Media layer)和可触摸层(Cocoa Touch l ...
-
iOS系统架构和Object-C基本数据类型(1)
iOS系统架构 基本数据类型 思维导图 下载 注:打开思维导图的软件:Mindjet MindManager 9
-
iOS 系统架构及常用框架
1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer).媒体层(Media l ...
-
iOS 系统架构及常用框架(iOS的系统架构分为四个层次)
1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer).媒体层(Media l ...
-
解析大型.NET ERP系统架构设计 Framework+ Application 设计模式
我对大型系统的理解,从数量上面来讲,源代码超过百万行以上,系统有超过300个以上的功能,从质量上来讲系统应该具备良好的可扩展性和可维护性,系统中的功能紧密关联.除去业务上的复杂性,如何设计这样的一个协 ...
随机推荐
-
Android下Cocos2d创建HelloWorld工程
最近在搭建Cocos2d的环境,结果各种问题,两人弄了一天才能搞好一个环境-! -_-!! 避免大家也可能会遇到我这种情况,所以写一个随笔,让大家也了解下如何搭建吧- 1.环境安装准备 下载 tadp ...
-
AASM rule of scoring sleep stages using EEG signal
Reference: AASM (2007). The AASM Manual for the Scoring of Sleep and Associated Events: Rules, Termi ...
-
mysql修改表名,列名,列类型,添加表列,删除表列
alter table test rename test1; --修改表名 ); --添加表列 alter table test drop column name; --删除表列 ) --修改表列类型 ...
-
ffmpeg ffprobe ffplay
./ffprobe -print_format json -show_format -show_frames -select_streams v -i ../hhh.flv ./ffprobe -pr ...
-
php缓存相关
在php运行期间,php引擎要对php源码进行处理,(词法分析,语法分析等)然后生成opcode. 然后再运行.在这个阶段可以把opcode缓存起来,当下次需要运行这段程序的时候,就避免了再次 进行词 ...
-
Base64算法
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/4288372.html ...
-
grub配置文件grub.conf详细说明
说明:只供学习交流 default行,是指grub启动时默认菜单项.0表示第一项,如果是多系统可以修改此选项改变默认光标停留位置. timeout行,是指菜单到自动启动系统前的停留时间,单位时间为se ...
-
ASP.NET MVC 之Model的呈现
ASP.NET MVC 之Model的呈现(仅此一文系列三) 本文目的 我们来看一个小例子,在一个ASP.NET MVC项目中创建一个控制器Home,只有一个Index: public class H ...
-
Java学习笔记——排序算法之简单排序
男儿何不带吴钩,收取关山五十州.请君暂上凌烟阁,若个书生万户侯? --南园十三首 三种排序法: 1.冒泡法 2.简单选择法 3.直接插入法 上代码: 1.冒泡排序 public class Bub ...
-
VxWorks 符号表
符号表初始化 符号表用于建立符号名称.类型和值之间的关系.其中,名称为null结尾的任意字符串:类型为标识各种符号的整数:值为一个字符指针.符号表主要用来作为目标模块加载的基础,但 ...