iOS系统架构层次

来源:互联网 发布:unity3d 地图制作 编辑:程序博客网 时间:2024/06/11 09:36

学习iOS这么长时间,都是把精力放在具体问题方法分析上,对iOS系统架构的层次很少关心,其实首先应该对整体架构有所了解,明白实际开发中是在哪个层次中开发,了解开发的应用所生存的环境。iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer)、媒体层(Media layer)、核心服务层(Core Services layer)、核心操作系统层(Core OS layer)如图:这里写图片描述
1.Core OS (核心操作系统层)
它可以直接和硬件设备进行交互。内存管理、文件系统、电源管理以及一些其他的操作系统任务。核心操作系统层包括以下这些组件:
OS X Kernel Mach 3.0 BSD Sockets Power Mgmt File System Keychain Certificates Security Bonjour
2.Core Services(核心服务层)
Core Services层在Core OS的基础上提供了更加丰富的功能,它包含了Foundation.Framework和Core Foundation.Framework(也就是一些基础的框架)。Core Services和Core OS一起,提供了苹果移动设备(如iPhone和iPad等)的基础接口,包括:用来访问文件的接口、底层数据类型的接口、Bonjour服务接口、网络接口等。值得一提的是,这些接口大多都是用C语言编写的。我们可以通过它来访问iOS的一些服务。它包括以下这些组件:
Collections Address Book Networking

File Access SQLite Core Location

Net Services Threading Preferences

URL Utilities
3.Media(媒体层)
提供了图片、音乐、影片、动画等多媒体功能。图像分为2D图像和3D图像,前者由Quartz2D来支持,后者则是由OpenglES来支持;音乐是由Core Audio和OpenAL来支持;影片用Media Player来播放;动画由Core Animation来支持,通过它我们可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。它包括以下这些组件:

Core Audio OpenGL Audio Mixing

Audio Recording Video Playback JPG,PNG,TIFF

PDF Quartz Core Animation

OpenGL ES
4.Cocoa Touch(触摸层)
为应用程序开发提供了各种常用的框架并且大部分框架与界面有关,负责用户在iOS设备上的触摸交互操作。它包括以下这些组件:

Multi-Touch Events Core Motion Camera

View Hierarchy Localization Alerts

Web Views Image Picker Multi-Touch Controls
在最上层Cocoa Touch层中的很多技术都是基于Objective-C语言的。Objective-C语言为iOS提供了集合、文件管理、网络操作等支持。比如UIKit框架,它为应用程序提供了各种可视化组件,比如像窗口(Window)、视图(View)和按钮组件(UIButton)。Cocoa Touch层中的其他框架,对我们在应用程序中的开发来说也是非常有用的,如访问用户通信录功能框架、获取照片信息功能的框架、负责加速感应器和三维陀螺仪等硬件支持的框架。
5.4.应用程序的框架
Cocoa Touch层的框架提供了应用程序的基础架构。这些基础架构提供了集合、文件管理、网络操作等的面向对象支持。Cocoa Touch中最核心的部分是UIKit.Framework(UIKit框架),它为呈现应用程序界面上的各种组件提供了支持。除此之外,该框架还负责处理屏幕上的多点触摸事件、文字的输出、图片和网页的显示、相机或文件的存取、加速感应的部分等。当在编写程序的过程中需要用到一些特殊功能的时候,我们应该从框架的最顶端技术开始寻找相应的框架,只有在上层结构无法解决时,才能使用其下层的技术。其实,顶层的框架已经涵盖了我们绝大多数需要的功能。

             常用的iOS SDK框架:
框架名称 功 能

AddressBook.framework 提供访问存储核心数据库中用户联系人信息的功能
AddressBookUI.framework 提供一个用户界面,用于显示存储在地址簿中的联系人信息
AudioToolbox.framework 提供音频录制和回放的底层API,同时也负责管理音频硬件
AudioUnit.framework 提供一个接口,让我们的应用程序可以对音频进行处理
AVFoundation.framework 提供音频录制和回放的底层API,同时也负责管理音频硬件
CFNetwork.framework 访问和配置网络,像HTTP、FTP和Bonjour Services
CoreFoundation.framework 提供抽象的常用数据类型,如 Unicode strings、XML、URL等
CoreGraphics.framework 提供2D绘制的基于C的API
                 续表:

框架名称 功 能

CoreLocation.framework 使用GPS和Wi-Fi获取位置信息
Foundation.framework 提供Object-C的基础类(像NSObject)、基本数据类型和操作系统服务等
GameKit.framework 为游戏提供网络功能;点对点互联和游戏中的语音交流
MapKit.framework 为应用程序提供内嵌地图的接口
MediaPlayer.framework 提供播放视频和音频的功能
MessageUI.framework 提供视图控制接口用以处理E-mail和短信
OpenGLES.framework 提供简洁而高效的绘制2D和3D图形的OpenGL API子集
QuartzCore.framework 提供动画特效以及通过硬件进行渲染的能力
StoreKit.framework 为应用程序提供在程序运行中消费的支持SystemConfiguration.framework 检测当前网络是否可用和硬件设备状态的能力
UIKit.framework 创建和管理应用程序的用户界面

0 0