`
bengan
  • 浏览: 206638 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

iPhone OS体系结构

阅读更多
iPhone OS体系结构
iPhone OS有着绚丽优雅的外观,同时也有着稳定安全的性能。iPhone OS的图形系统采用OpenGL ES作为底层驱动,同时支持硬件加速。iPhone OS的体系结构大致可分为以下4层:

Cocoa Touch(可轻触层)

Media(媒体层)

Core Service(核心服务层)

Core OS(核心操作系统层)



图1-7所示为iPhone OS的体系结构图。





1、Core OS

Core OS提供了最底层的功能,iPhone OS的许多技术都是基于Core OS的。在应用程序里面开发者虽然不会直接用到Core OS提供的功能,但是所引用的其他库很有可能会用到Core OS提供的功能,或者依赖于Core OS。另外,当开发者在处理安全问题或者与硬件进行沟通的时候,会直接用到Core OS提供的功能。图1-8是Core OS的组成模块图。





       (1)Accelerate Framework:包含了数学计算、大号码以及数字信号处理等一系列接口。使用这个库的好处在于,开发者可以对其进行重写,用以优化基于iPhone OS的不同设备的硬件特征,并且只需要写一次就可以确保它在全部的设备上有效运行。
(2)External Accessory Framework:负责iPhone OS设备与各种附属设备的沟通。iPhone OS设备可以通过自带的数据线、WIFI和蓝牙与附属设备进行沟通,External Accessory Framework提供接口让开发者可以获取各种附属设备的信息并且进行初始化,然后就可以放心地发送指令从而控制设备。

(3)Security Framework:用来保证应用程序数据管理的安全性。这个库会提供一些接口让开发者管理证书、公共密钥、私有密钥和信任策略。它支持安全加密随机数生成,同时也支持密钥的证书存储。

(4)System层:包括内核、驱动和OS的各种UNIX底层接口。其中内核是基于Mach( 用于Mac OS X的微内核)的,它主要负责处理虚拟内存管理、线程、文件系统、网络和进程间通信。驱动主要为各种硬件和系统库之间提供接口,iPhone OS提供接口让应用程序可以访问OS的各种功能,开发者可以通过LibSystem库来调用它们,这些接口都是基于C语言的,它们可以访问以下功能。

线程

网络

文件系统

标准输入输出

Bonjour 和DNS服务

本地信息

内存管理

数学计算

注 Bonjour也称为零配置联网,能自动发现IP网络上的电脑、设备和服务。Bonjour 使用工业标准的IP协议来允许设备自动发现彼此,而不需输入IP地址或配置DNS服务器。

Bonjour是法语中“你好”的意思,使用Bonjour的设备在网络中自动传播它们自己的服务信息并聆听其他设备的服务信息,设备之间就像在打招呼,这也是命名为Bonjour的原因。Bonjour使局域网中的系统和服务即使在没有网络管理员的情况下也能很容易被找到。Bonjour显示局域网内支持组播域名协议的设备和应用的名称,采用multicast DNS来解决局域网内设备的命名冲突。

2、Core Service

Core Service由两个部分组成:一是核心服务的一系列库;二是基于核心服务的一些高阶功能。其中核心库如下:

(1)Address Book Framework:用于地址簿管理,开发者可以通过这个库管理电话联系人列表,访问联系人列表的数据库,然后进行添加、删除和编辑等其他操作。

(2)CFNetwork Framework:提供了一系列的接口,可以让开发者更方便、快捷地进行网络沟通。开发者无须关注过多的细节,可以花更多的精力在应用程序上面。

(3)Core Data Framework:用于管理基于MVC模式(Model模型、View视图、Controller控制器)应用程序的数据模型,它是一个关系数据管理系统。 Core Data提供了在存储器中保存、管理、更改以及获取数据等基础功能。

(4)Core Foundation Framework:是C语言库,它为应用程序提供了各种基础设施。

(5)Core Location Framework:提供定位的功能,这个库可以运用GPS、3G和WIFI来侦测用户的位置,地图应用程序可以使用这个功能来显示用户在地图上的位置。开发者可以将这个功能加入到应用程序中实现相关的功能,如开发者可以根据位置来提供附近餐馆、商店以及银行等的搜索服务。

(6)Core Media Framework:提供比较底层的媒体处理,很多应用程序很少用到这个库。

(7)Core Telephony Framework:提供接口让用户可以收集到电话商的服务信息,例如,用户可以知道自己用的是哪个电信商的服务,知道自己的设备现在是不是在打电话。

(8)Event Kit Framework:可以让用户在自己的设备上访问日历事件,用它来获取现有的日历事件或者添加一个新的事件,例如进行闹钟控制。

(9)Foundation Framework:提供的功能和Core Foundation Framework提供的功能差不多,区别在于它是Objective-C库。

(10)Mobile Core Services Framework:为UTI(Uniform Type Identifiers,统一类型的标识符)定义了比较底层的数据类型。

(11)Quick Look Framework:可以让用户对文件的内容进行预览。

(12)Store Kit Framework:为应用程序与App Store(应用程序商店)之间的通信提供服务,应用程序可以通过该库从App Store接受那些用户想要提供的产品信息,并显示出来供用户购买。当用户需要购买某件产品时,程序调用Store kit来收集购买信息。

注:App Store是苹果公司为iPhone和iPod Touch以及iPad创建的服务,允许用户从App Store浏览和下载一些为了iPhone SDK开发的应用程序。用户可以购买或免费试用,将该应用程序直接下载到iPhone或iPod Touch上。应用程序则包括游戏、日历、翻译程序、图库以及许多实用的软件。

(13)System Configuration Framework:可以让用户决定设备的网络配置,通过该库来决定是否要使用WIFI连接或者是否连接某个网络服务。

基于核心服务的高级功能如下:

Block Objects:是一个C语言构造体,开发者可以将它插入到C代码或者Objective-C代码中。从本质上来说,一个Block Objects就是一个封闭函数,或者说是伴随这个函数的数据。一般来说,Block可以运用下面几种情形:

代替代理和代理方法

代替回调函数

与分发堆栈一起实现异步工作

Grand Central Dispatch:简称GCD,可以大大提高工作效率。它可以根据处理器的数量调整应用程序的工作负荷,而且只会使用任务所需数量的线程,从而提高应用程序的效率。例如,在不使用GCD时,如果一个应用程序在最大负载时需要20条线程,那么即使在空载时,它也会建立20条线程,并占用相关资源。而使用GCD时则不然,GCD会释放闲置资源,加快整个系统的响应速度。

In App Purchase:是基于Store Kit Framework实现的高级功能,通过这个功能用户可以让自己的应用程序很好地处理账号、App Store与应用程序之间的关系。

Location Services:基于Core Location Framework实现的服务功能,可以让应用程序给用户定位,查找用户当前位置。

SQLite(嵌入式数据库):可以让开发者在应用程序里面嵌入一个轻量级的SQL数据库,无须建立一个分开的数据库服务器,就可以在应用程序里面创建一个Database文件,然后进行列表和记录管理。

XML Support可以让开发者对XML文件进行解析。

3、Media

媒体层主要提供图像渲染、音频播放和视频播放的功能。

(1)开发者可以用以下技术进行图像渲染:

用Core Graphics进行图像的2D渲染。

用Core Animation来提供动画效果。

用OpenGL ES来提供对2D和3D渲染的支持,支持硬件加速。

Core Text提供了流畅的字体渲染引擎。

Image I/O 提供接口用以各种格式图像的读写。

Assets Library Framework用以对用户照片库里的照片和视频进行访问。

(2)媒体层的Audio模块提供了以下功能:

Media Player Framework可以让用户很容易地访问iTunes 的最新版本库并且支持列表播放。

注 iTunes 是供 Mac 和 PC 使用的一款免费应用程序,能管理和播放数字音乐和视频,让全部媒体文件保持同步。它还是用户电脑、iPod Touch、iPhone 和 iPad 上的虚拟商店,随时随地满足一切娱乐所需。

AV Foundation提供了简单易用的接口用以管理音频回放和记录。

OpenAL 提供跨平台的接口支持音频播放。

Core Audio Frameworks提供了一系列简单的接口,开发者可以通过这些接口进行音频播放和记录,也可以用它们来播放系统声音,同时管理本地音频文件或者音频流的多通道缓冲和回放。

(3)媒体层的Video模块提供了以下功能:

Media Player Framework为开发者提供了一系列简单易用的接口,开发者可以在应用程序里面调用这些接口来进行视频播放。

AV Foundation用以管理视频的抓频和回放。

Core Media提供底层的服务,供上面的功能调用。

4、Cocoa Touch

作为整个OS的最顶层,这一层是最为核心的部分,它还负责处理屏幕上的多点触摸事件、文字的输出、图片网页的显示、相机或文件的存取以及加速感应的部分。下面是这一层所包含的库:

(1)Address Book UI Framework:可以用来显示Address Book数据库中联系人的数据。这个基于C的框架可以提供一个图形界面来访问用户的联系人信息,同时用户也可以创建新的联系人,删除或者编辑已存在的联系人。

(2)Event Kit UI Framework:基于Event Kit Framework,它主要为查看和编辑事件提供视图控制器。

(3)Game Kit Framework:为游戏应用程序提供点对点的网络连接和语音通信来支持对战游戏。这个框架支持所有的应用程序,并且无须配对。

(4)iAd Framework :让应用程序播放广告,这样可以为应用程序带来额外的收入。

(5)Map Kit Framework:可以让应用程序中嵌入地图和Map Kit,支持Google Mobile Maps的服务和缩放功能,自定义标签功能以及自定义位置信息等。

(6)Message UI Framework:用于编写和整理邮件。

(7)UIKit Framework:是这一层的核心部分,它提供了关键的基础设施、界面渲染以及事件驱动等。
  • 大小: 15.9 KB
  • 大小: 13.8 KB
分享到:
评论

相关推荐

    手机软件交互设计经验分享–硬件、系统平台和设计规范的影响借鉴.pdf

    Iphone OS则依赖于触摸操作,可能需要创新性的菜单解决方案,而Android则提供了一个中间地带,允许在传统菜单结构和触摸手势之间找到平衡。 此外,考虑到手机的屏幕尺寸和操作习惯,界面布局和导航结构也是设计的...

    面向iPhone开发者开发windows Phone 指南

    与iPhone OS相比,WP7旨在多款硬件设备上实现一致的性能和体验,这要求其具备高度的兼容性和标准化。 **开发工具:** - **Visual Studio Express for Windows Phone**:作为核心IDE,为开发者提供了代码编写、编译...

    Infinite-Blue-1042:我目前正在研究PyBlock模块及其其他功能,例如其图形,以及目前以EasyEda脚本编写并转换为Perl和Perl6(Raku)格式的Infinity Blue和Blue Core Computer。 我还正在开发编程语言V,V#和V ++,以及Z-5056952体系结构。 我目前也在学习Java和Dart编程语言,我想与他们一起开发快速的移动应用程序并创建有用的应用程序。 我在Xcode中使用Swift和SwiftUI为Mac,iPhone和Apple Watch

    我还正在开发编程语言V,V ++和V#,以及Z-5056952体系结构。 我目前也在学习Java和Dart编程语言,我想与他们一起开发快速的移动应用程序并创建有用的应用程序。 我在Xcode中使用Swift和SwiftUI为Mac,iPhone和...

    Android-chapter01.ppt

    同时,它还提到了几种主要的移动操作系统,如Symbian、Blackberry OS、Linux、Windows Mobile和iPhoneOS,以及Android。 Android是谷歌推出的一款基于Linux的开源手机平台,它以Java语言为主要开发语言,是第一个专...

    opus-for-iOS:iOS版opus框架构建脚本

    支持OS / Archs:iphoneos:armv7,armv7s,arm64模拟器:x86_64,i386 #用法: 只需在shell中运行以下命令: git clone https://github.com/wuqiong/opus-for-iOS.git cd opus-for-iOS ./build-opus-framework....

    Xcode.3.Unleashed

    这本书深入浅出地探讨了Xcode 3的各种工具和技术,对于那些想要在iOS和Mac OS X平台上进行软件开发,尤其是iPhone应用开发的程序员来说,是一本不可多得的参考资料。 Xcode是Apple提供的集成开发环境(IDE),集成...

    libproc:与libproc.dylib的低级绑定

    它是使用i386体系结构在OS X 10.7.5上开发和测试的。 由于该库没有详细记录,因此从xnu源代码手动跟踪了许多方面。低级API 该库的整个动作围绕着__proc_info()函数,该函数是围绕系统调用的简单包装。 该函数的签名...

    Miscellaneous:该存储库包含有助于越狱的iOS开发的内容

    这是一个脚本,用于使用 5.5及更高版本的Objective-C ABI 2.0简单地研究ARM体系结构上的Mach-O文件。 当前,该脚本主要执行以下操作: 向所有选择器添加注释,以便清楚使用_objc_msgSend选择器。 检查所有...

    嵌入式面试题文档

    4. **Android平台体系结构层次划分及其作用**: - **Linux内核层**:提供安全机制、内存管理、网络协议堆栈等功能。 - **中间件层**:包括函数库和运行时,如Dalvik虚拟机。 - **程序框架层**:提供基本管理功能...

    DeepBeliefSDK:一个物体设别的 好算法

    这是实现的卷积神经网络体系结构的框架。 处理代码已经过高度优化,可以在现代移动设备的内存和处理限制内运行,并且可以在iPhone 5S上不到300ms的时间内分析图像。 与OpenCV一起使用也很容易。 我们之所以发布此...

    msync:保持音乐库的低比特率副本与主副本同步

    msync 与主副本同步,维护音乐库的低比特率副本。 可以将其视为rsync ,但仅适用于音乐文件,并具有将高比特率或无损文件转码为低比特率文件的能力,适合在存储空间较小的... make install将为您当前的OS /体系结构构建

    编译ffmpeg for iOS

    - 修改./configure命令,指定适当的编译器、链接器路径、目标体系结构和其他选项。 - 在终端中执行`./build-i386`来启动编译过程。 **2. 编译armv7版本:** - 类似地,将ffmpeg源代码移动到ffmpeg-iphone-build目录...

    Cocoa 是什么?.pdf

    在 Mac OS X 的体系结构中,Cocoa 位于操作系统顶层的应用程序环境层。它位于 Darwin 层之上,与 Carbon 和 Java 等其他环境并列,共同构成了开发 Mac 应用程序的环境。 - **Darwin**: 包含了 Unix 核心功能,如...

    苹果最新办公体系IWORK使用说明书

    ### 苹果最新办公体系IWORK使用说明书 #### 概述 苹果公司的最新办公软件套装——iWork,作为与微软Office相竞争的产品,其在功能、用户体验及与苹果设备的集成度方面都有着卓越的表现。本说明书旨在为用户提供一份...

    嵌入式学习之路

    - **《ARM体系结构》**:本书全面介绍了ARM处理器架构,包括指令集、寄存器组织等方面,对于理解基于ARM的嵌入式系统的硬件基础非常重要。 - **《ARM程序分析与设计》**:通过学习这本教材,可以掌握如何在ARM平台上...

    15春地大嵌入式操作系统在线作业试卷.pdf

    冯·诺依曼体系结构是现代计算机的基础,其特点是数据和指令均存储在内存中,而ARM7处理器遵循这一结构。嵌入式软件具有系统内核小、专用性强、精简和实时性高的特点。实时操作系统(RTOS)提供标准API,保证任务...

    iOS技术概述(中文版).pdf

    文档内容详尽地介绍了iOS平台的技术体系,包括核心概念、关键技术和开发工具,以及从其他平台迁移至iOS时应注意的事项。文档的章节安排清晰有序,涵盖了从基础概念到高级特性的全方位讲解。 #### iOS平台与iPhone ...

    百一测评——计算机网络应用基础-ios模拟试题026.pdf

    1. iOS设备型号与分辨率:文件中提到了iPhone 5、iPhone 5S等设备型号,并给出了它们的屏幕分辨率参数,例如1024x768、2048x1536等。这些分辨率是开发者在适配应用界面时必须要考虑的因素,尤其是在多设备适配设计中...

Global site tag (gtag.js) - Google Analytics