iOS - OC iOS 开发体系
1、iOS 开发技术体系
iOS 开发技术体系图:
层级 主要框架 Cocoa Touch UIKit 等 Media Core Graphics 、OpenGl ES、Core Animation 等 Core Services Core Data、Foundation 等 Core OS Accelerate Framework、External Accessory Framework、Security Framework、System 等 从图中可以看到,要想编写成型的产品,需要的不仅仅是语言本身,同时许多库需要协同使用。语言只是产品开发的“胶水”,而框架和上面的这些库才是 iOS 产品的骨架。Swift 语言能够无缝的调用所有库。
Cocoa 是苹果开发体系的统称,Cocoa 包含一些主要的 OC 对象库,我们称这些对象库为框架。框架是由许多类、方法、函数和文档按照一定的逻辑组织起来的集合,以使研发程序更容易。为所有程序开发奠定基础的框架称为 Foundation 框架。
- 术语 Cocoa:是指 Foundation 、Core Data 和 AppKit(Application Kit) 框架框架。用于 Mac OS X 设备上的应用程序开发。
- 术语 Cocoa Touch:是指 Foundation 、Core Data 和 UIKit 框架。用于 iOS 设备上的应用程序开发。
1)Core OS 核心层:
包含 Accelerate Framework、External Accessory Framework、Security Framework、System 等几个框架,基本都是基于 C 语言的接口。
是最接近于操作系统的一层,在这个层次上,主要实现硬件以及操作系统接口封装。
2)Core Services 核心服务层:
包含 Address Book Framework、CFNetwork Framework、Core Data Framework、Core Foundation Framework、Core Location Framework、Core Media Framework、Core Telephony Framework、Event Kit Framework、Foundation Framework、Mobile Core Services Framework、Quick Look Framework、Store Kit Framework、System Configuration Framework、Block Objects、Grand Central Dispatch、In App Purchase、Location Services、SQLite、XML Support 等一些框架,也基本都是基于 C 语言的接口。
Foundation 框架提供了字符串、数值的管理、容器及枚举、分布式计算、事件循环、URL 与数据流操作、国际化,以及其他与图形用户界面没有直接关系的功能。其中类和常数常用“NS”前缀来标志。
Core Data 框架主要在数据模型、数据存储方面发挥作用。在程序运行的时候,Core Data 框架会创建并管理数据模型的实例,同时还对外提供数据模型访问接口。除此之外,Core Data 还可以将对象数据存储在 SQLite 数据库以获得性能优化、管理 undo/redo(撤销/重做)等操作,还支持在内存中对数据进行归类、过滤及组织数据。
3)Media 媒体层:
包含 Core Graphics、Core Animation、OpenGL ES、Core Text、Image I/O、Assets Library Framework、Media Player Framework、AV Foundation、OpenAL、Core Audio Frameworks、AV Foundation、Core Media 等等。
媒体层包含图形技术(包含动画技术)、音频技术和视频技术,可以使用这层的技术更快速的创建高级的图形和动画,方便的获得音频、视频的支持。
图形技术:是 iOS 应用程序的重要组成部分。创建应用程序最简单、最有效的方法是使用事先渲染过的图片,搭配上标准视图以及 UIKit 框架的控件,然后把绘制任务交给系统来执行。
- Core Graphics :也被称为 Quartz,用于处理本地 2D 向量渲染和图片渲染。
- Core Animation :Quartz Core 框架的一部分,为动画视图和其他内容提供更高级别支持。
- OpenGl ES :为使用硬件加速接口的 2D 和 3D 渲染提供支持。
- Core Text :提供一个精密的文本布局和渲染引擎。
- Image I/O :提供读取及编写大多数图形格式的接口。
- Assets Library framework :资产库框架,用于访问用户照片库中的照片和视频。
音频技术:iOS 音频技术可以用来播放或录制高质量的音频,也可以用于触发设备的震动功能。
- 媒体播放器框架:是可以拿来即用的播放器。
- AV Foundation :提供用于管理音频的播放或录制的接口。
- Core Audio :可以使用此框架的接口播放系统的警报声音、触发的震动功能、管理多声道的缓冲和播放、对音频内容进行流化处理。
视频技术:可用于播放应用程序包含的电影文件以及来自网络的数据流内容。如果设备具有合适的视频硬件,这些技术也可以用于捕捉视频,并可将捕捉到的视频集成到应用程序。
- 媒体播放器框架:可用于播放应用程序中全屏或部分屏的电影。
- AV Foundation :可以对电影的捕捉和播放进行管理。
- Core Media :对较高级框架使用的底层类型进行描述,同时也提供一些底层接口,用于对媒体进行处理。
4)Cocoa Touch 触摸层:
包括 Address Book UI Framework、Event Kit UI Framework、Game Kit Framework、iAd Framework、Map Kit Framework、Message UI Framework、UIKit Framework 等等,这一层基本都是基于 Objective-c 的接口。
包含了用于 iOS 应用开发的图形界面构建的类。其中所有的类,都以“UI”为前缀。
iOS - OC iOS 开发体系的更多相关文章
- iOS - Swift iOS 开发体系
1.iOS 开发技术体系 iOS 开发技术体系图: 层级 主要框架 Cocoa Touch UIKit 等 Media Core Graphics .OpenGl ES.Core Animation ...
- iOS下OpenCV开发用OC还是Swift
本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃 其实标题中这个问题并不准确,准确的说法应该是iOS下的OpenCV开发是使用OC还是Swift ...
- iOS OC语言原生开发的IM模块--RChat
iOS OC语言原生开发的IM模块,用于项目中需要原生开发IM的情况,具备发送文字.表情.语音.图片.视频等完整功能,包含图片预览视频播放等功能,此项目将会长期更新如有问题可以提出,我的邮箱:fshm ...
- 读ios开发有感——建立APP开发体系
前言:ios开发和现在的大前端.跨端开发在底层上的道理是相通的,因此通过学习ios开发,可以形成对APP开发体系的理解. 一.app开发的知识体系 基础 应用开发 原理 原生与前端 二.基础模块 按照 ...
- iOS:iOS开发非常全的三方库、插件等等
iOS开发非常全的三方库.插件等等 github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自git ...
- iOS - OC 面向对象语法
1.类 1)根类:因为类 NSObject 是层次结构的最顶层,因此称为根类. 可以将类称为子类(subclass)和父类(superclass),也可以将类称为子类和超类. 2)分类/类别(cate ...
- ios+oc面试题
ios+oc面试题 浅复制和深复制的区别?//浅拷贝和深拷贝答案:浅层复制(copy):只复制指向对象的指针,而不复制引用对象本身.//通过对象的指针来访问这个对象深层复制(mutableCo ...
- 在MAC上搭建cordova3.4.0的IOS和android开发环境
Hello,大家好,今天给大家说说在mac上搭建cordova3.4.0的iOS和Android开发环境,首先下载cordova,地址:https://cordova.apache.org/#down ...
- iOS原生地图开发指南续——大头针与自定义标注
iOS原生地图开发指南续——大头针与自定义标注 出自:http://www.sxt.cn/info-6042-u-7372.html 在上一篇博客中http://my.oschina.net/u/23 ...
随机推荐
- c#使用word、excel、pdf ——转
一.C# Word操作引入Word COM组件菜单=>项目=>添加引用=>COM=>Microsoft Word 11.0 Object Libraryusing Word = ...
- 使用PowerDesigner生成Access数据库
PowerDesigner生成Access数据库 自从使用PD以来一直知道可以支持access但一直没有搞明白如何通过脚本来创建access数据表.在PD的tools里终于找到的答案,具体 文件都在C ...
- freemarker为null处理
http://599073210-qq-com.iteye.com/blog/1401731
- 安装centos7.1 32bit时,没有可用的网络设备的解决方法
安装的系统镜像文件:CentOS-7-i386-LiveGNOME-1511.iso 虚拟机版本: 问题: 原因: 原先我在这里选择的时候,以为自己安装的不是64位的,所以没有选择centos 64, ...
- Git的搭建和使用技巧完整精华版
[Git使用技巧] 1.把一个已经存在于版本库中的文件加入忽略提交文件(.gitignore)中,需要如下代码: git rm --cached [文件路径] 例如: git rm --cached ...
- HDU 1890:Robotic Sort(Splay)
http://acm.hdu.edu.cn/showproblem.php?pid=1890 题意:有一个无序序列,经过不断地翻转,使得最后的序列是一个升序的序列,而且如果相同数字要使在原本序列靠前的 ...
- YTU 2991: 链表节点逆置(线性表)
2991: 链表节点逆置(线性表) 时间限制: 1 Sec 内存限制: 128 MB 提交: 14 解决: 6 题目描述 设计一个算法,将一个带头节点的数据域依次为a1,a2,-,an(n> ...
- Dive into python学习笔记
http://woodpecker.org.cn/diveintopython/index.html 1.第一个程序odbchelper.py def buildConnectionString(pa ...
- sscanf 函数 分类: POJ 2015-08-04 09:19 4人阅读 评论(0) 收藏
sscanf 其实很强大 分类: 纯C技术 技术笔记 2010-03-05 16:00 12133人阅读 评论(4) 收藏 举报 正则表达式stringbuffercurlgoogle 最近在做日志分 ...
- Case of the Zeros and Ones 分类: CF 2015-07-24 11:05 15人阅读 评论(0) 收藏
A. Case of the Zeros and Ones time limit per test 1 second memory limit per test 256 megabytes input ...