iOS操作系统多任务设计的繁与简
创始人
2024-07-21 18:40:17
0

双击 Home ,会在 iPhone 底部呼出多任务切换条。用户在上面选择程序,即呼即出,简洁易用。甚至,完全不知道双击 Home ,你一样享受多任务的绝大部分好处。 iPhone 之所以几岁的小孩都会用,正源于软硬件上的这种简洁。

iOS操作系统多任务设计的繁与简

但是,随着功能的增加,软件复杂度的增加不可避免,这是软件开发的热力学定律:墒的增加不可避免,软件生命周期的最后,难免归于混沌。还记得 Symbian 难以挪动对话框的八卦?或者 Palm OS5 那些谜一样的重启动?

扯的有点远,本文想说的是苹果这个看似简洁的多任务。

iOS 的三种多任务

第一种:保持现场

“保持现场”并非多任务,而是一种看起来像多任务的单任务。

按下 Home 后,程序自己保存状态。下次呼出,自己恢复保存下来的现场。看起来和没有退出过差不多。

这并非 iOS 4 的新特性, Tweetie 在 iOS 4 之前就支持了。

第二种:iOS 4 多任务

“iOS 4 多任务”是受限制的多任务。按下 Home ,程序切换到后台时仍保持在内存中,可以执行一些系统允许的动作:比如播放音乐。

iOS 4 多任务的程序如果在后台无动作,那么表现和“保持现场”的程序差不多。有些程序,比如 Twitter for iPhone ,在“保持现场”的同时支持了 iOS 4 多任务。

iOS 4 多任务比“保持现场”更快,并且可以后台动作。坏处是会占用内存。而且,万一在后台被杀掉,又不支持“保持现场”,那么再载入会丢掉上次的状态。比如那个优雅但是功能不足的推特客户端新锐: Weet 。

第三种:真多任务

Safari ,Mail 等程序有真正的多任务权限:在后台可以无限制动作。

对手机而言,不限制这种多任务有些缺点。一个未知的程序可能会在后台执行很重的任务,让电力在用户无察觉的情况下消耗光。另外,安全性也不是很靠谱。

所以苹果仅允许少数几个程序拥有这个权限。甚至苹果自己也没有滥用: Messages , Photos 都是苹果的嫡系,却仅支持 iOS 4 多任务而已。

内存

说多任务会牵扯些内存管理。 iPhone 不能用硬盘(闪存)虚拟内存,所以内存的容量是限制死的。

不支持 iOS 4 多任务和真多任务的程序,按下 Home 之后 10 秒左右会被杀掉,内存释放。

iOS 4 多任务程序通过 Home 退出后仍会占用内存。但是系统也随时会把他杀掉。尤其是在支持多任务,却悲剧性的只有256m 内存的 iPad 和 iPod touch 4 上。(不过, iPhone4上, iOS 4 的多任务在程序真正冻结之后(后台,无动作),似乎会被压缩。)

真多任务?有些后台服务是安全的,比如通知管理。有些就没那么幸运了, Mail, Safari 都有被干掉的可能。

复杂

在内存,屏幕和电力都严格受限的手机上面,苹果在追求一个不可能的任务:

保持多任务优势的同时,避免消耗过多电力。

为此,在多任务管理上,苹果独自发展了一个挺复杂的方案。 Android 提供虚拟机和自动内存管理等更多先进特性,但是其实现未必比苹果的这套更复杂。

而且,不仅软件,硬件上也下了功夫: iPhone4 高度集成了各种元件,在狭小的空间内为电池留出了足够的空间。

当然,网络服务的部分, iPhone 的通知构架也为此贡献了力量。

写 Tweet 的时候,可以收到个通知,然后切换出去看一眼邮件 Copy 点东西过来真的这么难?

需要各种不同的真假多任务类型?

硬件的高度集成?

还要在美国部署一堆高性能的网络服务器来推送消息?

别忘了手机上,多任务和电力几乎分别处在跷跷板的两头。而苹果的目标,却是要两头讨好。现有电池技术的限制下,为了兼顾电力,这种复杂性可能真的是必要的。

(当然,很多人认为让用户多揣块电池出门也不是不可接受的。)

简洁

而且,苹果又在追求另一个不可能的任务:让复杂的方案,表现的简洁。

有些人要怒了,又多任务,又省电,又简洁,好处怎么都让苹果占了呢?没办法,除了技术,他在这方面还真的又~有一手。

善意的谎言

iOS 完全掩盖了多任务的不同状态。系统里没有任何一个地方能让用户区分出多任务的类型:所有程序都在一个地方,没有多任务状态标记,操作也没有不同:Springboard 呼出,Home 退出。

掩盖多任务状态相当于一个善意的谎言,这个不难。据说不少四岁宝宝都已经是过来人了。

圆谎

比较说谎,圆谎才有点挑战。要知道,凭生活大爆炸里 Sheldon 的智商,都圆的一塌糊涂。

掩盖多任务状态后,就需要保证动作的一致性。双击 Home 呼出多任务切换栏你会发现个有趣的设计:压根不能多任务的程序,比如 Instapaper ,也会出现在“多任务”切换栏中。

工程师可能不满意,不占内存,没有动作,却放个快捷方式? 用户在这满怀希望的删掉 Instapaper ,却没有终结程序释放内存,这不是是忽悠用户吗?

首先, iOS 是个圆谎高手:用户无从知道内存状态。更重要的,作为一个不知道多任务状态的用户, Instapaper 出现在这才是合理的。

正确定义问题

“多任务”问题的关键是: 用户到底想通过多任务得到什么效果?操作系统教科书的作者再 NB ,和用户比较,他的定义也不重要。知道你到底要什么,取舍才有余地。

最后的话

的确,苹果很善于说“不”。但这显然不是他的全部本领。随着 iOS 的进化,苹果给我们演示了一个更加高难度的动作:

复杂的解决问题,简洁的表现结果。

【编辑推荐】

  1. Windows Phone 7 免费线下培训火热报名中
  2. iOS平台应用开发的敏捷设计流程
  3. 不编程也开发 13个无需编程的iOS开发工具
  4. iOS优秀应用instagram的用户体验报告

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...