认识iOS系统架构
关于本文:
文章主要介绍iOS系统架构中的四层结构的内容、常用的框架、大致的功能,然后对iOS开发人员的发展提出自己的一些拙见。
一、iOS系统是基于UNIX系统,所有从系统稳定性上来说的确比其他操作系统的产品要好。
iOS在系统架构上分为4层,由上到下依次为:触摸层(Cocoa Touch Layer)、媒体层(Media Layer)、核心服务层(Core Services)、核心系统层(Core OS),每个层级提供不同的服务。低层级结构提供基础服务,比如文件系统、内存管理、I/O操作等。高层级结构建立在低层结构之上提供具体的服务,比如UI控件、文件访问等。
这样的关系也就相当于AFNetworking将系统提供的网络相关框架进行了封装。对于绝大多数软件开发人员来说,AFNetworking的出现的确是节约了不少的时间与精力,这就是提倡高级语言快速编程的原由之一。插播一条广告:import在手,天下我有~说的就是python。
那是不是AFNetworking可以替代系统网络框架呢?当然不是,首先“下层基础决定上层建筑”,再者,通过我下面摘抄的一段话各自体会:
很显然,如果你唯一在意的是加速度或者赛道上的圈速,
那么优酷和土豆上已经有无数的对比视频证明那些换挡速度以毫秒计的双离合拥有绝对的胜算。
但回到复杂的日常驾驶环境中,
手动变速器却在很多情形下有着哪怕世界上最先进的自动变速器都难以比拟的响应力。
所以下一次当你需要在自动挡和手动挡之间做出选择的时候,
如果“便利性”不是占据决定性的诉求时,
或许你该好好的考虑以下,
是否应该轻易的放弃那种配备离合器踏板的变速器。
二、触摸层(Cocoa Touch Layer)
触摸层主要提供用户交互相关的服务,比如界面控件、事件处理、通知中心、地图,包含以下框架:
UIKit-----界面相关
EventKit-----日历事件提醒等
Notification Center-----通知中心
MapKit-----地图显示
Address Book-----联系人
iAd-----广告
Message UI-----邮件与SMS显示
PushKit-----iOS8新push机制
三、媒体层(Media Layer)
媒体层主要提供图像引擎、音频引擎、视频引擎框架。
图像引擎(Core Graphics、Core Image、Core Aniation、OpenGL ES)
音频引擎(Core Audio、AV Foundation、OpenAL)
视频引擎(AV Foundation、Core Media)
四、核心服务层(Core Services Layer)
核心服务层为程序提供基础的系统服务,例如网络访问、浏览器引擎、定位、文件访问、数据库访问等,主要包含以下框架:
CFNetworking(网络访问)
Core Data(数据存储)
Core Location(定位功能)
Core Motion(重力加速度,陀螺仪)
Foundation(基础功能,如NSString)
WebKit(浏览器引擎)
JavaScript(JavaScript引擎)
五、核心系统层(Core OS Layer)
核心系统层提供为上层结构最基础的服务,如操作系统内核服务、本地认证、安全、加速等。
操作系统内核服务(BSD sockets、I/O访问、内存申请、文件系统、数学计算等)
本地认证(指纹识别验证等)
安全(提供管理证书、公钥、密钥等的接口)
加速(执行数学、大数字以及DSP运算,这些接口iOS设备硬件匹配)
六、常用的iOS的SDK框架
简介如下:
Accelerate.framework 包含加速数学和DSP函数。 AddressBook.framework 包含直接访问用户联系人数据库的函数。 AddressBookUI.framework 包含显示系统定义的联系人挑选界面和编辑界面的类。 AssetsLibrary.framework 包含显示用户照片和视频的类 AudioToolbox.framework 包含处理音频流数据以及播放或录制音频的接口。 AVFoundation.framework 包含播放或录制音频的Objective-C接口。 AudioUnit.framework 包含加载并使用音频单元的接口。 CFNetwork.framework 包含通过WiFi或者蜂窝无线访问网络的接口。 CoreAudio.framework 包含Core Audio框架使用的各种数据类型。 CoreData.framework 包含管理应用程序数据模型的接口。 CoreFoundation.framework 提供一些基本软件服务,包括常见数据类型抽象、字符串实用工具、群体类型实用工具、资源管理以及偏好设置。 CoreGraphics.framework 包含Quartz 2D接口。 CoreLocation.framework 包含确定用户方位信息的接口。 CoreMedia.framework 包含操作音频和视频的底层例程。 CoreMotion.framework 包含访问加速度计以及陀螺仪的数据的接口。 CoreTelephony.framework 包含访问电话相关的信息的例程。 CoreText.framework 包含一个文本的布局渲染引擎。 CoreVideo.framework 包含操作音频和视频的底层例程。 EventKit.framework 包含访问用户日历事件数据的接口。 EventKitUI.framework 包含显示标准系统日历界面的类。 ExternalAccessory.framework 包含与外设进行通讯的接口。 Foundation.framework 包含Cocoa Foundation层的类和方法。 GameKit.framework 包含点对点连接管理接口。 iAd.framework 包含在应用程序中显示广告的类。 ImageIO.framework 包含读取或写入图像数据的类。 IOKit.framework 包含设备所使用的接口。 MapKit.framework 包含将地图界面嵌入到应用程序的类,也可以用于查找地理编码反向坐标。 MediaPlayer.framework 包含显示全屏视频的接口。 MessageUI.framework 包含撰写和排队发送电子邮件信息的界面。 MobileCoreServices.framework 定义系统支持的统一类型标识符(UTIs)。 OpenAL.framework 包含OpenAL接口。OpenAL是一个跨平台的方位音频库。 OpenGLES.framework包含OpenGL ES接口。OpenGL ES框架是OpenGL跨平台2D和3D渲染库的跨平台版本。 QuartzCore.framework 包含Core Animation接口。。 QuickLook.framework 包含预览文件接口。 Security.framework 包含管理证书、公钥私钥以及信任策略的接口。 StoreKit.framework 包含用于处理与应用程序内购买相关的财务交易。 SystemConfiguration.framework 包含用于处理设备网络配置的接口。 UIKit.framework 包含iOS应用程序用户界面层使用的类和方法。
~OVER
认识iOS系统架构的更多相关文章
- iOS 系统架构
https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/ ...
- iOS系统架构
1.iOS系统架构 iOS的系统架构分为四个层次 核心操作系统层 (Core OS) 它包括 内存管理 , 文件系统 , 电源管理以及一些其他的操作系统任务, 它可以直接和硬件设备进行交互 核心服务层 ...
- ios系统架构及常用框架
1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer).媒体层(Media l ...
- 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 系统架构 && 常用 framework
整理自互联网,感谢原文作者! 1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch lay ...
- iOS 系统架构及常用框架(iOS的系统架构分为四个层次)
1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer).媒体层(Media l ...
- iOS 操作系统架构
Mac OS 和 iOS 操作系统架构 做iOS开发已经半年多了,但是感觉对iOS开发的理解却还只停留在表面,昨天刚把两个项目结了,今天打算学了一下iOS系统的架构,以便于更好的理解和开发. 首先看一 ...
随机推荐
- windows centos php-beast 安装
https://github.com/imaben/php-beast-binaries windows下 可以直接在这里下载dll 根据自己的php版本 还有是不是线程安全的 来选择下载对应的 放 ...
- MySQL导出数据到文件报错
执行如下语句: mysql> select * from users into outfile "F:\Develop\MySQL57\Uploads\users.txt" ...
- React项目中遇到的那些坑
1.react中路由跳转后页面不置顶问题 问题: 从页面A跳转到页面B,页面A滚动到中间位置,跳转后页面B也会在中间位置 解决方法:在顶部组件的生命周期中进行判断,例如 componentWillRe ...
- linux chrome rpm chrome浏览器下载(ver 63-70)
我的github chrome下载地址:https://github.com/chen1932390299/python 国内开源的资源 chrome下载centos 的:https://www.ch ...
- leetCode练题——38. Count and Say
1.题目 38. Count and Say The count-and-say sequence is the sequence of integers with the first five te ...
- ZOJ1005 Jugs
题意:有两个容量互质的容器,需要用这两个容器量出目标重量的水,找到其中一组解.bfs,使得搜索得到的解是步数最少的,遍历前驱法输出路径~ #include<bits/stdc++.h> u ...
- spring boot加载配置文件的顺序
四个默认加载配置文件地方的优先级,四个文件相同配置有优先级概念 不同位置相互补充 外部配置文件不建议使用,不符合maven项目结构,打包会打不进去
- 进程作业管理2-kill,前后台作业,并行执行
kill命令:向进程发送控制信号,以实现对进程管理,每个信号对应一个数字,信号名称以SIG开 头(可省略),不区分大小写 显示当前系统可用信号: kill –l 或者 trap -l 常用信号: ...
- onclick="this.src=this.src+'?'"是什么意思?
onclick="this.src=this.src+'?'" 这是表示当前图片链接 在当前链接值的基础上添加了一个问号 譬如当前src="check.aspx" ...
- 收藏---wordpress搭建出来的blog
http://blog.luofei.org/2012/02/painters-and-paintings-through-the-eyes-of-faith/