雙擊 home ,會在 iphone 底部呼出多工切換條。使用者在上面選擇程式,即呼即出,簡潔易用。iphone 之所以幾歲的小孩都會用,正源於軟硬體上的這種簡潔。
但是,隨著功能的增加,軟體複雜度的增加不可避免,這是軟體開發的熱力學定律:墒的增加不可避免,軟體生命週期的最後,難免歸於混沌。還記得 symbian 難以挪動對話方塊的八卦?或者 palm os5 那些謎一樣的重啟動?
扯的有點遠,本文想說的是蘋果這個看似簡潔的多工。
第一種:保持現場
「保持現場」並非多工,而是一種看起來像多工的單任務。
按下 home 後,程式自己儲存狀態。下次呼出,自己恢復儲存下來的現場。看起來和沒有退出過差不多。
這並非 ios4 的新特性, tweetie 在 ios4 之前就支援了。
第二種:ios4 多工
ios4 多工的程式如果在後台無動作,那麼表現和「保持現場」的程式差不多。有些程式,比如 twitter for iphone ,在「保持現場」的同時支援了 ios4 多工。
ios4 多工比「保持現場」更快,並且可以後台動作。壞處是會占用記憶體。而且,萬一在後台被殺掉,又不支援「保持現場」,那麼再載入會丟掉上次的狀態。比如那個優雅但是功能不足的推特客戶端新銳: weet 。
第三種:真多工
safari ,mail 等程式有真正的多工許可權:在後台可以無限制動作。
對手機而言,不限制這種多工有些缺點。乙個未知的程式可能會在後台執行很重的任務,讓電力在使用者無察覺的情況下消耗光。另外,安全性也不是很靠譜。
所以蘋果僅允許少數幾個程式擁有這個許可權。甚至蘋果自己也沒有濫用: messages , photos 都是蘋果的嫡系,卻僅支援 ios4 多工而已。
記憶體說多工會牽扯些記憶體管理。 iphone 不能用硬碟(快閃儲存器)虛擬記憶體,所以記憶體的容量是限制死的。
不支援 ios4 多工和真多工的程式,按下 home 之後 10 秒左右會被殺掉,記憶體釋放。
ios4 多工程式通過 home 退出後仍會占用記憶體。但是系統也隨時會把他殺掉。尤其是在支援多工,卻悲劇性的只有256m 記憶體的 ipad 和 ipod touch 4 上。
真多工?有些後台服務是安全的,比如通知管理。有些就沒那麼幸運了, mail, safari 都有被乾掉的可能。
複雜在記憶體,螢幕和電力都嚴格受限的手機上面,蘋果在追求乙個不可能的任務:
保持多工優勢的同時,避免消耗過多電力。
為此,在多工管理上,蘋果獨自發展了乙個挺複雜的方案。 android 提供虛擬機器和自動記憶體管理等更多先進特性,但是其實現未必比蘋果的這套更複雜。
而且,不僅軟體,硬體上也下了功夫: iphone4 高度整合了各種元件,在狹小的空間內為電池留出了足夠的空間。
當然,網路服務的部分, iphone 的通知構架也為此貢獻了力量。
寫 tweet 的時候,可以收到個通知,然後切換出去看一眼郵件 copy點東西過來真的這麼難?
需要各種不同的真假多工型別?
硬體的高度整合?
還要在美國部署一堆高效能的網路伺服器來推送訊息?
別忘了手機上,多工和電力幾乎分別處在蹺蹺板的兩頭。而蘋果的目標,卻是要兩頭討好。現有電池技術的限制下,為了兼顧電力,這種複雜性可能真的是必要的。
(當然,很多人認為讓使用者多揣塊電池出門也不是不可接受的。)
而且,蘋果又在追求另乙個不可能的任務:讓複雜的方案,表現的簡潔。
有些人要怒了,又多工,又省電,又簡潔,好處怎麼都讓蘋果佔了呢?沒辦法,除了技術,他在這方面還真的又~有一手。
善意的謊言
ios 完全掩蓋了多工的不同狀態。系統裡沒有任何乙個地方能讓使用者區分出多工的型別:所有程式都在乙個地方,沒有多工狀態標記,操作也沒有不同:springboard 呼出,home 退出。
掩蓋多工狀態相當於乙個善意的謊言,這個不難。據說不少四歲寶寶都已經是過來人了。
圓謊
比較說謊,圓謊才有點挑戰。要知道,憑生活大**裡 sheldon 的智商,都圓的一塌糊塗。
掩蓋多工狀態後,就需要保證動作的一致性。雙擊 home 呼出多工切換欄你會發現個有趣的設計:壓根不能多工的程式,比如 insta***** ,也會出現在「多工」切換欄中。
工程師可能不滿意,不佔記憶體,沒有動作,卻放個快捷方式? 使用者在這滿懷希望的刪掉 insta***** ,卻沒有終結程式釋放記憶體,這不是是忽悠使用者嗎?
首先, ios 是個圓謊高手:使用者無從知道記憶體狀態。更重要的,作為乙個不知道多工狀態的使用者, insta***** 出現在這才是合理的。
正確定義問題
「多工」問題的關鍵是: 使用者到底想通過多工得到什麼效果?作業系統教科書的作者再 nb ,和使用者比較,他的定義也不重要。知道你到底要什麼,取捨才有餘地。
最後的話
的確,蘋果很善於說「不」。但這顯然不是他的全部本領。隨著 ios 的進化,蘋果給我們演示了乙個更加高難度的動作:
複雜的解決問題,簡潔的表現結果。
via:ifanr
簡與繁的智慧型
簡單與繁瑣相互依存,辯證共生。簡單代表便利,是我們在生活 工作 思維上的目標。但獲得簡單離不開曲折繁瑣的探索過程,沒有繁瑣便成就不了簡單。簡單意味著效率 繁瑣則給我們帶來多樣性 豐富 深刻的經驗 簡繁得當,則能出效率 出成果。正確處理簡和繁的關係,需要智慧型。有時候我們要有刪繁就簡 化繁為簡的藝術,...
對 iOS 多工的誤解 多工原理
如今,多工這個有趣特性已經成功整合在裝置中,我們如今使用的智慧型手機完全支援多工,這其中有乙個東西尤其功不可沒。這就是蘋果的iphone手機。ios是使用廣泛的令人驚嘆的作業系統。在2010年之後ios 4 變成了多工作業系統。眾所周知,當你開啟乙個應用程式然後退出,它仍然會保留在後台。當然,這會導...
對 iOS 多工的誤解 多工原理
如今,多工這個有趣特性已經成功整合在裝置中,我們如今使用的智慧型手機完全支援多工,這其中有乙個東西尤其功不可沒。這就是蘋果的iphone手機。ios是使用廣泛的令人驚嘆的作業系統。在2010年之後ios 4 變成了多工作業系統。眾所周知,當你開啟乙個應用程式然後退出,它仍然會保留在後台。當然,這會導...