应用交互层、多媒体层、核心服务层、系统层。

参考官方文档
apple Develop Guides
iOS Technologies

IOS分为四级结构,由上到下为可触摸层,媒体层,核心服务层,核心系统层;

 
Paste_Image.png

可触摸层 Cocoa Touch Layer

主要提供用户交互先关的服务如界面控件、事件管理、通知中心、通知中心、地图,包括以下框架:

  • UIKit
  • eventKit
  • Notifacation� Center
  • MapKit
  • Address Book
  • iAd
  • Message UI
  • PushKit (iOS8新的push机制)

媒体层 Media Layer

主要提供图像引擎、音频视频引擎框架

  • 图像引擎(Core Graphics、Core Image、Core Animation、OpenGL ES)
  • 音频引擎 (Core Audio、AVFoundation、OpenAL)
  • 视频引擎 (AV Foundation、CoreMedia)

核心服务层 Core Services Layer

核心服务层为程序提供基础的系统服务,如网络访问、浏览器引擎、定位、文件访问、数据库访问等,主要包含架构:

  • CFNetwork 网络访问
  • Core Data 数据存储
  • Core Location 定位功能
  • Core Motion 重力加速度,陀螺仪
  • Foundation 基础功能如NSString
  • Webkit 浏览器引擎
  • JavaScript JS引擎

核心系统层 Core OS Layer

核心系统层提供为上层结构提供最基础的服务如操作系统内核服务、本地认证、安全、加速等

  • 操作系统内核服务 (BSD sockets、I/O访问、内存申请、文件系统、数学计算等)
  • 本地认证(指纹验证等)
  • 安全 (提供管理证书、公钥、密钥等的接口)
  • 加速 (执行数学、大数字以及DSP运算)

作者:桃逸
链接:https://www.jianshu.com/p/8dc1bc69798b
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

iOS系统结构的更多相关文章

  1. iOS 相关职位要求整理版

    在拉勾上找了20家,BOSS直聘找了10家感兴趣的在招聘 iOS 程序员的公司,把职位要求整理了一下. 初创公司一般要求1年以上开发经验,成长型或者成熟型公司一般要求最低2年以上开发经验.这里针对的是 ...

  2. iOS面试用到的知识点和技术点--第二章

    接着第一章的继续  昨天没有更新,很抱歉 1.Socket编程 以及一些第三方框架Socket-IO GCDAsyncSocket通信框架? 1.使用系统自带的CFsocket 2.第三方Socket ...

  3. iOS - Swift 面向对象语法

    1.面向对象 面向过程:面向过程编成将所要解决的问题按解决问题的步骤进行分析.如果是大问题,就分解成为多个不同的小问题,在程序里叫做划分成不同的模块.每一个解决的步骤可能是一行或者几行代码,也可能是一 ...

  4. iOS进阶学习-数据库

    一.数据库管理系统 1.SQL语言概述:SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言. 2.常见 ...

  5. ios专题 - 常用设计模式

    设计模式:解决编程问题的设计模板 设计模式是一个抽象工具,用于面向对象的软件开发,以及其他领域.它是一个设计模板,在特定背景中,解决一般性的.重复出 现的问题.因此,设计模式是一种针对特定的.具体的设 ...

  6. ios专题 - 安全

    iOS通过以下几种机制来保全整个系统的安全性: 一:系统结构 所有iOS设备中,系统与硬件都高度集成,从系统启动.系统更新.应用的安装.应用的运行时等多个方面来保全系统的安全,具体包括: 1:所有iO ...

  7. iOS中的设计模式

    一. MVC MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分离 ...

  8. iOS/iPhone 程序文件目录结构以及启动流程

    要想清晰的理解IOS应用程序的启动过程,毫无疑问需要深入了解一下ios应用程序的文件系统.一个ios应用程序都有一个属于自己沙盒(sandbox),应用沙盒就是文件系统目录,并且与文件系统的其他部分隔 ...

  9. iOS下的界面布局利器-MyLayout布局框架

      Swift:TangramKit: https://github.com/youngsoft/TangramKit OC:MyLayout: https://github.com/youngsof ...

随机推荐

  1. vue常用方法

    vue移动端ui库: http://mint-ui.github.io/#!/zh-cn vue做app开发使用: weex 官网地址:http://weex.apache.org/cn 1.Vue组 ...

  2. APICloud开发小技巧(一)

    apicloud开发文档中,前端开发框架指的就是,类似jq\js的语法: https://docs.apicloud.com/Front-end-Framework/framework-dev-gui ...

  3. HILLSTONE sg6000 g5150 怎么恢复出厂设置

    hillstone恢复出厂设置的方法(忘记密码的情况) 口令丢失情况下的处理 如果口令丢失,用户无法登录安全路由器进行配置,请在安全路由器刚启动时按住 CLR 按键大约 5 秒,使设备恢复到出厂配置. ...

  4. bzoj 1192: [HNOI2006]鬼谷子的钱袋 思维_二进制

    十分巧妙的一道题. 考虑当前凑出$[1,i/2)$,那么再有一个 $i/2$,就可以凑出 [i/2+1,i). 注意,这里的 $i$ 都是 2 的 $k$ 次幂. 于是,我们只要找到 $i$ 使得 2 ...

  5. 报错The jarsigner could not be found. Make sure to run with the build with a JDK。的解决方法

    这种报错是因为eclipse启动时没有走你设置的jdk路径,eclipse走的路径/bin下没有jarsigner.exe.所以报错,解决办法: 指定eclipse启动jdk 按住alt键,用鼠标拖动 ...

  6. 4.1、Ansible模块

    ansible-doc -l    列出所有模块 ansible-doc 模块名    查看模块的help说明 ansible-doc -s  module_name:获取指定模块的使用信息 ***文 ...

  7. 解决SpringBoot+JPA中使用set方法时自动更新数据库问题

    项目进行了三分之二了,突然出现一个很诡异的bug,数据库存储的用户表中密码信息总是自动消失一部分,头疼了几天后突然想起同事有个对低权限用户查询的用户信息向前台传送时会把密码设成null后再传输,心想是 ...

  8. 酒店管理系统(功能结构图、E-R图、用例图)

    功能结构图 用例图 状态图 流程图 数据字典 er图

  9. 经纬度计算两点间的距离,根据距离排序SQL

    #java的Utilspublic class DistanceUtil { // 地球平均半径 private static final double EARTH_RADIUS = 6378137; ...

  10. 如何用Vim提高开发效率

    即可 ●输入m获取到文章目录 推荐↓↓↓ C/C++编程 更多推荐<18个技术类公众微信> 涵盖:程序人生.算法与数据结构.黑客技术与网络安全.大数据技术.前端开发.Java.Python ...