顯示廣告
隱藏 ✕
※ 本文為 Knuckles 轉寄自 ptt.cc 更新時間: 2012-01-28 11:35:24
看板 iPhone
作者 lordmi (星宿喵)
標題 [心得] 多工列App們不需要特地去關閉
時間 Mon Jan  9 15:42:28 2012


我一直對iOS的記憶體切換法很有興趣,今天看了Speirs所寫的「Misconceptions About
iOS Multitasking」( http://goo.gl/UAYaj )之後總算有個整體的認識

圖文解釋記憶體配置表我放在blog ( http://www.lordmi.com/archives/10034 )
懶得看理論的可以跳過這段直接看歸納

所以讓我們簡單的說結論吧:

*假如有人告訴你說停留在多工列表的Apps 它們還在執行、還在用你的記憶體、還在
消耗你的電池...這些都是錯的

*當你在App中按下home button,App 會被作業系統從 Active 改成 Background,然
後很快的變成 Suspended 不再消耗資源

*從Background 變成Suspended的步驟很快,但如果前面有工作沒做完也有可能要花上
10分鐘

*假如free記憶體即將用完,iOS會自動移除Suspended 狀態的Apps清出記憶體

*有五種類型的Apps會在 background 直到做完所有事情:audio(音樂), GPS(定位
), VOIP(網路語音通信), Newsstand(新聞) and accessory (控制配件的程式)

還不夠簡單的話,用一句話說完吧。

你不需要管iOS在背景裡怎麼做

他想說的是iPhone的用法就這樣而已。

--
*本文並非由廠商提供:   かんーまおーよんすっすー(よんすっすー)♪
           (′ ∀ ‵ )   ________________
           / 丶    ヽ         U CHU BIEN CAPSULE     |
          / ヽ    /  / _____斯斯鼻炎膠囊_____|
         / /へ ヘ /  /  スズレックス鼻炎カプセルA      |
        / \ ヾミ   /   _良心製文__θ__沒摻類固醇_|lordmi \(・ω<)

--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.61.8
※ 編輯: lordmi          來自: 220.133.61.8         (01/09 15:43)
girl:that's right!Great minds think alike.1F 01/09 15:46
DM1984:沒錯 完全不會特別去在意XD2F 01/09 15:48
KawasumiMai:有疑問,兩點好像互衝?3F 01/09 15:48
KawasumiMai:如果快用完就會去釋放那些不必要的app
KawasumiMai:但是那五種又會放在bg等東西跑完
KawasumiMai:那如果今天只剩下那五種在跑但是記憶體快用完呢?
a0683g10:給小舞,如果有這種情況那五種app還是會被關掉7F 01/09 15:51
KawasumiMai:還是會有記憶體不足以及關閉該app就比較順暢的情況吧8F 01/09 15:51
honokasohot:這似乎只能套用在JB前9F 01/09 15:52
KawasumiMai:有時真的覺得關掉一些會比較順耶,應該不完全心裏因素10F 01/09 15:53
a0683g10:在記憶體快吃滿時手動關掉一些app的確會有點變順的感覺y11F 01/09 15:53
KawasumiMai:有時擱著15個左右的app沒關說沒差別有點難以置信12F 01/09 15:54
KawasumiMai:不過像採香菇那種的確是一段時間之後她就自己unload
a0683g10:不過那是因為OS不用做"先把不用的app關掉以獲得記憶體"14F 01/09 15:54
KawasumiMai:等到下次載入才依照上次執行時間去計算該有多少香菇15F 01/09 15:55
JoeArtanis:的確是不用特別去關,安心用就對了,真的怪怪的再去關16F 01/09 15:56
estupid:Remove bg 感覺就是把suspended先移掉17F 01/09 15:57
KawasumiMai:是說依照採香菇那種調調...隔很久重開要載半天18F 01/09 15:58
KawasumiMai:而且還會回到title畫面重新進入,你要說只有suspended
就我的經驗以上是理想,現實中有些程式會鎖住記憶體不放
這時候用砍多工列App似乎會讓iOS再去整理一次,有時候會清出來有時候不會。
※ 編輯: lordmi          來自: 220.133.61.8         (01/09 16:01)
estupid:Backgrounder就感覺是強制active20F 01/09 15:58
KawasumiMai:老實說把她想成iPhone實質關閉,只是額外留個app捷徑21F 01/09 15:58
KawasumiMai:在多工列上方便你下次開啟...好像也可以說得通
KawasumiMai:所以就是理論值還有各app耍小聰明的差距這樣XD
lordmi:還有就是3G/s確實會發生小舞說的那種5大類程式塞滿的窘境24F 01/09 16:02
lordmi:最近的App越來越肥,我換4s之後就相安無事了
JoeArtanis:隔很久重開要重新進入那種很明顯是被iOS給釋放掉啦26F 01/09 16:07
JoeArtanis:你在記憶體充足下他是不會被釋放掉的
JoeArtanis:當然前提也是那App有支援iOS所謂的多工
KawasumiMai:重點是當記憶體滿的時候要在叫回來可能就閃退了XD29F 01/09 16:10
KawasumiMai:此外程式的寫法還有當初的平台也是很大的因素的確
KawasumiMai:所以只能說完全不用關是理論值,實際還是有點差
Sqall:我不知道REAL RACING 2是不是屬於五大類,之前有一次手機收32F 01/09 16:12
Sqall:簡訊時竟會LAG,我把它關掉後就不會了
ccpz:那就是他記憶體吃太多,系統還沒放掉34F 01/09 16:20
ccpz:總之一句話,放背景的程式, 除了 voip,音樂,導航,newsstand
ccpz:還有和30pin外接裝置溝通的程式外,在背景最多幾秒就會停
ccpz:官方說法看這文件 http://goo.gl/ML5Vm
Makusu:其實會有這種說法並不是沒有原因...因為要教人用>又怕對方38F 01/09 16:28
Makusu:沒有關掉會背景作業的程式所以乾脆叫他都關掉以避免記憶體
Makusu:被卡卡獸吃光光....
leethomas:iOS的多工和一般使用者用的習慣不一樣  手動關也可以41F 01/09 16:36
leethomas:不要關iOS也控制得不錯  不管怎樣似乎都沒有很大差別
yoqwqq:有遇過開太多APP 而收不了信的~ 因該還是會有差!!!!!43F 01/09 17:06
doraemonss:我非常確定racing2 RF 12這類要消耗大量資源的程式會吃44F 01/09 17:08
doraemonss:因為我把這幾種遊戲放在背景 真的會LAG
darKyle:系統不會馬上回收背景app資源 所以剛從遊戲切換到別的app46F 01/09 17:23
darKyle:的時候 可能會暫時因為資源不足而跑不順
Sqall:我的狀況非馬上切換,是我收訊息LAG時我才發現原來RR2沒關48F 01/09 17:24
darKyle:用了其他app一陣子後再回去剛剛的遊戲 會發現它要從頭讀取49F 01/09 17:26
darKyle:越大型的遊戲越容易遇到這種狀況
usbtiger:我覺得還是需要關  何況關一點都不麻煩 虛擬案件超好用51F 01/09 17:29
Sqall:我所描述的狀況是這種GAME似乎不屬於五大類(?),但是放在背52F 01/09 17:30
Sqall:景中他也是持續在運作而影響到目前使用的APP的情況
Sqall:當然關掉是最簡單的解決方式,只是針對這篇主題回覆我的情形
darKyle:那是因為記憶體不足而導致的lag55F 01/09 17:32
darKyle:仔細看了原po的說法 第一點不完全正確 背景app會佔記憶體
darKyle:但是佔記憶體不代表正在執行
nightpluie:我也不覺得正確,因為我的3gs升到4.0變多工後58F 01/09 17:34
nightpluie:變得非常難用,打簡訊常常要卡半天
nightpluie:一定得清除記憶體後才能稍微好一點
darKyle:除了那五種背景工作 其他情況下都會被暫停61F 01/09 17:36
Sqall:是的,我手誤,我想表達的是它雖沒執行但似乎還是佔了資源62F 01/09 17:36
jric:不完全對阿63F 01/09 17:44
fbiwbi:消耗記憶體是真的吧64F 01/09 17:50
chenmous:可是每次去蘋果店玩iphone or ipad 每次多工列都滿滿65F 01/09 18:02
chenmous:有好幾十個軟體 這時iphone或ipad就變得超頓
chenmous:清掉之後 iphone會明顯的變得很快
chenmous:你的說法顯然有問題吧
jric:這樣講,當前(完整)直行可能會佔掉50mb69F 01/09 18:08
jric:縮小後,會使用10去佔存狀態(記憶體充足時)
jric:當記憶體不足時,會變成使用1mb去記錄這個程式"執行過"
jric:而釋放多餘的記憶體給當前的程式使用
jric:所以少量不關都是可以的,但當你執行過100個不關,就會知道..
jric:上面的記憶體只是舉例由多到少,並不是一定
jric:原PO文中也有提到,但最後不是完全不佔,所以還是要定期關
a0683g10:只是支手機,我是覺得沒必要去操這麼多心76F 01/09 18:36
a0683g10:我自己的程式有400+,用了兩年半都沒在意過開了多少程式
a0683g10:比起其它OS,iOS我是覺得已經做得很好了
Decill:推樓上 我選iOS很大理由就是很多東西不用我再去多擔心79F 01/09 20:44
vanish0611:但是不可否認的是把多工列上的圖示關閉後會比較省電80F 01/09 23:31
lym0715:第一點和第四點是不是有衝突???81F 01/09 23:54
lym0715:"你不需要管iOS在背景裡怎麼做"是user的權利 但是並不代表
lym0715:背景程式真的沒有佔任何一點資源吧
danshu:那五種例外情形...很多app都算耶...84F 01/10 01:47

--
※ 看板: iOS 文章推薦值: 0 目前人氣: 0 累積人氣: 2215 
※ 本文也出現在看板: layzer
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇