關於iOS多工的一些掃盲

2022-08-05 18:12:15 字數 1168 閱讀 1139

打從這世界出現了作業系統以來,就沒有過所謂真正的「多工」。所謂多工,無非是cpu速度夠快而足以支撐極短時間內在多個程序內動作罷了。而所謂的「單任務」,無非是只能讓當前任務獨享資源罷了。

1. 儲存現場。按下home鍵10秒內直接殺死程序,並釋放記憶體。

2. ios支援的「多工」。按下home鍵轉入多工狀態,保留在記憶體中,但只能系統允許的動作:比如gps,比如voip,比如streaming music等等。

無限制動作的程式,一會在使用者無察覺的情況下耗光電力,二會有安全上面的問題(君還記得那些個在後台依舊默默傳送你的個人訊息程式嗎?)

真正不會被砍掉的後台,只有蘋果那個通知系統。

其實可以回顧一下ios是怎麼一步步引入現在這個機制的。

剛出生,什麼都沒有,單純的單任務。

iphone os 3.0,引入通知架構,當年全部機型可用;android晚了一年,2.2才有此功能,到這個時候相信才有90%上下機器用上。

ios 4.0,引入有限制的後台多工。

答案只有兩個:電力,安全。安全不說,如何在保持多工優勢的同時,避免消耗過多電力,蘋果花了很多心思;而不是像webos/android一樣,簡單粗暴桌面級的多工。iphone 4甚至在硬體上面也下了苦功,利用3d層疊技術組裝a4晶元,內部元件高度整合,並把天線移至體表,增加內部電池空間。結果就是iphone 4 1420 vs. i9000 1500。

但是時代在變。真正需要多工的東西出現了:電台要stream,im要stream,gps要stream,多工必須提上日程。ios 4加進了,wp7剛剛加進了,android/webos打一出生就有。從本質來說,ios/wp7/android/webos跑在記憶體中的後台程式,唯一的區別就是,ios/wp7限制了它可以做的事(這就是為什麼它們一出生都沒有多工的原因,這個架構很複雜,不是幾百行中文字可以說明白的),而android/webos沒有;從技術上面來說,ios/wp7/webos三者架構相當,android獨立門戶。

於是很可笑,有無限制,成了真「多工」和偽「多工」的區別;而後者架構更複雜,可以套用一句「吃力不討好」。

那麼最終多工的對比無非是,擁抱標準 vs. 允許私有。蘋果作為乙個弱勢廠商,一直以來受夠了私有標準的苦。比如一直到現在都沒法用非ie支付的中國網銀們,正是微軟自己私有標準的後果,也是蘋果為什麼要開做開源webkit的原因。軟體可以封閉,硬體可以封閉,但是要擁抱標準,這是蘋果的理念。

對 iOS 多工的誤解 多工原理

如今,多工這個有趣特性已經成功整合在裝置中,我們如今使用的智慧型手機完全支援多工,這其中有乙個東西尤其功不可沒。這就是蘋果的iphone手機。ios是使用廣泛的令人驚嘆的作業系統。在2010年之後ios 4 變成了多工作業系統。眾所周知,當你開啟乙個應用程式然後退出,它仍然會保留在後台。當然,這會導...

對 iOS 多工的誤解 多工原理

如今,多工這個有趣特性已經成功整合在裝置中,我們如今使用的智慧型手機完全支援多工,這其中有乙個東西尤其功不可沒。這就是蘋果的iphone手機。ios是使用廣泛的令人驚嘆的作業系統。在2010年之後ios 4 變成了多工作業系統。眾所周知,當你開啟乙個應用程式然後退出,它仍然會保留在後台。當然,這會導...

關於IOS的多工以及記憶體管理

一 看了很多fy為自己的可用記憶體是350mb還是380mb糾結,為了多優化出一點可用記憶體費腦筋。這種看法是不對的。所謂空載和滿載,是對作業系統來說的。而對於記憶體晶元電路而言,看到的只是0和1,就算是空閒的記憶體單元,也有0和1在裡面,它必須忠實地儲存所有資料,iphone4有512mb的記憶體...