iOS 技术预览
iOS 技术预览
1. 关于iOS相关技术
iOS是运行在iPad,iPhone,iPod设备上的操作系统。iOS Software Development Kit(SDK)包含开发、安装、运行、测试App需要的工具和接口。App开发使用Objective-C和Apple提供的框架。帮助文档 :Xcode>Help>Documentation and API Reference
2. iOS分层体系结构
层次:
--------------------
| Cocoa Touch |
---------------------
| Media |
--------------------
| Core Services|
---------------------
| Core OS |
---------------------
(1). Cocoa Touch 层,编写iOS App的关键框架,包括:用户界面、触摸输入、多任务、通知推送、其他高级的系统服务。高级特性:
a). App Extensions:扩展app的功能,如:Share(分享到社交网络)、Action(对当前内容执行一个简单的任务)、Widget(通知中
心不减)、Photo editing(照片编辑)、Document provider(提供允许别的App访问的文档存储器)、Custom keyboard
b).Handoff:切换到另外一个设备上继续原来的工作
c).Document Picker:UIDocumentPickerViewController授权用户访问应用程序沙盒之外的文件。
d).AirDrop:相互靠近的设备之间共享照片、文档、URL、其他数据等。UIActivityViewController。
e).TextKit:处理和格式化文本。
f). UIKit Dynamics:App可以为UIView对象和其他遵循UIDynamicItem协议的对象指定动态行为。
g).Multitasking:多任务
h).Auto Layout:使用少量的代码建立动态的界面(即自动适应)。
i).Storyboards:推荐的设计用户界面的方式
j).UI State Preservation(UI状态保持)
k).Apple Push Notification Service:消息推送提示用户有新消息,即使App不在运行。
l).Local Notifications
m).Gesture Recognizer:检测常规类型手势。所有手势识别器都是基于UIGestureRecognizer类。
n).Standard System View Controller:许多系统框架定义了标准的系统界面的控制器。包括:使用Addres Book UI框架来显示
和编辑联系人、使用EventKit UI框架创建和编辑日历事件、使用Message UI框架构建邮件或SMS消息、使用UIKit框架中的 UIDocumentInteractionController类来打开或预览文件、使用UIKit框架中的UIImagePickerController类来选择图片和照片和 视频剪辑。
(2). Media(媒体)层:包含图像,音频,视频,Airplay支持。
1). 图像相关:
a). UIKit graphics:UIKit定义的在你的视图中支持绘画图片,动画显示视图内容。
b). Core Graphics framework:也称为Quartz,本地绘画引擎,支持2D和图形渲染。
c). Core Animation:Quartz核心框架的部分,优化App的动画体验
d). Core Image:以无损检测的方式支持对视频和图像的管理。
e). OpenGL ES 和 GLKit: OpenGL ES使用硬件加速接口来处理高级2和3D渲染。GLKit为OpenGL ES的Objective-C面向
对象封装。
f). Metal: 使用极低的开销来访问A7 GPU。
g). TextKit和Core Text:TextKit为UIKit家族中的类用于执行文本格式和管理文本。Core Text为基于C语言的高级文本格式好
和布局。
h). Image I/O:提供大多数图形读/写访问接口。
i). Photo 库:Photos和PhotosUI框架提供用户照片、视频、和媒体文件的访问。
2). 音频相关:
a). Media Player framework:访问用户iTunes库,支持播放列表。
b). AV Foundation:录音和回放音频和视频的Objective-C接口。
c). OpenAL:传输音频使用的工业级别的技术。
d). Core Audio:提供了录制和回放音频和MIDI内容的简单的和复杂的接口。
支持的音频格式:AAC,ALAC,A-law,IMA4,u-law,DIV/Intel IMA ADPCM,Microsoft GSM 6.10, AES3-2003
3). 视频相关:
a). UIImagePickerController:UIKit用于选择用户媒体文件的视图控制器。
b). AVKit:呈现视频的一系列简单接口,支持全屏播放视频,支持可选的播放控制。
c). AV Foundation:提供高级的视频回放和录制。
d). Core Media:定义了低级别的数据类型和管理媒体的接口。
4). AirPlay:
将你的音频和视频内容导入到Apple TV和其他第三方AirPlay设备上播放。支持AirPlay:
a). 为了将内容显示在iOS设备上,创建一个窗口病设置它为UIScreen对象。
b). Media Play framework的回放类自动支持AirPlay。
c). AV Foundation的AVPlayer类可以支持AirPlay播放音频和视频内容(需要用户启用)。
d). 通过embed标签的airplay属性使得web上的音频和视频支持AirPlay播放。UIWebView类也支持。
(3). Core Service层,Core Foundation和Foundation 框架,支持位置、iCloud、社交媒体、网络等。高级特性包括:
a). Peer-to-Peer:点对点服务,接近的设备间通过蓝牙进行点对点连接。
b). iCloud Storage:存储文档和数据。
c). Block Objects: 类似其他语言的闭包。
d). Data Protection:数据保护。
e). File-Share Support:使得用户数据文件在iTunes9.1+中可用。
f). Grand Central Dispatch:BSD的技术。
g). In-App Purchase:应用内购物。
h). SQLite:应用程序中使用SQLite数据库。
i). XML Support:NSXMLParser类解析XML文档。
(4).Core OS层:
a). Accelerate Framework:包含了执行DSP,线性代数,图像处理的接口。
b). Core Bluetooth Framework:蓝牙相关操作。
c). External Accessory Framework:提供了与iOS上扩展的硬件设备通信的接口。
d). Generic Security Services Framework(GSS):安全服务相关。
e). Local Authentication Framework:让你使用Touch ID来验证用户身份。
f). Network Extension Framework:提供配置和控制VPN的接口。
g). Security Framework:保证你App管理的数据的安全。
h). System:包括内核环境,驱动,以及底层的UNIX接口。
i). 64-Bit Support:支持64位体系结构。
3. Cocoa Touch层包含的框架
(1). Address Book UI Framework
AddressBookUI.framework用于创建、编辑、选择联系人。
(2). EventKit UI Framework
EventKitUI.framework提供显示和编辑日历相关事件的视图控制器。
(3). GameKit Framework
GameKit.framework支持游戏中心(让用户在线共享游戏相关信息)。
(4). iAd Framework
iAd.framework通过在应用程序中提供广告获取资金。
(5). MapKit Framework
MapKit.framework应用程序中嵌入地图。
(6). Message UI Framework
MessageUI.framework允许你应用程序中发送邮件和信息。
(7). Notification Center Framework
NotificationCenter.framework在通知中心创建小部件。
(8). PushKit Framework
PushKit.framework提供VoIP应用程序注册支持。
(9). UIKit Framework
UIKit.framework实现图形界面主要框架,包括:
a). 用户界面管理,包括支持nib和storyboard文件;
b). 用户界面的视图控制器;
c). 代表标准系统视图和控制器的对象;
d). 支持处理touch和motion事件;
e). 支持文档模型包括iCloud;
f). 支持图形和窗口,包括支持扩展显示;
g). 多任务支持;
h). 打印支持;
i). 支持定制标准UIKit控制器界面;
j). 支持文本和web内容;
k). 支持剪切,复制,黏贴;
l). 动画支持用户界面内容;
m). 通过URL协议和框架接口整合系统中其他App;
n). 禁止用户访问;
o). 支持Apple Push Notification 服务;
p). 支持本地通知;
q). 创建PDF;
r). 定制视图输入;
s). 创建定制的文本视图;
t). 支持邮件,Twitter, Facebook其他服务共享内容
4. Media层包含的框架:
(1). Assets Library Framework
AssetsLibrary.framework提供对Photos应用管理的照片和视频的访问。
(2). AV Foundation Framework
AVFoundation.framework提供了播放,录制,管理音频和视频内容的Objective-C类。
(3). AVKit Framework
AVKit.framework利用AVFoundation.framework中的类管理视频。
(4). Core Audio
包含处理音频的一系列框架,支持产生、录制、混频、播放音频。CoreAudio.framework 定义了音频相关的数据类型。
a). AudioToolbox.framework录制和回放音频文件。也支持管理音频文件、播放系统警告声音、触发设备震动。
b). AudioUnit.framework提供使用内建音频单元(音频处理模块)的服务。
c). CoreMIDI.framework提供与MIDI设备通信的标准方式。
d). MediaToolbox.framework访问音频tap的接口。
(5). CoreAudioKit Framework
CoreAudioKit.framework提供与内建音频App链接管理的标准视图。
(6). Core Graphics Framework
CoreGraphics.framework包含Quartz 2D绘画相关API的接口。
(7). Core Image Framework
CoreImage.framework提供内建的过滤视频和图像的接口。
(8). Core Text Framework
CoreText.framework提供基于C语言的布局文本和处理字体的接口。
(9). Core Video Framework
CoreVideo.framework为Core Media框架提供缓冲和缓冲池。
(10). Game Controller Framework
GameController.framework允许你App中发现和配置iPhone/iPod/iPad(MFi)游戏控制器硬件。
(11). GLKit Framework
GLKit.framework包含了简化创建一个OpenGL ES App的类。
(12). Image I/O Framework
ImageIO.framework提供导入和导出图像数据和元数据的接口。
(13). Media Accessibility Framework
MediaAccessibility.framework管理媒体文件字幕内容。
(14). Media Player Framework
MediaPlayer.framework提供播放音频和视频内容的高级接口。
(15). Metal Framework
Metal提供A7 GPU支持
(16). OpenAL Framework
应用间传输音频的的标准接口。
(17). OpenGL ES Framework
OpenGLES.framework提供绘画2D和3D内容的工具。基于C语言的框架
(18). Photos Framework
Photos.framework提供使用照片和视频资源(包括iCloud上)的接口。
(19). Photos UI Framework
PhotosUI.framework允许你创建用于编辑图片和视频的App扩展。
(20). Quartz Core Framework
QuartzCore.framework保护核心动画接口。
(21). SceneKit Framework
是一个使用3D图像创建简单游戏和富App的Objective-C框架。
(22). SpriteKit Framework
SpriteKit.framework为2D和2.5D游戏提供硬件加速。
5. Core Services层包含的框架:
(1). Accounts Framework
Accounts.framework提供统一的账号管理。
(2). Address Book Framework
AddressBook.framework程序可访问的用户联系人数据库。
(3). Ad Support Framework
AdSupport.framework提供访问一个应用程序中用于广告的标识符。
(4). CFNetwork Framework
CFNetwork.framework使用网络协议。
(5). CloudKit Framework
CloudKit.framework提供iCloud支持。
(6). Core Data Framework
CoreData.framework 管理数据模型。
(7). Core Foundation Framework
CoreFoundation.framework:基于C语言的基础数据管理和iOS服务。
a). 数据集类型(数组,集合等)
b). Bundles(包)
c). 字符串管理
d). 日期时间管理
e). 原始数据块管理
f). URL和流操作
g).线程和run loop
h).端口和Socket通信
(8). Core Location Framework
CoreLocation.framework提供地址和航向信息。
(9). Core Media Framework
CoreMedia.framework提供AV Foundation框架访问的低级媒体类型。
(10). Core Motion Framework
CoreMotion.framework访问设备上所有motion相关的数据。
(11). Core Telephony Framework
CoreTelephony.framework提供与电话相关信息交互接口。
(12). EventKit Framework
EventKit.framework访问日历事件的接口。
(13). Foundation Framework
Foundation.framework对Core Foundation框架中许多特性进行Objc包装。
a). 数据集类型(数组,集合等)
b). Bundles(包)
c). 字符串管理
d). 日期和时间管理
e). 原始数据块管理
f). 偏好设置管理
g). URL和流操作
h). 多线程和run loops
i). Bonjour(零配置网络)
j).端口通信管理
l). 国际化支持
m). 正则表达式
n). Cache支持
(14). HealthKit Framework
HealthKit.framework管理健康相关信息。
(15). HomeKit Framework
HomeKit.framework智能家居相关。
(16). JavaScript Core Framework
JavaScriptCore.framework提供Javascript对象的Objc封装。用于执行Javascript代码和解析JSON数据。
(17). Mobile Core Services Framework
MobileCoreServices.framework定义UTIs低级别的类型。
(18). Multipeer Connectivity Framework
MultipeerConnectivity.framework支持发现附近的设备,且无需请求Internet连接久能与之通信。
(19). NewsstandKit Framework
NewsstandKit.framework提供一个供用户阅读新闻和杂志的中心位置。
(20). PassKit Framework
PassKit.framework提供存储优惠券,登机牌,活动门票,和商业折扣卡的位置。
(21). Quick Look Framework
QuickLook.framework提供直接预览文件内容的接口。
(22). Safari Services Framework
SafariServices.framework支持Safari之间访问URL。
(23). Social Framework
Social.framework提供访问设计媒体账号分享内容。
(24). StoreKit Framework
StoreKit.framework提供iOS应用中支持为内容和服务付款。
(25). System Configuration Framework
SystemConfiguration.framework配置网络连接的接口。
(26). WebKit Framework
WebKit.framework应用程序中显示HTML内容。也提供创建或编辑HTML文件中DOM对象。
6. iOS设备上可以的框架
<Xcode.app>/Contents/Developer/Platforms/iPhoneOS.platfrom/Developer/SDKs/<iOS_SDK>/System/Library/Frameworks
7. 系统库
目录: /usr/lib 和 /usr/include
本文出自 “yandong-iOS学习笔记” 博客,请务必保留此出处http://yandonghuang.blog.51cto.com/9573867/1577181
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。