iOS 框架

位于iOS系统架构最下面的一层是核心操作系统层,它包括内存管理、文件系统、电源管理以及一些其他的操作系统任务。它可以直接和硬件设备进行交互。

第二层是核心服务层,我们可以通过它来访问iOS的一些服务。

第三层是媒体层,通过它我们可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。

最上面一层是可触摸层,这一层为我们的应用程序开发提供了各种有用的框架,并且大部分与用户界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。


iOS 框架

iOS 框架


iOS应用程序基于FoundationUIKit框架

       在你开发程序时,主要使用框架就是Foundation和UIKit,因为它们包含了你需要的大部分东西。

Foundation框架为所有的应用程序提供基本系统服务

        你的应用程序,UIKit和其它的框架都是建立在Foundation框架上面的。Foundation框架是用Object-C对Core Foundation框架里许多特性的封装。

       使用Foundation可以:

  • 创建和管理集合,比如数组和字典
  • 访问存储在应用程序里的图片和其它资源
  • 创建和管理字符串
  • 提交和接收通知
  • 创建日期和时间对象
  • 自动发现IP网络上的设备
  • 操作URL流
  • 执行异步代码


UIKit框架提供创建基于触摸用户界面的类


      所有的iOS应用程序都基于UIKit,你不能是应用程序脱离这个框架。UIKit提供了在屏幕上绘制的机制,捕获事件,和创建通用用户界面元素。UIKit也通过管理显示在屏幕上的组件来组织复杂的项目。

      使用UIKit可以:

  • 构建和管理你的用户界面
  • 捕获触摸和基于移动的事件
  • 呈现文字和web内容
  • 优化你的多任务程序
  • 创建定制的用户界面元素

Core Graphics框架帮助你创建图形

       高质量的图形对于所有的iOS应用程序都是很重要的。在iOS中最简单且最快捷的创建图形的方式是使用UIKit框架提供的基于预渲染图形的视图和控件,然后让UIKit和iOS完成绘制。但是当你需要创建复杂的图形时,Core Graphics则提供了更底层的库来帮助你。

       使用Core Graphics可以:

  • 创建基于路径的绘图
  • 抗锯齿渲染
  • 添加梯度、图片和颜色
  • Use coordinate-space transformations.
  • 创建、显示和分析PDF文档

表 1  设备中的框架

名称

最先引入

前缀

描述


Accelerate.framework

4.0


cblas
,
vDSP

包含加速数学和DSP函数。 请查看 加速框架参考 。


AddressBook.framework

2.0


AB

包含直接访问用户联系人数据库的函数。请查看地址簿框架参考


AddressBookUI.framework

2.0


AB

包含显示系统定义的联系人挑选界面和编辑界面的类。请查看iOS地址簿UI框架参考 。


AssetsLibrary.framework

4.0


AL

包含显示用户照片和视频的类,请查看资源库框架参考 。


AudioToolbox.framework

2.0


AU
,
Audio

包含处理音频流数据以及播放或录制音频的接口。请查看音频工具箱框架参考


AudioUnit.framework

2.0


AU
,
Audio

包含加载并使用音频单元的接口。请查看音频单元框架参考.


AVFoundation.framework

2.2


AV

包含播放或录制音频的Objective-C接口。请查看AV Foundation框架参考.。


CFNetwork.framework

2.0


CF

包含通过WiFi或者蜂窝无线访问网络的接口。请查看CFNetwork框架参考


CoreAudio.framework

2.0


Audio

包含Core Audio框架使用的各种数据类型。请查看Core Audio 框架参考 。


CoreData.framework

3.0


NS

包含管理应用程序数据模型的接口。请查看Core Data 框架参考 。


CoreFoundation.framework

2.0


CF

提供一些基本软件服务,包括常见数据类型抽象、字符串实用工具、群体类型实用工具、资源管理以及偏好设置。请查看rovCore Foundation框架参考


CoreGraphics.framework

2.0


CG

包含Quartz 2D接口。请查看Core Graphics 框架参考 。


CoreLocation.framework

2.0


CL

包含确定用户方位信息的接口。请查看Core Location 框架参考


CoreMedia.framework

4.0


CM

包含操作音频和视频的底层例程。请查看Core Media 框架参考


CoreMotion.framework

4.0


CM

包含访问加速度计以及陀螺仪的数据的接口。请查看Core Motion 框架参考


CoreTelephony.framework

4.0


CT

包含访问电话相关的信息的例程。请查看Core Telephony 框架参考


CoreText.framework

3.2


CT

包含一个文本的布局渲染引擎。请查看Core Text参考集.。


CoreVideo.framework

4.0


CV

包含操作音频和视频的底层例程。请不要直接使用该框架。


EventKit.framework

4.0


EK

包含访问用户日历事件数据的接口。请查看Event Kit 框架参考


EventKitUI.framework

4.0


EK

包含显示标准系统日历界面的类。请查看Event Kit UI 框架参考


ExternalAccessory.framework

3.0


EA

包含与外设进行通讯的接口。请查看External Accessory 框架参考


Foundation.framework

2.0


NS

包含Cocoa Foundation层的类和方法。请查看Foundation 框架参考


GameKit.framework

3.0


GK

包含点对点连接管理接口。请查看Game Kit 框架参考


iAd.framework

4.0


AD

包含在应用程序中显示广告的类。请查看iAd 框架参考


ImageIO.framework

4.0


CG

包含读取或写入图像数据的类。请查看Image I/O 参考集


IOKit.framework

2.0

N/A

包含设备所使用的接口。请不要直接使用此框架。


MapKit.framework

3.0


MK

包含将地图界面嵌入到应用程序的类,也可以用于查找地理编码反向坐标。请查看Map Kit框架参考


MediaPlayer.framework

2.0


MP

包含显示全屏视频的接口。请查看Media Player 框架参考


MessageUI.framework

3.0


MF

包含撰写和排队发送电子邮件信息的界面。请查看Message UI 框架参考


MobileCoreServices.framework

3.0


UT

定义系统支持的统一类型标识符(UTIs)。


OpenAL.framework

2.0


AL

包含OpenAL接口。OpenAL是一个跨平台的方位音频库。如需进一步了解,请访问http://www.openal.org


OpenGLES.framework

2.0


EAGL
,
GL

包含OpenGL ES接口。OpenGL ES框架是OpenGL跨平台2D和3D渲染库的跨平台版本。请查看OpenGL ES 框架参考


QuartzCore.framework

2.0


CA

包含Core Animation接口。请查看Quartz Core 框架参考


QuickLook.framework

4.0


QL

包含预览文件接口。请查看Quick Look 框架参考


Security.framework

2.0


CSSM
,
Sec

包含管理证书、公钥私钥以及信任策略的接口。请查看Security框架参考


StoreKit.framework

3.0


SK

包含用于处理与应用程序内购买相关的财务交易。请查看 Store Kit 框架参考


SystemConfiguration.framework

2.0


SC

包含用于处理设备网络配置的接口。请查看System Configuration框架参考


UIKit.framework

2.0


UI

包含iOS应用程序用户界面层使用的类和方法。请查看UIKit 框架参考



Cocoa Touch 层

地址本框架

AddressBookUI.framework

是一套 Objective-C 的编程接口,可以显示创建或者编辑联系人的标准系统界面。该框架简化了应用程序显示联系人信息所需的工作,另外它也可以确保应用程序使用的界面和其他应用程序相同,进而保证跨平台一致性。

日历框架

EventKitUI.framework

它提供一个视图控制键可以展现查看并编辑事件的标准系统界面。Event Kit 框架的事件数据是该框架的构建基础。

P2P 及游戏内语音框架

GameKit.framework

该框架支持点对点连接及游戏内语音功能,您可以通过该框架为应用程序增加点对点 网络功能。点对点连接以及游戏内语音功能在多玩家的游戏中非常普遍,不过您也可以考虑将其加入到非游戏应用程序。此框架通过一组建构于 Bonjour 之上的简单而强大的类提供网络功能,这些类将许多网络细节抽象出来,从而让没有网络编程经验的开发者可以更加容易地将网络功能整合到应用程序。

广告框架

iAd.framework

您可以通过该框架在应用程序中发布横幅广告。广告会被放入到标准视图,您可以将这些视图加入到用户界面,并在合适的时机向用户展现。这些视图和苹果的公告服务相互协作,自动处理广告内容的加载和展现,同时也可以响应用户对广告的点击。

地图框架

MapKit.framework

该框架供一个可被嵌入到应用程序的地图界面,该界面包含一个可以滚动的地图视图。您可以在视图中添加定制信息,并可将其嵌入到应用程序视图,通过编程的方式设置地图的各种属性(包括当前地图显示的区域以及用户的方位)。您也可以使用定制标注或标准标注(例如使用测针标记)突出显示地图中的某些区域或额外的信息。

邮件框架

MessageUI.framework

您可以利用该框架撰写电子邮件,并将其放入到用户的发件箱排队等候发送。该框架提供一个视图控制器界面,您可以在应用程序中展现该界面,让用户通过该界面撰写邮件。界面的字段可以根据待发送信息的内容生成。例如您可以设置接收人、主题、邮件内容并可以在邮件中包含附件。这个界面允许用户先对邮件进行编辑,然后再选择接受。在用户接受邮件内容后,相应的邮件就会放入用户的发件箱排队等候发送。

Twitter 框架

twitter.framework方便开发者将 twitter 集成到 app 中。

Uikit 框架

UIKit.framework

包含 iOS 应用程序用户界面层使用的类和方法。

2 媒体层

资产框架

AssetsLibrary.framework

该框架提供一个查询界面,您可以通过它查找用户照片和数据。通过使用该框架,您

可以访问 Photos 管理的资产,包括用户保存的相册以及导入到设备中的图片或视频。OpenGL ES 提供的工具可用于绘制 2D 及 3D 内容。该框架基于 C 语言,能够和设备硬件紧密协作,应用程序播放视频和音频内容提供高级支持。通过该框架,您就可以使用标准系统界面播放视频。而且您也可以将照片或者视频保存到用户的相册。

图形框架:

CoreGraphics.framework

包含 Quartz 2D 绘图 API 接口 。Quartz 是 Mac OS X 系统使用的向量绘图引擎,它支持基于路径绘图、抗锯齿渲染、渐变、图片、颜色、坐标空间转换、PDF 文件的创建、显示和解析。虽然 API 基于 C 语言,但是它使用基于对象的抽象以表示基本绘图对象,这样可以让开发者可以更方便地保存并复用图像内容。

QuartzCore.framework

包含 Core Animation 接口。Core Animation 是高级动画制作和混合技术,它使用经过优化的渲染路径实现复杂的动画和视觉效果。它提供的高级 Objective-C 接口可对动画效果进行配置,然后在设备硬件中进行渲染,以此来提高程序的性能。Core Animation 框架被整合到 iOS 的许多部分(包括UIKit 框架中的许多类(如 UIView)),可以为多种系统行为提供动画效果。您也可以使用该框架中的 Objective-C 接口直接创建定制动画。

OpenGLES.framework

为全屏游戏类型的应用程序提供很高的帧速率。

CoreText.framework

该框架包含一组简单高效的 C 接口,可用于对文本进行布局以及对字体进行处理。Core Text 框架提供一个完整的文本布局引擎,您可以通过它管理文本在屏幕上的摆放。所管理的文本也可以使用不同的字体和渲染属性。

ImageIO.framework

该框架的接口可用于导入或导出图像数据及图像元数据。该框架建构于 Core Graphics 数据类型和函数之上,能够支持 iOS 上所有的标准图像类型。

音频框架

MediaPlayer.framwork

iOS 3.0 增加了对访问用户 iTune 库的支持。因此,您可以利用该框架播放音乐曲目、播放列表、搜索歌曲并向用户显示媒体选取界面。

AVFoundation.framework

该框架包含的 Objective-C 类可用于播放音频内容。通过使用该框架,您可以播放声音文件或播放内存中的音频数据,也可以同时播放多个声音,并对各个声音的播放特定进行控制。

OpenAL.framework

OpenAL 接口是在应用程序中发布方位音频的跨平台标准。通过使用该框架,您可以在游戏或者要求有方位音频输出的程序中实现高性能、高质量的音频。OpenAL 是跨平台的标准,iOS 平台使用OpenAL 编写的代码模块可以移植到许多其他的平台运行。

CoreAudio.framework

AudioToolbox.framework

AudioUnit.framework

提供 C 语言接口,可用于操作立体声音频。通过 iOS 系统 Core Audio 框架,您可以在应用程序中生成、录制、混合或播放音频,您也可通过该框架访问设备的震动功能(支持震动功能的设备)。

视频框架

MediaPlayer.framwork

应用程序播放视频和音频内容提供高级支持。通过该框架,您就可以使用标准系统界面播放视频。iOS 3.0 增加了对访问用户 iTune 库的支持。因此,您可以利用该框架播放音乐曲目、播放列表、搜索歌曲并向用户显示媒体选取界面。

AVFoundation.framework

该框架包含的 Objective-C 类可用于播放音频内容。通过使用该框架,您可以播放声音文件或播放内存中的音频数据,也可以同时播放多个声音,并对各个声音的播放特定进行控制。

CoreVideo.framework

该框架为 Core Media 提供缓存和缓存池的支持。大多数应用程序都不应该直接使用该框架。

CoreMedia.framework(Core Services)

Core Media 框架,它对较高级框架使用的底层类型进行描述,同时也提供一些底层接口,它们用于

对媒体进行处理。

MIDI 框架

CoreMIDI.framework

在 iOS4.2 推出,提供了一个标准的方式进行沟通与 MIDI 设备,包括硬件键盘和合成器。您可以使用此框架来发送和接收 MIDI 消息和交互连接到一个基于 IOS 的设备使用的基座连接器或网络的MIDI 外设。

GLKit 框架

GLKit.framework

在 iOS5 中引入的,包含了一套 Objective - C 语言为基础的实用工具类,简化了创建一个 OpenGL ES2.0应用程序所需的努力。

账户框架

Introduced in iOS 5, the Accounts framework (Accounts.framework) provides a single sign-on model forcertain user accounts. Single sign-on improves the user experience, because applications no longer needto prompt a user separately for login information related to an account. It also simplifies the

development model for you by managing the account authorization process for your application. In iOS5.0, applications can use this framework in conjunction with the Twitter framework to access a user’sTwitter account.

Newsstand Kit 框架

是苹果公司专门对数字出版做的一个新功能。它能把所有用户订阅的报刊和杂志类的 app 都放在一个组图标里。

3、Core Services 层

地址本框架

AddressBook.framework

支持编程访问存储于用户设备中的联系人信息。如果应用程序使用到联系人信息,则可通过该框架访问并修改用户联系人数据库的记录。举个例子,通过使用该框架,聊天程序可以获取一个联系人列表,利用此列表初始化聊天会话,并在联系人视图显示列表的联系人。

日历框架

EventKit.framework

此框架为访问用户设备的日历事件提供接口。您可以通过该框架访问用户日历中现有事件,可以增加新事件。日历事件可包含闹铃,而且可以配置闹铃激活规则。

Mobile Core Services 框架

MobileCoreServices.framework

此框架定义统一类型标识符 (UTIs)使用的底层类型。

GPS 框架

CoreLocation.framework

可用于定位某个设备当前经纬度。它可以利用设备具备的硬件,通过附近的 GPS、蜂窝基站或者 WiFi 信号等信息计算用户方位。Maps 应用程序就是利用此功能在地图上显示用户当前位置。您可以将此技术结合到应用程序,以此向用户提供方位信息。例如,应用程序可根据用户当前位置搜索附近饭店、商店或其他设施 。

网络连接框架

CFNetwork.framework

提供一组高性能基于 C 语言的接口,它们为使用网络协议提供面向对象抽象。通过这些抽象,您可以对协议栈进行更精细的控制,而且可以使用诸如 BSD socket 这类底层结构。您也可以通过该框架简化诸如与 FTP 或 HTTP 服务器通讯以及 DNS 主解析这类任务。

网络服务框架

SystemConfiguration.framework

可用于确定设备的网络配置。您可以使用该框架判断 Wi-Fi 或者蜂窝连接是否正在使用中,也可以用于判断某个主机服务是否可以使用。

电话信息框架

CoreTelephony.framework

此框架为访问具有蜂窝无线的设备上的电话信息提供接口,应用程序可通过它获取用户蜂窝无线服务的提供商信息。如果应用程序对于电话呼叫感兴趣,也可以在相应事件发生时得到通知。

Core Data 框架

CoreData.framework

一种管理模型-视图-控制器应用程序数据模型的技术,它适用于数据模型已经高度结构化的应用程序。通过此框架,您再也不需要通过编程定义数据结构,而是通过 Xcode提供的图形工具构造一份代表数据模型的图表。在程序运行的时候,Core Data 框架就会创建并管理数据模型的实例,同时还对外提供数据模型访问接口。

视频框架

CoreMedia.framework

此框架提供 AV Foundation 框架使用的底层媒体类型。只有少数需要对音频或视频创建及展示进行精确控制的应用程序才会涉及该框架,其他大部分应用程序应该都用不上。

商店框架

StoreKit.framework

此框架为 iOS 应用程序内购买内容或服务提供支持。例如,开发者可以利用此框架允许用户解锁应用程序的额外功能。或者假设您是一名游戏开发人员,则可使用此特性向玩家出售附加游戏级别。在上述的两种情况中,Store Kit 框架会处于交易过程中和财务相关的事件,包括处理用户通过 iTunes Store 账号发出的支付请求并且向应用程序提供交易相关信息。

快速查看框架

QuickLook.framework

应用程序可以用过该框架预览无法直接支持查看的文件内容。如果应用程序从网络下载文件或者需处理来源未知的文件,则非常适合使用此框架。因为应用程序只要在获得文件后,调用框架提供的视图控制器就可以直接在界面中显示文件的内容。

Foundation 框架

Foundation.framework

为 Core Foundation 框架的许多功能提供 Objective-C 封装。

Core Foundation 框架

CoreFoundation.framework

一组 C 语言接口,它们为 iOS 应用程序提供基本数据管理和服务功能。

4、Core OS 层

科学运算框架

Accelerate.framework

该框架的接口可用于执行数学、大数字以及 DSP 运算。和开发者个人编写的库相比,该框架的优点在于它根据现存的各种 iOS 设备的硬件配置进行过优化。因此,您只需一次编码就可确保它在所有设备高效运行。

附件框架

ExternalAccessory.framework

通过它来支持 iOS 设备与绑定附件通信。附件可以通过一个 30 针的基座接口和设备相连,也可通过蓝牙连接。通过 External Accessory 框架,您可以获得每个外设的信息并初始化一个通讯会话。通讯会话初始化完成之后,您可以使用设备支持的命直接对其进行操作。

数据安全框架

Security.framework

用于保证应用程序所管理的数据的安全。该框架提供的接口可用于管理证书、公钥、私钥以及信任策略。它支持生成加密的安全伪随机数。同时,它也支持对证书和Keychain 密钥进行保存,是用户敏感数据的安全仓库。

核心蓝牙

CoreBluetooth.framework

允许开发人员进行交互专门与蓝牙低能量(“LE”)附件。这个框架的 Objective - C 的接口允许您扫描 LE 的配件,连接和断开,阅读和写服务的属性,注册服务和属性更改通知,以及更多。

通用安全服务框架

GSS.framework

iOS 应用程序提供了一个安全相关的服务标准。在 IETF RFC2743 和 RFC4401 指定这个框架的基本接口。除了提供标准接口,IOS 包括增加一些管理不指定的标准,但多应用程序所需的凭据。

陀螺仪框架

CoreMotion.framework

包含访问加速度计以及陀螺仪的数据的接口。

System

系统层包括内核环境、驱动及操作系统底层 UNIX 接口。内核以 Mach 为基础,它负责操作系统的各个方面,包括管理系统的虚拟内存、线程、文件系统、网络以及进程间通讯。这一层包含的驱动是系统硬件和系统框架的接口。出于安全方面的考虑。

参考文章:iOS的主要框架介绍 百度文库

iOS 框架

上一篇:泰国行记一:在路上


下一篇:泰国行记二:普吉印象