iOS框架结构

原创 2015年11月18日 15:47:39

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

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

IOS 整体框架类图值得收藏

Cocoa框架是iOS应用程序的基础,了解Cocoa框架,对开发iOS应用有很大的帮助。 1、Cocoa是什么? Cocoa是OS X和 iOS操作系统的程序的运行环境。 是什么因素使一...
  • fengsh998
  • fengsh998
  • 2013年04月24日 09:08
  • 17177

html框架结构

html+css网站开发兵书——html部分10.框架结构注意:代码位置在后 分成三个竖向窗口 ...
  • lb812913059
  • lb812913059
  • 2017年03月29日 19:59
  • 387

ANDROID框架结构和介绍

下图是ANDROID4.4 版本包含的所有系统服务和本地服务和应用的框架图,baoh
  • GooHong
  • GooHong
  • 2014年07月07日 17:02
  • 3736

Spring3.0框架结构

原文:http://chenchh.iteye.com/blog/675701 Spring 框架是一个分层架构,它包含一系列的功能要素,并被分为大约20个模块。这些模块分为Core Con...
  • liou825
  • liou825
  • 2014年01月23日 10:46
  • 3567

HTML之框架结构标签<frameset>的简单使用

框架标签的简单使用 框架: 通过使用框架,你可以在同一个浏览器窗口中显示不止一个页面,简而言之,就是在一个窗口中显示多个页面。 每个页面称之为一个框架。并且每个框架独立于其他的框架。 使用框架的...
  • u012461090
  • u012461090
  • 2017年11月27日 22:51
  • 63

HTML基础标签和框架结构

HTML的基础标签:     1.注释
  • lylwanan
  • lylwanan
  • 2014年08月21日 22:52
  • 1069

什么是“框架结构”

框架结构住宅是指以钢筋混凝土浇捣成承重梁柱,再用预制的加气混凝土、膨胀珍珠岩、浮石、蛭石、陶烂等轻质板材隔墙分户装配成而的住宅。适合大规模工业化施工,效率较高,工程质量较好。  框架结构由梁柱构成,构...
  • u014461454
  • u014461454
  • 2014年03月31日 17:40
  • 111

iOS 第三方框架- AFNetworking的基本使用

iOS 第三方框架- AFNetworking的基本使用AFNetworking介绍AFNetworking(发送网络请求)是目前Github里面最流行的OC第三方框架,这个框架十分强大,几乎封装了所...
  • jeikerxiao
  • jeikerxiao
  • 2016年07月30日 09:31
  • 737

java设计模式、框架、架构、平台之间的关系

一、设计模式(Design Patterns)                                           设计模式(Design pattern)是一套被反复使用、多数人知...
  • heyuchang666
  • heyuchang666
  • 2014年12月02日 14:52
  • 5257

Android基本框架结构

图       由上图,我们可以看出Android系统架构由5部分组成, 分别是:Linux Kernel(linux内核)、Android Runtime(运行...
  • zhubosa
  • zhubosa
  • 2015年06月25日 17:41
  • 1735
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS框架结构
举报原因:
原因补充:

(最多只允许输入30个字)