昨晚新发布的 iPad Air、iPad mini 2, 跟一个月前发布的 iPhone 5s 一样,都带了那款 M7 运动协处理器。

关于 M7 的作用,苹果描述的通俗易懂:

全新 M7 协处理器如同 A7 芯片的得力助手。它专为测量来自加速感应器、陀螺仪和指南针的运动数据而设计,如果没有它,这项任务通常会落在 A7 芯片身上。但 M7 协处理器更擅长于此。追踪身体活动的健身 app 现可从 M7 协处理器读取相关数据,因此无需持续访问 A7 芯片,从而降低了耗电量。无论你在走路,跑步,甚至开车,M7 协处理器通通知晓。如果你的手机许久未动,例如当你睡觉时,M7 协处理器会减少网络检测,从而节省电池电量。

可以概括为 2 点:

  1. 节省电量
  2. 处理传感器数据(实时、持续、集中)

这种解决方案,在 Android 阵营被称为 Sensor Hub。虽然现在 Sensor Hub 还只是在个别旗舰机型上出现,但考虑到它给移动设备带来的这两点好处立竿见影,可以想象很快各个商家各种型号的移动设备都会跟进,Sensor Hub 甚至可能成为移动设备的标配。

今天,我们通过苹果提供的文档和 API 简单梳理一下,看看 M7 到底能给 iOS 开发者提供哪些新东西。

首先要有心理准备,新增的内容比较少,今年的 WWDC sessions 甚至没有提到 M7。运动协处理器的潜力需要逐步挖掘。

在 iOS 7 之前,和传感器数据打交道就是通过 CoreMotion 框架,M7 相关的接口依然封装在 CoreMotion 中。

我们可以从文档更新情况看出,2013年9月,CoreMotion 中仅增加了计步(CMStepCounter)、活动状态(CMMotionActivity)相关的类。

新增的类:

  • CMStepCounter
  • CMMotionActivity
  • CMMotionActivityManager

更新的类:

  • CMMotionManager (仅为iOS7增加了一些错误常量)

CMStepCounter

CMStepCounter 可以读取用户携带设备所走的步数。步数信息是由内置的硬件收集并储存的,你可以通过查询步数判断当前用户的活动状态。通过这个类,既可以得到当前的步数信息,也可以访问历史数据。

CMMotionActivity

此对象包含了运动事件的数据。在支持动作识别的设备上,你可以使用 CMMotionActivityManager 去查询当前运动状态的改变。当运动状态改变发生时,更新的信息会被打包成 CMMotionActivity 对象,并发给到你的 app。

在这个类中动作相关的属性不是互斥的。换句话说,有可能多个动作相关的属性都是 YES。例如,如果用户正在开一辆车并且车遇到红灯停止,这是更新的信息中 automotive 和 stationary 两个属性都会被设置为 YES。也有可能所有的属相都是 NO,如果设备的运动和步行、奔跑、开车都不相符。

开发者并不能直接创建 CMMotionActivity 实例。它由 CMMotionActivityManager 创建,并把它发送到你注册的回调 block 中。

运动类型:

  • stationary 静止
  • walking 走路
  • running 跑步
  • automotive 开车
  • unknown 未知

运动数据:

  • startDate 运动的开始时间
  • confidence 运动强度

CMMotionActivityManager

用于访问设备储存的运动数据。运动数据反映了用户在某段时间是在走路、跑步、开车或者静止。导航 app 可以在用户状态切换后提供不同的服务。通过这个类你可以收到当前运动状态改变的通知,或者读取过去的数据变化。

方法有这几个:

  • + isActivityAvailable 判断当前设备是否支持提供运动数据
  • – startActivityUpdatesToQueue:withHandler: 开始活动更新
  • – stopActivityUpdates 停止活动更新
  • – queryActivityStartingFromDate:toDate:toQueue:withHandler: 获取历史数据

总结

以前通过 CoreMotion 处理传感器数据都是由CPU完成,现在 M7 把这一块接管了。但给开发者新增的接口还比较少,基本的新玩意儿是:

  1. 计步
  2. 判断用户是在静止,走路,跑步,还是开车
  3. 1和2的历史数据

但这只是开始,将运动芯片单独剥离意义重大,试想如果所有的传感器都能常驻后台,移动设备能做的事将会更加有趣,特别是和可穿戴、智能家居等设备配合,充满想象!让我们拭目以待!