学习记录:iOS技术层

iOS技术层探索

Apple是以一系列层的方式来描述iOS实现的技术,其中每层都可以都可以在应用程序中使用的不同框架组成。大家最常接触的Cocoa Touch层就在最上面。

 

技术分享

          Figure 1: iOS技术层

下面对于每层进行简单的介绍。

1.Cocoa Touch层

Cocoa Touch层由多个框架构成,为应用程序提供核心功能(比如多任务和广告功能)。这些框架有:

(1)UIkit

负责启动和结束应用程序,控制界面和多点触摸事件,并能让开发者访问常见的数据视图(eg,网页以及word和Excel文档等)。除此之外,UIkit还负责了iOS内部众多的集成功能,比如访问多媒体库,照片库和加速计。

(2)Map Kit

这个框架的作用是让开发人员能在任何应用程序中添加Apple的Map视图,从而实现定位,位置标注导航等功能。

(3)Game Kit

不要被名字迷惑了,这个框架并不是只有游戏才会用到,它进一步提高了iOS应用的网络交互性,提供了创建并使用对等网络p2p(什么是对等网络?请看维基百科 的机制,这包括会话发现,仲裁和语音聊天。这些功能可以加入到任何应用中。

(4)Message UI/Address Book UI/Event Kit UI

这三个框架可以让开发人员在任何应用中加入访问电子邮件,联系人和日历时间的功能。

(5)iAd

iAd框架支持在应用程序中加入广告。它是交互式广告组件,使用简单的拖放操作就可以将其加入到软件中。在应用程序中,开发这者不用管理iAd交互,Apple会完成的。

 

2.多媒体层

依靠多媒体层中的框架,iOS设备可以创建复杂的图形,播放音频和视频,甚至生成实时三维图形(3D)。

(1)AV Foundation

播放和编辑复杂的音频和视频,实习高级功能(电影录制,音轨管理,音频平移)。

(2)Core Audio

播放和录制音频,包含了AudioToolbox框架(播放警报声或短暂振动)和AudioUint框架(处理声音)。

(3)Core Image

添加高级图像和视频处理功能(像什么人脸识别,图像过滤之类的)。

(4)Core Graphics

向应用中添加2D绘画和合成功能。

(5)Core Text

对iPhone屏幕上显示的文本进行精确的定位和控制。

(6)Image I/O

用于导入和导出图像数据和图像元数据。

(7)Media Player

让开发者能够用屏幕控件轻松播放电影。

(8)OpenGL ES

是OpenGL框架的子集,适用于嵌入式系统(ES)。用于在应用中创建2D和3D动画。

(9)Quartz Core

创建利用设备硬件功能的动画(?重力感应吗?)。

 

3.核心服务层(Core Service)

核心服务层用于访问较低级的操作系统服务,比如文件存取,iCloud存取,联网等常见的数据对象类型。

(1)Account

始终在线,简化了存储帐号信息及身份验证的过程。

(2)Address Book

用于直接访问和操作地址簿

(3)CFNetwork

让开发者可以直接访问BSD套接字,HTTP和FTP协议请求及Bonjour。

(4)Core Data

提供了一个基于SQLite的关系数据库模型,可用于将数据绑定到界面对象,从而避免使用代码进行复杂的数据操作。

(5)Core Foundation

是过程性C语言框架,应该避免使用,因为比Objective-C的效率低。

(6)Foundation

提供了一个Objective-C的封装器(wrapper),封装了Core Float的功能。操作字符串,数组,字典,管理应用程序首选项,线程和本地化。

(7)Event Kit

访问日历信息。

(8)Core Location

GPS,获取经度和纬度信息,还有测量精度。

(9)Core Motion

管理iOS平台中大部分与运动有关的事件,比如加速计和陀螺仪。

(10)Newsstand

创建数字媒体期刊

(11)Pass Kit

(12)Quick Look

实现文件浏览功能

(13) Social

针对流行社交网站的框架。

(14)Store Kit

让开发者能够在应用程序中创建购买事物,而无需推出程序。

(15)System Configuration

确定设备网络的当前状态:连接的是哪一个网络啊?哪些设备可达啊?

 

4.核心OS层

是由最低级的iOS服务组成。包括线程,复杂的数学运算,硬件配件和加密。很少访问这些框架。

(1)Accelerate

简化了计算和大数操作任务,包括数字信号处理功能。

(2)Core Bluetooch

连接到低功耗蓝牙设备。

(3)External Accessory

开发到配件的接口,这些配件是基座接口或蓝牙连接的。

(4)提供了执行加密(加密/解密数据)的函数,包括与iOS密钥链交互以及添加,删除和修改密钥项。

(5)System

让开发人员能够访问不受限制的UNIX开发环境中的一些典型工具。

 

 


 

今天就到这里啦,可能刚开始写博客,没有什么文笔,我会继续努力,向前辈们学习,ありがとうございます!

 

 

 

 

 

 

 

 

 

 

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。