关于本文:

文章主要介绍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. 组件向外暴露v-model绑定的参数

    <template> <div class="search-box"> <i class="icon-search">< ...

  2. 基于 VS2019 配置 opencv4.x

    创建新项目 添加主函数文件 配置 注意,如果直接使用项目的属性去配置,那么创建新的项目的时候,还需要再配置一遍,在属性管理器里配置,创建新项目的时候,会自动应用 接下来,开始为软件配置目录和附加项.右 ...

  3. mac下Red Hat 7.4服务器初始化

    物料:VMware Fusion for Mac版     rhel-server-7.4-x86_64-dvd.iso 通过VMware安装好虚拟机,打开终端: 1.通过ifconfig查看ip和网 ...

  4. Golang 函数以及函数和方法的区别

    在接触到go之前,我认为函数和方法只是同一个东西的两个名字而已(在我熟悉的c/c++,python,java中没有明显的区别),但是在golang中者完全是两个不同的东西.官方的解释是,方法是包含了接 ...

  5. 利用graphviz软件和pycallgraph库自动生成Python代码函数调用关系图

    参考博文:https://blog.csdn.net/qq_36408085/article/details/82952846 https://blog.csdn.net/fondax/article ...

  6. 阿里云虚拟主机申请免费SSL证书并成功开通Https访问

    参考文档网址  https://baijiahao.baidu.com/s?id=1628343140232374972&wfr=spider&for=pc

  7. MATLAB的安装与入门

    最近安装了MATLAB来用,过程遇到很多问题,担心自己改天如果换电脑了就忘记一些安装问题,所以记录一个. 首先是资源问题,我在贴吧找到了好心人分享的破解资源(非常感谢好心人的资源(ง •_•)ง),然 ...

  8. ArrayQueue(队列)

    code1: #include <stdio.h> #include <conio.h> #include <stdlib.h> #define MAXSIZE 6 ...

  9. linux mysql 查看数据库大小

    SELECT CONCAT(TRUNCATE(SUM(data_length)//,),'MB') AS data_size, CONCAT(TRUNCATE(SUM(max_data_length) ...

  10. MySQL 之数据库初识

    一 数据库概述 数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的.过去人们将数据存放在文件柜里,现在数据量庞大,已经不再适用. 数据库是长期存放在计算机内.有组 ...