关闭

iOS框架结构

标签: ios框架结构
155人阅读 评论(0) 收藏 举报
分类:

iOS框架结构


一 Cocoa 发展

早些年,苹果公司启动了Copland计划,致力于开发出自己的操作系统,可惜后来Copland计划逐渐的失控了,苹果公司最终决定放弃开发,转向从别的公司购买下 一个版本的Mac OS。

Cocoa 开始于1989年9月上市的NeXTSTEP 1.0,当时没有Foundation框架,只有动态运行库, 称为 kit, 最重要的是AppKit. 1993 年 NeXTSTEP 3.1 被移植到了 Intel, Sparc, HP 的平台上,Foundation 首次被加入,同时Sun 和 NeXT 合作开发OpenStep 也可以运行在Windows 系统上VCV。在经过调查现存的操作系统之后,苹果公司选择了NextSTEP,因为NeXTSTEP很小,苹果1996年收购了Next整个公司。关于Next公司以及这段历史,对乔帮主感兴趣的同学可以google一下。

NeXTSTEP内置许多库和工具,能让程序员以一种优雅的方式与窗口管理器进行交互,这些库叫做Framework,在1993年这些frameworks和工具被重新修改并重命名OpenStep,后来被重命名为Cocoa,大家应该知道为什么Cocoa的类都有着NS的前缀了吧。

二 框架结构介绍

Cocoa框架泛指苹果提供的开发API。首先我们要区分Cocoa是Mac OS X的开发环境,cocoa Touch是 Iphone OS的开发环境。下面是简单的区分:

  • 相同之处:两者都包含都有Foundation和Core Data框架
  • 开发Mac OS X系统的应用程序常用的两个框架为:Foundation和AppKit框架
  • 开发iPhone OS 系统的应用程序常用的两个框架为:Foundation和UIKit框架

下面我们主要来看开发iPhone OS 层的应用层次架构。

iOS的系统架构分为四个层次:

  • 核心操作系统层(Core OS layer): 位于iOS系统架构最下面的一层是核心操作系统层,它包括内存管理、文件系统、电源管理以及一些其他的操作系统任务。它可以直接和硬件设备进行交互。

  • 核心服务层(Core Services layer) : 核心服务层,我们可以通过它来访问iOS的一些服务。

  • 媒体层(Media layer): 通过它我们可以在应用程序中使用各种媒体文件,进行音频与视频的录制,图形的绘制,以及制作基础的动画效果。

  • 可触摸层(Cocoa Touch layer) : 最上面一层是可触摸层,这一层为我们的应用程序开发提供了各种有用的框架,并且大部分与用户界面有关,本质上来说它负责用户在iOS设备上的触摸交互操作。

Cocoa

上面也提到了iPhone手机客户端开发我们常使用的两个框架就是
Foundation和UIKit框架,下面我们就具体来看一下这两个框架。

(1)Foundation框架:
Foundation框架包含所有和界面显示无关的类,提供OC的基础类(像NSObject)、基本数据类型等。比如很多开发中熟悉常用的字典,数组,结构体,枚举,创建的类….。

(2)UIKit框架:包含实现图形的、事件驱动的用户界面需要的所有对象:窗口、对话框、按键、菜单、 滚动条、文本输入框 …. 其组织架构如下图:

Cocoa

三 iOS 常用基础框架

框架名称

功能

Foundation

提供OC的基础类(像NSObject)、基本数据类型等

UIKit

创建和管理应用程序的用户界面

QuartzCore

提供动画特效以及通过硬件进行渲染的能力

CoreGraphics

提供2D绘制的基于C的API

SystemConfiguration

检测当前网络是否可用和硬件设备状态

AVFoundation

提供音频录制和回放的底层API,同时也负责管理音频硬件

CFNetwork

访问和配置网络,像HTTP、FTP和Bonjour Services

CoreFoundation

提供抽象的常用数据类型,如Unicode strings、XML、URL等

CoreLocation

使用GPS和WIFI获取位置信息

 

 

GameKit

为游戏提供网络功能:点对点互联和游戏中的语音交流

AddressBook

提供访问用户联系人信息的功能

AddressBookUI

提供一个用户界面,用于显示存储在地址簿中的联系人信息

AudioToolBox

提供音频录制和回放的底层API,同时也负责管理音频硬件

AudioUnit

提供一个接口,让我们的应用程序可以对音频进行处理

MapKit

为应用程序提供内嵌地图的接口

MediaPlayer

提供播放视频和音频的功能

MessageUI

提供视图控制接口用以处理E-mail和短信

OpenGLES

提供动画特效以及通过硬件进行渲染的能力

StoreKit

为应用程序提供在程序运行中消费的支持

0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:399次
    • 积分:22
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档