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:提供配置和控制×××的接口。

    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