大部份的人都希望手機拿來用而不需要什麼背景知識,但很可惜地,隨著智慧型手機的普及,iOS/Android/WM 用起來比 Symbian 複雜太多,穩定性也更差。 前幾天 某個Blog 上寫說iOS device在Home鍵按兩下出現 App的列表只是「最近用過的應用程式」,並不會影響作業,完全不需要手動關,這是大錯特錯,完全的誤導呀! 早期iPhone推出時,並不具備多工,但隨著iOS 4推出具備(半?)多工後,事情變得麻煩。因為手機是記憶體受限裝置,iPhone 3GS才256MB,所以多工勢必要消耗更多的記憶體,開了幾十個App之後,很可能會因為作業系統所能支配的記憶體不足,出現速度遲緩或是程式當掉的情形;嚴重時必須重開才能釋放leak的memory。這件事只要用任何一套iOS上的memory monitor程式就可以證實,上個月敝公司的CEO的iPhone 4上Mail完全看不到附件,用這招才恢復正常。根據在下兩年來不專業的使用下,連耗電量都有很大的差異! 補充說明:列表並不代表占在記憶體裡的情形,但是會有關連,尤其是會背景執行的App,必須這樣關閉。在 iOS :認識多工處理 有提到: 用 Activity Monitor Touch 這支程式來證實我的說法。 先做名詞解釋,參考 A detailed look at memory usage in OS X ,Active不用說,就是現用的 ; Free不必我解釋吧?Inactive 是 allocated memory that hasn't been accessed during last N Secs,也就是可以吐回的記憶體;Wired 是 memory allocated that shouldn't/can't be swapped/paged out ,也就是已配置也不能置換的記憶體。在 Activity Monitor Touch 用紅色代表Wired,黃色表示Active,白色是Free,藍色是Inactive。以下是測試: 亂開一堆App,結果快用完256MB: 先關有背景多工的App,可以看得到Wired memory馬上釋放: 接著關沒有背景多工的App: 最後可以看出,若如該篇文章所言,...