- 我只是知识的搬运工, 我不生产知识, 最多翻译总结一下.
- 这部分的内容干货, 如果想看官方英文原版, 你看这里:
https://developer.apple.com/library/ios/navigation/
1. 对于一个软件开发平台怎么理出个头绪
其实对于大多数的软件开发平台, 其各种框架或者说库, 是十分相通的, 不是说具体表现形式上相同, 而是其本质上的相通. 和尚们说, 色即是空, 空即是色, 软件的框架和库也是如此.
我觉得可以按照佛家的用六识或者六尘来分析人的方法来分析计算机相关的东西.
六识是什么:眼, 耳, 鼻, 舌, 身, 意;
六尘是什么:色, 声, 香,味, 触, 法;
简单的对应,例如可以说眼睛对应显示器, 界面层; 耳对应声卡, 对应音频软件模块; 身对应键盘, 鼠标, 触摸屏等输入设备.
针对iOS平台, 其软件平台肯定有其特殊之处, 我认为可以从iPhone/iPad本身的硬件特点, 以及iOS系统特有的功能来进行分析.
2. Cocoa Touch Layer: 眼和色,身和触, 那块显示屏和触摸屏
Cocoa Touch Layer, 是和人的眼睛和手指(身,触)打交道的软件框架.
- AddressBookUI, 地址簿界面(系统功能)
提供了显示联系人的界面; - EventKitUI, 事件包界面(系统功能)
提供了查看和编辑日历数据的接口; - GameKit, 游戏包(游戏中心)
主要是游戏中心相关的东西, 什么积分榜啊, 成就啊, 对战啊, 都在里面. 不太理解为什么划分到Cocoa Touch Layer里面. - MapKit, 地图包(系统功能)
显示地图或者卫星地图, 也支持标注地图. - MessageUI, 消息界面(系统功能)
用来编辑邮件的界面, 用它你不离开自己的应用就可以编辑邮件了 - NotificationCenter, 通知中心(系统功能)
往通知中心里"今日"Widget里面显示东西. - PhotosUI, 照片界面
提供了编辑图片或者编辑视频的扩展功能, 你可以制作一个自己的滤镜什么的给iPhoto用了. - Twitter
从你的应用里,使用本框架的界面编辑和发送Twitter消息. 你也可以使用这个框架简化Twitter的登录过程. -
UIKit,UI包
这是Cocoa Touch Layer里面最核心的部分, 大部分的界面, 什么视图啊, 按钮啊, 列表啊,触摸手势啊, 都在这里面.
- iAD, 苹果广告
帮你显示iAD的全屏或者条幅广告;
3. Media Layer: 眼和色,耳和声, 显示屏和声卡,麦克风和摄像头
音频视频什么的都在这里了.
4. Core Service Layer, 想和法
- Accounts, 帐号
管理外部帐号,比如Twitter, 新浪微博什么的, 帮你存密码, 不用你自己存了. - AdSupport, 广告支持
访问广告标识, 和一个指示用户是否允限制跟踪; - AddressBook, 地址簿
访问地址簿里的数据(前面出现的是调用其UI). - CFNetwork, 网络
访问网络和配置网络, 提供了Socket, HTTP, FTP等的支持; - CloudKit, 云包
云存储, 苹果的网络存储系统 -
CoreData, 核心数据
这是一个常用的重要的模块, 苹果的对象持久化框架, 其实就是怎么把面向对象的那堆东西怎么存到硬盘上去.
-
CoreFundation, 核心基础
iOS基础的库, 常用的数据类型, 字符串极其国际化, 插件, XML属性列表, URL, preference设置等.
- CoreLocation, 核心定位
定位相关的功能, - CoreMedia, 核心媒体
前面提到了, 这里特指基于时间的声音和视觉资源类型的展示 - CoreMotion
接收和处理加速器信号, 比如你摇一摇什么的. - CoreTelephony
访问电话的呼叫状态和运营商信息; - EventKit
前面提到了, 这里是直接访问系统日历相关信息; -
Foundation
Objective-c基础的一些东西, 比如根类, 基础的数据类型, 数组, 字典, 时间等等;
*HomeKit, 家居包
iOS8推出的新东西, 遥控家里电器的.
- JavaScriptCore, JavaScript核心
可以将JavaScrip集成进应用的库; - MobileCoreServices
访问UTI;?? - MultipeerConnectivity, 多端连接
支持端到端的连接和附近设备的发现; - NewsstandKit, 报刊包
下载和处理报刊杂志(iOS自己支持的那些) - PassKit, 通行证包
管理护照, 通行证什么的 - PushKit, 推送包
推送包, 比原来的多了对于语音通话的支持; - QuickLook, 快览
提供基于View的预览; - Social,社交
向iOS支持的社交网络服务发送信息; - StoreKit,商店包
制作应用内商店, 支持内购; - SystemConfiguration,系统配置
判断网络状态; - UIAutomation,UI自动化测试
支持iOS的界面自动化测试; - WebKit,Web浏览器包
用来显示web的一个浏览器控件;
4. Core OS Layer, 还是想
管理虚拟内存, 线程, 文件系统, 进程间通信等;
- Accelerate
进行复杂数学和图像计算 - CoreBluetooth
管理4.0蓝牙通信 - ExternalAccessory
和外部配件通信 - LocalAuthentication
本地认证, 就是系统密码或者指纹识别什么的. - Security
管理安全方面的, 加密, 认证, 证书什么的. - System
提供了BSD和POSIX函数,就是一些Unix的c函数.