iPhone OS 4.0 没有带来第三方多任务

公司

@xuzhe, @overboming, @neso对此文亦有贡献。

注意:本文叙述的,不一定是事实。而是基于 Keynote 的猜想。 OS 4.0 多任务的机制和能力,还需要拿到 SDK 的开发者们进一步确认。多任务后的程序,也可能允许常驻内存并全功能动作。到底如何,相信很快就有分晓。

iPhone OS 1.0 的多任务

2007年1月8号, Jobs 站在讲台上,背后的 Keynote 上写个大字:Multitasking 。

底下的观众一片欢呼。Jobs 谦虚地笑了。

然后,这些观众回到家里,坐在椅子上冷静下来发现:原来只有苹果自己的少数程序可以多任务!

看网页的时候, iPod 可以放音乐。 豆瓣电台却不能。你可以象 Nike 那样,和苹果拉拉关系,最终, Nike+ 这个第三方应用,也得到了多任务的权力。或者,你可以象 Google 那样,和苹果展开竞争。结果, Google Voice 甭说多任务了,连上架都不行。

Push Notifications 不是多任务

2009年3月17号, 苹果的人站在讲台上,背后的 Keynote 上写个大字:Push Notifications 。

为什么要多任务呢?我们给你 Push Notifications! 第三方程序可以把自己要做的事情委托给系统。 然后自己退出,由苹果自己的进程,完成后面的操作。

底下的观众一片欢呼。Jobs 不知在哪里偷偷的笑了。

然后,这些观众回到家里,坐在椅子上冷静下来发现:原来这东西还是不能代替多任务。

豆瓣电台仍然无法背景播放, GPS 导航的时候,你也不能去查查 Email 。

Push Notifications 是多任务

2010年3月8号, 苹果的人站在讲台上,背后的 Keynote 上又写了个大字:Multitasking 。 (我为什么要说又字?)

Jobs 说,我们终于找到办法支持多任务了!苦等了好几年的观众再次一片欢呼, Jobs 再次谦虚地笑了。

这回,不用等到他们回到家里研究 SDK 了,苹果的 Keynote 本身就有线索:苹果支持7个多任务 API ,Push Notifications 就在其中。

OS4 发布之前,可有人谁认为这种机制是多任务? Push Notifications 如何变成多任务了呢?

7个服务 ,两个分类

苹果把 7 个服务列在一起,而在我看来,他是两类。

“快速切换”单独的。他很可能是一种程序退出时,保存现场的技术。切换到后台的第三方程序退出前,把状态保存在磁盘,或者内存中。如果保存在磁盘上,类似的特性 Android 也支持。如果保存在内存中,更像是系统把这个程序冻结了。程序还在内存中,但是功能被限制了。

剩下的6个是一类。 很可能都是用来让第三方程序把任务委托给系统用的。既然切换到后台的时候,程序被冻结了。那么需要在后台完成的功能,就只好委托给系统来做了。比如: Push 。所以, Push Notifications 也在其中就不奇怪了。和 OS 3.0 时候一样的技术,一样的思路。 OS4.0 带来的区别仅仅是:可以委托的给系统的任务,有更多的种类。(除了可以把推送的工作委托给系统,还可以委托音频播放,VOIP等等)。

那么,第三方程序,比如一个音乐播放 App 将要被切换到后台的时候,可以通过那些服务 ,把需要后台的任务委托给系统:这里就是音乐播放,然后自己被冻结。用户在前台操作新的程序,而播放音乐的功能,还是有的。

iPhone OS 4 没有带来第三方多任务

如果 Push 的这种委托机制是多任务?那么就不是从 OS 4.0 开始支持的。 OS 3.0 带来了第三方多任务。

如果 Push 的这种委托机制不是多任务?OS 3.0 不支持第三方多任务。同理, OS 4.0 也不支持。因为多出的那几个服务 ,和 Push 一样的原理。

当然,苹果可以说,更强大的委托机制 + 程序的冻结/保持现场,才是多任务。不过,如果我按照这个思路去理解,本文就没有一个哗众取宠的标题了。:)

苹果的高度

抛开上面的斤斤计较,平心而论,个人很欣赏苹果的这种实现方式。

开放更多可以委托的系统 服务 ,可以让用户得到非常接近多任务的使用感受。同时,又节省电力和内存。这一切,都已经在 Push Notifications 上面经受了考验。

苹果无疑汇集了最聪明绝顶的一群人,Jobs 的脑门可以为证。但是这种解决方案,已不是由的智商高低决定的了。

苹果他并不把“多任务”看作一个操作系统,或者手机的软硬件问题。所以,多任务不是 OS 是否允许多第三方进程常驻后台,也不是系统是否有 Swap 机制。

苹果在“人”,“环境”,“设备”三者之上的高度之上看待“多任务”。这时,“多任务”的问题变为:手机能否为“人”,同时完成多个任务?

手机,最终是给“人”使用的。对用户来说,追究多任务“是”什么,没有意义。用户真正感受到的,是多任务“像”什么。

既然第三方程序可以把任务委托给系统,让他表现的“像”在多任务,又能节省电力,何必非要追求所谓“真正的第三方多任务”?

所以,多任务这个问题上,即使 Google 拥有更多的技术 IQ ,(真正的多任务,更早实现保持现场。)苹果仍然可以搞出更出色的用户体验。Jobs 完全有资格套用 Goolge 的名言调侃下 Android :

对比 Google 的员工,我们并没有更多 IQ ,但是,我们看问题更加透彻。

(而悲剧了的 Windows Phone 只好承认,自己既没有智商 ,也缺乏智慧。)

最后的话

想象力特别丰富的人,也许会从 “像”这个字中,看到一丝不安。

不过,Matrix 那个遍布美女和红酒的天堂,还遥远的很。今天,苹果只是领我们朝那个方向,悄悄挪了几步。

分享
扫一扫分享到微信
登录,参与讨论前请先登录

评论在审核通过后将对所有人可见

正在加载中

本篇来自栏目

解锁订阅模式,获得更多专属优质内容
爱范儿 App 下载二维码

爱范儿 App

爱范儿,让未来触手可及

爱范儿
APPSO
董车会
玩物志
爱范儿 公众号二维码

关注明日产品的数字潮牌