探讨一下iOS系统架构及常用框架

  1. iOS基于UNIX系统 因此从系统的稳定性来讲他比其他操作系统的产品好得多
  2. iOS的系统架构分为四层 由上到下依次为: 可触摸层(Cocoa Touch layer) 媒体层(Media layer) 核心服务层(Core Services layer) 核心操作层(Core OS layer) 如图:


    271933055612454.png.jpeg

    应用程序项目都是Cocoa Touch层开始的 具体来说就是从UIKit Framework开始的 当在编写程序的时候需要用到一些特殊功能的时候 我们应该从框架最顶端技术开始寻找相应的框架 只有在上层结构无法解决的时候 才能使用其下层的技术 其实顶层结构已经涵盖了我们绝大多数需要的功能
    (1) 触摸层: 为用程序各种常见的框架 其中大部分框架与界面有关 本质上来说它是负责用户在iOS设备上的触摸交互操作
    下面来介绍一下触摸层中都有哪些常用的框架:
    1. AddressBookUI: 使用通讯录的UI框架 以显示联系人的通讯录中的数据(提供一个UI界面 用于显示存储在地址簿中的联系人信息)
    2. EvenKitUI: 创建的用户界面 用于查看和编辑日历数据与实践嵌套UI框架
    3. GameKit: 在应用程序与游戏框架添加网络功能
    4. iAd: 在您的应用程序放置全屏幕广告或者横幅广告
    5. MapKit: 提供应用程序嵌入地图的接口
    6. MessageUI: 提供一个用于邮箱发送的ViewController的用户界面接口
    7. Twitter: TwitterAPI
    8. UIKit: 提供应用程序用户界面基础与案件的管理功能
    (2) 媒体层: 通过它我们可以在应用程序中使用各种媒体文件 进行音频和视频录制 图形绘制 以及制作基础的动画效果
    下面来介绍一下媒体层有哪些常用的框架
    1. AssetsLibrary: 获得用户媒体库和数据库的框架
    2. AudioToolbox: 录制或者播放音频 转换格式 解析音频流 并配置您的音频会以的音频工具箱框架不透明类型(提供音频录制和回放的底层API 同时也负责管理音频硬件)
    3. AudioUnit: 打开链接 使用音频插件被称为音频单元与音频单元框架(提供一个接口让我们可以对音频进行处理)
    4. AVFoundation: 录制 编辑和播放音频视频 配置您的音频会以 并在设备中的音频环境变化的响应AVFoundation框架(提供音频录制和回放的底层API 同时也负责管理音频硬件)
    5. CoreAudio: 表示具有从核心音频框架的基本数据类型的音频流 复杂的缓冲区和时间值
    6. CoreGraphics: 处理2D渲染任务 使用核心图形框架 使用基于C的API 这是基于Quartz的绘图引擎 路径为基础的绘图 抗锯齿渲染 渐变 图像 色彩管理 和PDF文件处理
    7. CoreImage: 执行图像处理和视频图像处理的核心映像框架
    8. CoreMIDI: MIDI设备包括硬件键盘和频率合成器 使用核心MIDI框架 进行交流使用Dock连接器进行网络连接
    9. CoreText: 布局文本和执行核心文本框架的字体处理 文本布局API提供高品质的排版 包括字符 字形的线条和段落字形的转换和定位 互补的字形技术提供功能 如自动字体替换(级联), 字体的描述和集合 并容易获得字体适度量和字形数据
    10. CoreVideo: 电影播放和过程访问单个帧 与核心的视频框架 这种基于C的框架提供了一个低级别的电影工作 管道的API 您可以使用它的工作与像素的缓存区 OpenGL的缓冲区 和OpenGL纹理
    11. GLKit: 创建使用GLKit框架的OpenGL ES应用程序所需的时间缩短 GLKit包括数学库 一个标准视图和视图控制器来实现你的渲染循环 背景纹理加载和预先创建的着色效果
    12. ImageIO: 大多数图像文件格式的读取和写入图像I/O框架 这种基于C的框架还支持色彩管理和图像元数据的访问
    13. MediaPlayer: 查找和播放用户安装媒体项目 包括歌曲 音频播客 有声读物 并与媒体播放器框架 您还可以用它来播放定制的电影文件
    14. OpenAL: 使用低延迟 音频播放位置 建立为iOS引人注目的游戏 OpenAL会使您沉浸在定向声音跟踪屏幕上的动画用户 内置CoreAudio后 在iOS的OpenAL提供高性能和出色的视频质量
    15. OpenGLES: 使用一个紧凑 高效的移动设备上的二维和三维绘图的OpenGL API的子集 OpenGL ES的框架包括EAGL 基于C的API 支持OpenGL ES的渲染核心动画层和UIKit意见的整合 还可以使用EAGL渲染像素缓冲区
    16. QuartzCore: 使用Quartz的核心框架 呈现最佳性能 然后在硬件配置的动画和效果 该框架包含了先进的动画和合成技术为核心动画
    (3) 核心服务层CoreServince 基础系统服务
    下面介绍一下基础服务层有哪些框架
    1. Acounts: 管理用户账号的外部账户使用框架
    2. AddressBook: 使用通讯簿框架, 以获得访问中央数据库 用于存储用户的联系人 该数据库称为地址簿(提供访问存储核心数据库中用户联系人信息的功能)
    3. CFNetwork: 提供对系统网络服务和配置的访问接口(访问和配置网络 如HTTP FIP Bonjour Servince)
    4. CoreData: 使用一般化和自动化解决方案与对象生命周期和对象图的管理 包括持久相关的共同任务中的核心数据框架
    5. CoreFoundation: 使用所有iOS应用程序的基本系统服务的核心基础框架 提供了常见的数据类型的抽象 有利于国际化和Unicode字符串存储 他提供了一个套件 例如公用事业插件支持 XML属性列表 URL资源的访问和喜好 (提供抽象的常用数据类型 如XML URL)
    6. CoreMedia: 核心媒体框架的基本数据类型的基于时间的影像数据
    7. CoreMotion: 接收和处理的核心运动框架的加速度计和其他运动事件
    8. CoreTelephony: 访问蜂窝电话的地理位置和移动电话服务提供商的信息与核心电话框架
    9. EvenKit: 读写日历数据的EvenKit框架
    10. Foundation: 该框架提供您需要的实现图形 事件驱动 iOS应用程序的基本工具和基础设施
    11. MobileCoreServinces: 访问标准类型和常数与移动核心服务框架 依赖UTI的类型信息的其他框架一起使用
    12. NewstandKit: 下载和处理杂志的问题或其他书报亭的框架 还可以使用次框架来管理下载的问题
    13. QuickLook:显示基于视图的QuickLook框架的项目预览
    14. StoreKit: 嵌入在您应用程序的存储 使用StoreKit框架用它来管理购买内容和服务 从您的应用程序相关的金融交易
    15. SystermConfiguration: 使用系统配置框架 以确定网络的可用性和设备状态 系统配置框架声明的功能 类型 以及网络可达性有关的常数
    16. UIAutomation: 这个文件集为UI自动化功能 它允许你编写的测试脚本 行驶应用程序的用户界面元素 作为连接的设备上运行的应用程序的API参考 你写的UI自动化API 模拟与应用程序的用户交互 运行日志信息 并返回到主机 因为他在JavaScript测试
    (4) 核心系统层: 内存管理 文件系统 电源管理以及其他的操作系统任务 他可以直接和硬件设备进行交互
    核心系统层包含以下框架:
    1. Accelerate: 执行复杂的数学与加速框架或图像计算
    2. CoreBluetooth: 核心蓝牙框架
    3. ExternalAccessory: 沟通与外部附件框架连接到基于iOS的设备配件 用他的基座接口连接配件 或通过蓝牙互动
    4. Security: 使用安全框架 以确保您的应用程序管理的数据这个框架定义为保护信息和控制访问软件的C接口
    5. Systerm: 该框架提供了一个BSD和POSIX功能 如UNIX系统调用和C库函数的一个子集

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,179评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,229评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,032评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,533评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,531评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,539评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,916评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,813评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,568评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,654评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,354评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,918评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,152评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,852评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,378评论 2 342

推荐阅读更多精彩内容