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 开发技术体系的更多相关文章
- iOS开发技术分享(1)— iOS本地数据存储
iOS开发技术分享(1)— iOS本地数据存储 前言: 我本是一名asp.net程序员,后来加入了iOS游戏开发队伍,到现在也有一年多的时间了.这一年来,每天都干到2.3点钟才睡觉,不为别的,只为了学 ...
- iOS 开发技术栈与进阶
最近有一些开发朋友问我应该怎样提升自己的能力,回想起来做了这么久 iOS 开发,我也有过那种“让我做一个功能实现个需求我会做,但接下来怎样提高我不知道.”的时期,这里尝试列一下 iOS 开发的相关技术 ...
- iOS开发——技术精华Swift篇&Swift 2.0和Objective-C2.0混编之第三方框架的使用
swift 语言是苹果公司在2014年的WWDC大会上发布的全新的编程语言.Swift语言继承了C语言以及Objective-C的特性,且克服了C语言的兼容性问题.Swift语言采用安全编程模式,且引 ...
- iOS 开发技术牛人博客
dark_gmn 的博客 http://blog.csdn.net/dark_gmn?viewmode=contents Tel_小超 的博客 http://blog.csdn.net/qq_2 ...
- iOS开发技术 - 二维码扫描、生成
QRecLevel:QR_ECLEVEL_H // 二维码容错率,最高为30%(即QR_ECLEVEL_H),即LOGO有大 ...
- iOS - OC iOS 开发体系
1.iOS 开发技术体系 iOS 开发技术体系图: 层级 主要框架 Cocoa Touch UIKit 等 Media Core Graphics .OpenGl ES.Core Animation ...
- iOS - Swift iOS 开发体系
1.iOS 开发技术体系 iOS 开发技术体系图: 层级 主要框架 Cocoa Touch UIKit 等 Media Core Graphics .OpenGl ES.Core Animation ...
- iOS开发--Bison详解连连支付集成简书
"最近由于公司项目需要集成连连支付,文档写的不是很清楚,遇到了一些坑,因此记录一下,希望能帮到有需要的人." 前面简单的集成没有遇到什么坑,在此整理一下官方的集成文档,具体步骤如下 ...
- 【转】 学习ios(必看经典)牛人40天精通iOS开发的学习方法【2015.12.2
原文网址:http://bbs.51cto.com/thread-1099956-1.html 亲爱的学员们: 如今,各路开发者为淘一桶金也纷纷转入iOS开发的行列.你心动了吗?想要行动吗?知道如何做 ...
随机推荐
- 给安卓端调用的短信发送接口demo
package com.js.ai.modules.pointwall.action; import java.io.IOException; import java.util.HashMap; im ...
- 实验吧CTF题库-WEB题(部分)
看起来有点难 提交admin http://ctf5.shiyanbar.com/basic/inject/index.php?admin=admin&pass=admin&actio ...
- python写一个能生成三种一句话木马的脚本
代码: import time import os from threading import Thread import optparse def aspyijuhua(): try: juy=op ...
- Python 中的进程与 锁
理论知识 操作系统背景知识 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操 ...
- elastic(9)映射
转自:https://www.cnblogs.com/eryuan/p/7389728.html?utm_source=debugrun&utm_medium=referral elastic ...
- ffmpeg-URL(转)
ffmpeg中为方便对资源进行访问,定义了两个结构体,URLContext中是对具体资源文件进行操作的上下文,URLProtocol则是在将资源进行分类的基础上,对某一类资源操作的函数集,熟悉Linu ...
- Coins and Queries(codeforce 1003D)
Polycarp has nn coins, the value of the i-th coin is aiai . It is guaranteed that all the values are ...
- 创建maven工程时报错,解决方案
解决思路:在本地库中装载maven-archetype-quickstart 1.从 http://mirrors.ibiblio.org/pub/mirrors/maven2/org/apache/ ...
- LED电视与液晶电视的区别
[LED电视与液晶电视的区别] 目前LED电视全部是采用了LED背光的液晶电视,本质上而言,还是液晶电视.这与真正的LED电视是两个完全不同的概念.如今通常把LED背光电视称为LED电视,采用CCFL ...
- 简单tarjan》一道裸题(BZOJ1051)(easy)
这是一道水题,实际考察的是你会不会写强连通分量...(在BZOJ上又水了一道题) Description 每一头牛的愿望就是变成一头最受欢迎的牛.现在有N头牛,给你M对整数(A,B),表示牛A认为牛B ...