iOS 4 2 多工的繁與簡

2021-05-24 07:16:19 字數 2538 閱讀 3029

雙擊 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 變成了多工作業系統。眾所周知,當你開啟乙個應用程式然後退出,它仍然會保留在後台。當然,這會導...