整理自互联网,感谢原文作者!

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的更多相关文章

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

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

  2. 认识iOS系统架构

    关于本文: 文章主要介绍iOS系统架构中的四层结构的内容.常用的框架.大致的功能,然后对iOS开发人员的发展提出自己的一些拙见. 一.iOS系统是基于UNIX系统,所有从系统稳定性上来说的确比其他操作 ...

  3. iOS 系统架构

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

  4. iOS系统架构

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

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

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

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

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

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

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

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

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

  9. 解析大型.NET ERP系统架构设计 Framework+ Application 设计模式

    我对大型系统的理解,从数量上面来讲,源代码超过百万行以上,系统有超过300个以上的功能,从质量上来讲系统应该具备良好的可扩展性和可维护性,系统中的功能紧密关联.除去业务上的复杂性,如何设计这样的一个协 ...

随机推荐

  1. PHP操作MySQL数据库的相关函数

    首先,要分清SQL语句的类型: SQL语句的分类 (1)DDL:Data Define Language,数据定义语言--定义表的列结构 CREATE.DROP.ALTER.TRUNCATE (2)D ...

  2. html和css实现一级菜单和二级菜单学习笔记

    实现一级菜单: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> ...

  3. hadoop备战:一台x86计算机搭建hadoop的全分布式集群

    主要的软硬件配置: x86台式机,window7  64位系统 vb虚拟机(x86的台式机至少是4G内存,才干开3台虚机) centos6.4操作系统 hadoop-1.1.2.tar.gz jdk- ...

  4. C#多线程之Parallel中 类似于for的continue,break的方法

    好久没写东西了,终于找到点知识记录下... 利用ParallelLoopState对象来控制Parallel.For函数的执行,ParallelLoopState对象是由运行时在后台创建的: Para ...

  5. Linux脚本中使用特定JDK

    有时linux系统中装了很多应用,我们又不能覆盖系统中设置的版本,此时我们就需要在脚本文件中设置特定版本. export JAVA_HOME= export CLASSPATH=.:$JAVA_HOM ...

  6. (原)Ubuntu16中使用nvidia官方提供的驱动,而非自带的驱动

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5638185.html 安装完ubuntu16后,显卡显示的是Gallium... 在“设置-软件和更新 ...

  7. spring2.5IOC控制反转详解

    spring2.5IOC控制反转详解 19. 五 / J2EE / 一条评论   基本的代码结构 1 IOC包下 基本的spring创建对象 将类添加到配置文件中,由容器创建. Source code ...

  8. django中使用json.dumps处理数据时,在前台遇到字符转义的问题

    django后台代码: import json ctx['dormitory_list'] = json.dumps([{", "is_checked": 1}, {&q ...

  9. string下的 maketrans和translate

    在玩python challenge的时候发现一个比较有趣的函数所以记下来. 问题是这样的 g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amkn ...

  10. HTML+CSS学习

    1.彻底弄懂CSS盒子模式(DIV布局快速入门) 2.在CSS中,BOX的Padding属性的数值赋予顺序为padding:10px; 四个内边距都是10px padding:5px 10px; 上下 ...