关于本文:

文章主要介绍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系统架构的更多相关文章

  1. iOS 系统架构

    https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/ ...

  2. iOS系统架构

    1.iOS系统架构 iOS的系统架构分为四个层次 核心操作系统层 (Core OS) 它包括 内存管理 , 文件系统 , 电源管理以及一些其他的操作系统任务, 它可以直接和硬件设备进行交互 核心服务层 ...

  3. ios系统架构及常用框架

    1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer).媒体层(Media l ...

  4. iOS学习笔记(三)——iOS系统架构

    iOS的系统架构分为四个层次:核心操作系统层(Core OS layer).核心服务层(Core Services layer).媒体层(Media layer)和可触摸层(Cocoa Touch l ...

  5. iOS系统架构和Object-C基本数据类型(1)

    iOS系统架构 基本数据类型 思维导图  下载 注:打开思维导图的软件:Mindjet MindManager 9

  6. iOS 系统架构及常用框架

    1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer).媒体层(Media l ...

  7. iOS 系统架构 && 常用 framework

    整理自互联网,感谢原文作者! 1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch lay ...

  8. iOS 系统架构及常用框架(iOS的系统架构分为四个层次)

    1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer).媒体层(Media l ...

  9. iOS 操作系统架构

    Mac OS 和 iOS 操作系统架构 做iOS开发已经半年多了,但是感觉对iOS开发的理解却还只停留在表面,昨天刚把两个项目结了,今天打算学了一下iOS系统的架构,以便于更好的理解和开发. 首先看一 ...

随机推荐

  1. HashMap遍历,取出key和value

    HashMap的遍历有两种常用的方法,那就是使用keyset及entryset来进行遍历,在用keySet(key)取value时候,需要key 第一种: Map map = new HashMap( ...

  2. iOS 开发之使用链式编程思想实现简单的计算器

    链式编程思想是将多个操作(多行代码)通过点号(.)链接在一起成为一句代码,使代码可读性好.例如 a(1).b(2).c(3). 链式编程思想最为关键的是,方法的返回值是block,block必须返回对 ...

  3. python中for循环中的循环变量

    废话不多说,代码伺候: for i in range(3): print("hello") print(i) 运行结果如下: 从上面的例子可以看出,for循环里面的循环变量i作用域 ...

  4. 页面弹窗toast和加载loading

    create-at 2019-04-04 都采用单例模式,原生js实现 兼容老版本浏览器内核,请将用es6语法的地方作修改 loading 加载 代码: 样式全部通过js创建style标签注入head ...

  5. 【硬核教程】只需1秒—你也可以有自己的API文档

    Nothing is true. Everything is permitted. 写在前面 先聊聊为什么想到了要用Vuepress来代替原来写在Confluence上的文档. 大意是有个需要其他部门 ...

  6. How2j学习java-3下载 ECLIPSE

    1.下载并解压Eclipse 下载并解压到e:/eclipse,目录情况如图所示.注: 这个Eclipse是64位的,应该使用本站提供的JDK(64)位,下载地址:JDK. 如果JDK位数和 Ecli ...

  7. 浅谈SQL注入漏洞以及防范策略

    --HeShiwei 2014-5-15 什么是SQL注入 SQL注入,指的是用户通过向登录框输入恶意字符,利用代码的字符串拼接漏洞进行网站注入攻击,最终导致整个网站用户表信息泄露的攻击方式.黑客就是 ...

  8. python中安装下载超时,下载不了安装包

    python3 -m pip install scapy 执行上面命令报错,下载超时,下载不了安装包 Collecting scapy WARNING: Retrying (Retry(total=4 ...

  9. 【PAT甲级】1053 Path of Equal Weight (30 分)(DFS)

    题意: 输入三个正整数N,M,S(N<=100,M<N,S<=2^30)分别代表数的结点个数,非叶子结点个数和需要查询的值,接下来输入N个正整数(<1000)代表每个结点的权重 ...

  10. header头中 content-type的作用