iOS系统框架


Apple系统框架

iOS系统层级

  • 可触摸层(Cocoa Touch Layer)
  • 媒体层(Media Layer)
  • 核心服务层(Core Services Layer)
  • 核心系统层(Core OS Layer)

iOS系统层级

各层的详情


  • Cocoa Touch Layer
    • UIKit(界面相关)
    • EventKit(日历事件提醒等)
    • Notification Center(通知中心)
    • MapKit(地图显示)
    • Address Book(联系人)
    • iAd(广告)
    • Message UI(邮件与SMS显示)
    • PushKit(iOS8新push机制)

  • Media Layer

    • 图像引擎
      • Core Graphics
      • Core Image
      • Core Animation
      • OpenGL ES
    • 音频引擎
      • Core Audio
      • AV Foundation
      • OpenAL
    • 视频引擎
      • AV Foundation
      • Core Media)

  • Core Services Layer
    • CFNetwork(网络访问)
    • CoreData(数据存储)
    • CoreLocation(定位功能)
    • CoreMotion(重力加速度,陀螺仪)
    • Foundation(基础功能如NSString)
    • Webkit(浏览器引擎)
    • JavaScript(JavaScript引擎)

  • Core OS Layer
    • 操作系统内核服务(BSD sockets、I/O访问、内存申请、文件系统、数学计算等)
    • 本地认证(指纹识别验证等)
    • 安全(提供管理证书、公钥、密钥等的接口)
    • 加速 (执行数学、大数字以及DSP运算,这些接口iOS设备硬件相匹配)

iOS系统层级

很重要的几个框架

  1. Foundation
    • 为所有的应用程序提供基本系统服务
    • 你的应用程序,UIKit是建立在Foundation框架上面的。
    • Foundation框架是用Objective-C对Core Foundation框架里许多特性的封装。
    • 使用Foundation可以:
      • 创建和管理集合,比如:数组和字典
      • 访问存储在应用程序里的图片和其它资源
      • 创建和管理字符串
      • 提交和接收通知
      • 创建日期和时间对象
      • 自动发现IP网络上的设备
      • 操作URL流
      • 执行异步代码
  2. UIKit
    • 框架提供创建基于触摸用户界面的类
    • 所有的iOS应用程序都基于UIKit,你不能是应用程序脱离这个框架。
    • UIKit提供了在屏幕上绘制的机制,捕获事件,和创建通用用户界面元素。
    • UIKit也通过管理显示在屏幕上的组件来组织复杂的项目。
    • 使用UIKit可以:
      • 构建和管理你的用户界面
      • 捕获触摸和基于移动的事件
      • 呈现文字和web内容
      • 优化你的多任务程序
      • 创建定制的用户界面元素
  3. CoreData
    • 框架管着理应用程序数据模型
    • Core Data提供对象的管理,使用CoreData,你可以创建模型对象,并管理这些对象。
    • 你管理这些对象间的联系并修改数据。
    • CoreData提供的内建SQLlite技术可以高效的管理数据。
    • 使用Core Data可以:
      • 在库里存储和接收对象
      • 提供基本的undo/redo
      • 自动验证属性值
      • 过滤、分组和优化内存中的数据
      • 用[NSFetchedResultsController]管理表视图中的结果
      • 支持基于文档的应用程序
  4. Core Graphics框架帮助你创建图形
    • 高质量的图形对于所有的iOS应用程序都是很重要的。
    • 在iOS中最简单且最快捷的创建图形的方式是使用UIKit框架提供的基于预渲染图形的视图和控件,然后让UIKit和iOS完成绘制。
    • 当你需要创建复杂的图形时,Core Graphics则提供了更底层的库来帮助你。
    • 使用Core Graphics可以:
      • 创建基于路径的绘图
      • 抗锯齿渲染
      • 添加梯度、图片和颜色
      • Use coordinate-space transformations.
      • 创建、显示和分析PDF文档
  5. Core Animation允许你创建高级的动画和虚拟效果
    • UIKit提供建立在Core Animation之上的动画。
    • 如果你需要比UIKit能力更高级的功能,可以直接使用Core Animation。
    • Core Animation接口包含在QuartzCore框架里。
    • 使用Core Animation可以创建嵌套的对象,并且可以对它们操作、旋转、缩放和转换。
    • 使用Core animation,你可以创建动态的用户界面而不用使用更底层的图形API,如OpenGL ES。
    • 使用Core Animation可以:
      • 创建定制动画
      • 添加定时函数和图形
      • 支持帧动画
      • Specify graphical layout constraints.
      • Group multiple-layer changes into anatomic update.
  6. OpenGL ES 框架提供2D和3D绘图工具
    • OpenGL ES支持2D和3D绘图,Apple的OpenGL ES实现通过硬件提供了高速的全屏游戏式的应用程序。
    • 使用OpenGL ES可以:
      • 创建2D和3D图形
      • 创建更复杂的图形,比如数据虚拟化、模拟飞行,或者视频游戏
      • 访问底层图形设备

这些构成了iOS/MacOS的骨架 是最大层次的架构