iOS是由苹果公司开发的操作系统。最初是设计给iPhone使用,后来陆续套用到iPod touch、iPad以及Apple TV产品上。也就是说,iOS是苹果所有移动产品(iphone4S、iPhone5、new iPad、iPad mini)的操作系统,苹果iOS是目前全球最完善、生态环境最优秀的移动开发平台;

iOS平台使用了构建Mac OS X时积累的知识,iOS平台的许多工具和技术也源自Mac OS X平台。尽管它和Mac OS X很类似,但是没有Mac OS X开发经验也可以开发iOS程序。iOS SDK提供了创建iOS应用程序所需要的环境和工具。

iOS架构

iOS的架构和Mac OS X的基础架构很类似。如下图所示,从大局上看,iOS的角色是底层硬件和屏幕上的应用程序之间的中间层。你创建的程序不能直接和硬件交互,它们只能通过系统接口和对应的硬件交互。这种抽象使你的程序无需关心底层硬件的变动。

Layers of iOS
Layers of iOS

Cocoa Touch层包含了构建iOS程序的关键framework。这层定义了程序的基本结构,支持如多任务,基于触摸的输入,推送通知以及许多高层次的系统服务。

Media层为了在移动设备上创造最佳的多媒体体验,包含了图形,音频,视频等各种技术。更重要的是利用这些技术可以简单的创造出很好的程序。iOS的上层框架让你可以轻松的快速构建图像和图形,而底层框架给你所需的工具,让你可以精确掌握如何操作。

Core Services层提供了所有应用程序基本的系统服务。即使你不直接使用这些服务的系统,但许多地方都建立在它们之上。

Cocoa Touch框架

Address Book UI框架

Address Book UI框架(AddressBookUI.framework)是一个Objective-C的编程接口,用来显示创建新联系人、编辑和选择已有联系人的标准系统界面。这个框架让你可以轻松的在程序里面显示联系人信息,同时确保你的程序使用和其他程序一样的接口,保持了平台的一致性。

更多关于Address Book UI框架的类和如何使用他们的信息,参见iOS地址簿编程指南以及_iOS Address Book UI框架参考手册。_

Event Kit UI框架

从iOS 4.0开始,引入了Event Kit UI框架(EventKitUI.framework)提供了用来显示和编辑事件的view controller。这个框架基于Event Kit框架提供的事件相关数据结构,参见Event Kit框架

更多关于Event Kit UI框架类和方法的信息,参见Event Kit UI框架参考手册

Game Kit框架

iOS 3.0引入了Game Kit框架(GameKit.framework)支持在程序中进行点对点的网络通讯。尤其是这个框架支持了点对点的连接和游戏内的语音通话功能。虽然这些功能主要是用于多人对战网络游戏,但是也可以在非游戏程序中使用。这个框架提供的网络功能是构建在Bonjour之上几个简单的类实现的。这些类抽象了很多网络细节,让没有网络编程经验的开发者也可以轻松地在程序中加入网路功能。

更多关于Game Kit框架的信息,参见Game Kit编程指南以及Game Kit框架参考手册

iAd框架

iOS 4.0引入了iAd框架(iAd.framework)支持程序中显示banner广告。广告由标准的view构成,你可以把它们插入到你的用户界面中,恰当的时候显示。View本身和苹果的广告服务通讯,处理一切载入和展现广告内容以及响应点击等工作。

更多关于在程序中使用iAd的信息,参见iAd编程指南以及 iAd框架参考手册

Map Kit框架

iOS 3.0引入了Map Kit框架(MapKit.framework)提供了一个可以嵌入到程序里的地图接口。基于该接口的行为,它提供了可缩放的地图view,可标记定制的信息。你可以把它嵌入在程序的view里面,编程设置地图的属性,保存当前显示的地图区域和用户的位置。你还可以定义定制标记,或者使用标准标记(大头针标记),突出地图上的区域,显示额外的信息。

从iOS 4.0开始,这个框架加入可拖动标记和定制覆盖对象的功能。可拖动标记令你可以移动一个已经被放置到地图上的标记,编程,也可以通过用户行为。覆盖对象提供了创建比标记点更复杂的地图标记的能力。你可以使用覆盖对象在地图上来放置信息,例如公交路线,选区图,停车区域,天气信息(如雷达数据)。

更多关于Map Kit框架内类的信息,参见位置感知编程指南以及Map Kit框架参考手册

Message UI框架

iOS 3.0引入了Message UI框架(MessageUI.framewok)提供了编写和查询发建箱消息的能力。编写支持包含了一个可以在程序中显示的view controller接口。你可以在接口中填写你要发送信息的内容。你可以设置收信人,主题和内容,以及附件。用户可以选择信息的优先级。选定后,信息就会在用户的发件箱里面排队等待发送。

iOS 4.0和以后的系统,这个框架开始支持用来编写短消息的view controller。你可以使用这种view controller来创建和编辑短消息,而不用离开程序。和邮件编写接口一样,这个接口让用户选择发送前是否编辑一下。

更多关于Message UI框架里面类的信息,参见Message UI框架参考手册

UIKit框架

UIKit框架(UIKit.framework)包含iOS中实现图形,事件驱动编程的等关键架构Objective-C编程接口。iOS中的每个程序都在使用这个框架来实现如下的核心特行:

  • 应用程序管理
  • 用户界面管理
  • 图形和窗口支持
  • 多任务支持
  • 支持对触摸的处理以及基于动作的事件
  • 展现标准系统view和控件的对象
  • 对文本和web内容的支持
  • 剪切,复制和粘贴的支持
  • 用户界面动画支持
  • 通过URL模式和系统内其他程序交互
  • 支持苹果推通知
  • 对残障人士的易用性支持
  • 本地通知的预定和发送
  • 创建PDF
  • 支持使用行为类似系统键盘的定制输入view
  • 支持创建和系统键盘交互定制的text view 除了提供程序的基础代码支持,UIKit还包括了一些设备特性的支持,如:

  • 加速度传感器数据

  • 内建的摄像头(如果有的话)

  • 用户的照片库

  • 设备名和型号信息

  • 电池状态信息

  • 接近传感器信息

  • 耳机线控信息

关于UIKit框架内类的信息,参见UIKit框架参考手册

更多信息请参考官方文档:iOS Technology Overview