如何关联 UIKit、Core Image、Quartz 2D 以及 iOS 中的各种框架?
Posted
技术标签:
【中文标题】如何关联 UIKit、Core Image、Quartz 2D 以及 iOS 中的各种框架?【英文标题】:How to relate UIKit, Core Image, Quartz 2D, and the various frameworks in iOS? 【发布时间】:2012-04-27 15:56:31 【问题描述】:到目前为止,我很清楚 UIKit 是在 Core Graphics 和 Core Animation 之上的,而 Core Graphics 和 Core Animation 可以做什么,UIKit 也有一些更高级别的方法来完成它们。
其他层怎么样,Core Image、Quartz 2D、Quartz、Quartz Core、Quartz Graphics、Core Video、Cocoa Touch、Core Motion。它们如何相互关联? (有没有好的图表可以准确地描述它们在 ios 中的位置?)
【问题讨论】:
【参考方案1】:石英 = 石英 2D = 核心图形。从程序员的角度来看,这些只是同一事物的不同名称。 Apples 将其图形引擎称为 Quartz (2D),它是 Core Graphics 框架的一部分。如果您想在代码中使用 Quartz (2D),请使用 Core Graphics 框架中定义的 API。
Quartz Graphics:我以前从未听说过这个,但它可能只是 Quartz/Core Graphics 的另一个名称。
Core Image 是另一个框架(首先出现在 Mac 上,最近出现在 iOS 上),其主要关注点是图像处理。 Core Image 允许您在图像上应用一组预定义或自定义的图形过滤器。众所周知,Core Image 非常快,因为它非常有效地使用 GPU 来应用这些过滤器。最近,Core Image 又多了一个特性:图像中的人脸检测。
(我对 Core Video 了解不多,因此如果其他人能就该主题添加更多信息,我将不胜感激。)
【讨论】:
看来Core Graphics == Quartz 2D,而Core Animation是Quartz Core的一部分。但是由于 Mac OS X 上的 Quartz Core == Core Animation + Core Image + Core Video,但是在 iOS 上,Core Image 和 Core Video 不是 Quartz Core 的一部分,所以 Core Animation == iOS 上的 Quartz Core【参考方案2】:感谢 Begemann 的回答。我在http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/CocoaFundamentals/WhatIsCocoa/WhatIsCocoa.html#//apple_ref/doc/uid/TP40002974-CH3-SW16 上找到了更多信息
虽然可能不完整,但这里是一个概述:
在 Mac OS X 上:
在 iOS 上:
摘录:
下面总结了在每一层发现的一些框架 iOS 堆栈,从基础层开始。
核心操作系统。这一层包含内核、文件系统、网络 基础设施、安全、电源管理和许多设备 司机。它还有 libSystem 库,它支持 POSIX/BSD 4.4/C99 API 规范,包括系统级 API 用于许多服务。
核心服务。这一层的框架提供 核心服务,例如字符串操作、集合管理、 网络、URL 实用程序、联系人管理和首选项。他们 还提供基于设备硬件特性的服务,例如 GPS、指南针、加速度计和陀螺仪。框架示例 在这一层是核心位置、核心运动和系统 配置。
这一层包括基础和核心 基础,为常见数据类型提供抽象的框架 例如字符串和集合。核心框架层也 包含核心数据,一个用于对象图管理和对象的框架 持久性。
媒体。这一层的框架和服务依赖于Core 服务层并为用户提供图形和多媒体服务 可可触摸层。它们包括核心图形、核心文本、OpenGL ES、 Core Animation、AVFoundation、Core Audio 和视频播放。
可可触摸。该层的框架直接支持应用程序 基于iOS。它们包括 Game Kit、Map Kit 和 广告。
Cocoa Touch 层和核心服务层各有一个 对开发特别重要的 Objective-C 框架 适用于 iOS 的应用程序。这些是 iOS 中的核心 Cocoa 框架:
UIKit。该框架提供应用程序显示的对象 它的用户界面并定义应用程序行为的结构, 包括事件处理和绘图。有关 UIKit 的说明,请参阅 “UIKit (iOS)。”
基金会。该框架定义了基本行为 对象,建立管理机制,并提供 原始数据类型、集合和操作系统的对象 服务。 Foundation 本质上是一个面向对象的版本 核心基础框架;见“基础”的讨论 基础框架。
【讨论】:
以上是关于如何关联 UIKit、Core Image、Quartz 2D 以及 iOS 中的各种框架?的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI 视图,如 UIKit UIView,如何更改图像的大小
UIKIt UIBezierPath Core Graphics OpenGL ES Quartz2D的区别和联系