笔者在很多场合见过很多人问:iOS多任务有什么用?腾讯QQ根本用不了嘛!为了不让iOS这块美玉掩上国内某些厂商的瑕疵,笔者决心就iOS多任务系统解释如下三个问题:iOS多任务究竟有没有用?系统升级了之后,为什么很多应用还不是“多任务”?腾讯QQ这些为什么到现在还是用不了?相信读者看完之后,能够理解苹果的良苦用心。
其实,打从这世界出现了操作系统以来,就没有过所谓真正的“多任务”。所谓多任务,无非是CPU速度够快而足以支撑极短时间内在多个进程内动作罢了。而所谓单任务,无非是只能让当前任务独享资源罢了。
一、iOS 4多任务到底有没有用?
简单来说,现在的iOS 4软件类型可以分为三种:
- 保存现场。按下Home键10秒内直接杀死进程,并释放内存。
- iOS支持的“多任务”。按下Home键转入多任务状态,保留在内存中,但只能做系统允许的动作:比如GPS,比如VoIP,比如流音乐等等。
- 真正的桌面级别的多任务。只有Safari/Mail是,苹果嫡系大都都不是。这个级别的软件在后台没有任何限制动作。
后两种占用内存的软件,也会在任意时间从内存中被砍掉,取决于你是否动用了其它软件而导致内存不足。真正不会被砍掉的后台,只有苹果那个通知系统。
其实可以回顾一下iOS是怎么一步步引入现在这个机制的。
- 刚出生,什么都没有,纯粹的单任务。
- iPhone OS 3.0,引入通知架构。
- iOS 4.0,引入有限制的后台多任务。
其实至iPhone OS 3,已经足够应付大部分应用了。用户根本无从知道软件的实际运行状态,保存现场让软件看起来不像是刚打开一样,通知系统又可以在后台默默推送消息。事实上,当前95% iOS软件依旧只有保存现场 + 通知系统这样的组合,比如很多twitter客户端,大部分人根本不会注意到它不是真正意义上的“多任务”。很震撼的事实,但确实95%的应用场景根本不需要所谓真正的“多任务”。
但是时代在变。
真正需要多任务的东西出现了:电台来了,即时通讯来了,GPS要来了;帮主说,要有光,于是便有了光:iOS 4加入“多任务”功能。2010年四月份的iOS 4发布会,主打特性便是多任务。帮主边玩游戏边回短信的形象,还令笔者印象深刻。您这游戏玩得实在不怎么行啊
那么第一个问题的答案就揭晓了:iOS 4多任务是有用的。那么,为什么升级到了iOS 4却感觉到很多软件都依旧不是“多任务”?这就来到了第二个问题。
系统升级了之后,为什么很多应用还不是“多任务”?
答案很简单:iOS 4的多任务,并不是我们普通所想的那种“一旦系统升级了,所有以往的软件都可以自动享受到好处”的多任务。程序开发者必须要针对iOS 4多任务进行一些修改,才能把程序变成iOS 4下的“多任务”软件。
不不不,别想复杂了。简单来说,原有的软件需要修改才能享受到iOS 4“多任务”的好处。这事一点也不复杂:软件如果有更新,那么你就享受多任务;如果没有更新,那么你就照原来一样用。
我知道有人会问“为什么要这样做?让所有软件都直接享受好处不好么?”。让我再告诉你一个秘密,事实上这还增加了iOS 4系统复杂度,以及程序员开发的复杂度。搞这么复杂干嘛?答案有两个:省电,安全。
iOS 4多任务是被限制的多任务,只有系统允许的动作才能在后台存在,这些动作包括但不限于:GPS(比如谷歌纵横),流音乐(比如豆瓣电台、虾米电台),VoIP(比如Skype)。无限制动作的软件,一会在用户无察觉的情况下耗光电力,二会有安全上面的问题(君还记得那些个在Android后台依旧默默发送你的个人消息程序吗?)。安全暂且不说,如何在保持多任务优势的同时,避免消耗过多电力,苹果花了很多心思。
那么第二个问题答案是:软件必须得修改后才能享受iOS 4多任务特性,而不是大家普通所想的升级后鸡犬同升天。下面是第三个问题,既然iOS 4多任务是有用的,软件修改后也可以享受到这一特性,那为什么到现在还是很多软件没法用?
腾讯QQ这些为什么到现在还是用不了?
有三种可能性。一是不会做(技术能力不够),二是还没做,三是做不了。
遇到第一种和第二种情况的话,笔者认为可以放弃了这款软件了。一个不与时俱进的软件,应该被果断抛弃;42万个应用数目,绝对能够找得到替代品。而关于第三种:在上一节里面,笔者已经提到,一个iOS软件在针对iOS 4修改后,它的多任务表现将和Android上表现没有任何区别,而且更省电更安全。但这有一个前提:软件后台请求的动作必须得是iOS 4所允许的类别。第三种做不了的情况,正是因为软件后台所请求的动作并不是iOS所允许的类型。腾讯QQ正是如此。
古往今来,国外绝大部分即时通讯软件,包括QQ(当年叫OICQ)“借鉴”的ICQ,使用的都是公开协议。第三方程序员可以很容易得根据公开协议,开发出不同于官方的客户端;腾讯QQ是私有协议。私有便私有罢,要破这样的私有协议极其容易,也曾经涌现出很多三方客户端;但腾讯更厉害的一招是,每隔一段时间就变换一次协议。我换不胜换,要的就是你防不胜防!
很明显,这样的换不胜换,是不可能被苹果接受的。腾讯QQ for iOS质量之烂,也就可见一般了。
总结:iOS是一个好系统,多任务是一个好多任务;”做不到“?呵呵。
原文地址:http://iapple.pcpop.com/posts/3072