• 3

iOS4多工處理得強制啟用?

很多人都知道,JB後就有可以發現作業系統剩餘記憶體的功能,有的時候看到剩餘記憶體很少,難免會覺得有點擔心,不過在IPHONE OS裡剩餘記憶體不代表是可執行程式的記憶體。

我舉一個比較好理解的例子。 在夜市常常可以看到有一些攤位因為叫賣精彩所以圍觀了很多人,但是那些人雖然站在那裡,但是不見得會買,你想要買但是擠不進去時,只要大聲跟攤販老闆說你要買,老闆自然會叫圍觀的人清出一條通道讓你走向前買貨。 IPHONE OS也是這樣,你看起來好像剩餘的記憶體不多,但是那些站住記憶體的就好像是夜市圍觀的群眾,只要一有程式要執行,OS就會把他們清掉,你根本不需要管你前面有程式佔住多少記憶體,反正就是會清給你就對了。

在IOS 4裡面只有特許的幾種類型的應用程式可以在特定的API幫助下,達到多工的效果,基本上大部份的時間IOS 4還是以單工的方式在執行。為什麼蘋果要這麼做呢?根據蘋果研發團隊的觀察,其實很多狀況你根本就不需要多工,譬如說你在打電動,如果這個時候電話來的時候,應該是先把遊戲的進度先暫存起來,然後退出程式,專心接手機,而不是你在接電話,遊戲在背景繼續執行,請問你在打電話的時候,能夠一邊打飛機嗎?如果不能,遊戲又一直在進行,你不就GAME OVER了嘛? 同樣的道理,你在看電影的時候,電話來的時候也不應該繼續播放阿,應該是紀錄你現在看到甚麼地方,讓播放程式重新執行的時候,在從你中斷的地方開始播放就好。

那甚麼東西需要繼續執行呢?像GPS就需要繼續執行,否則你在講完電話後在重新執行程式,很可能就錯過要到達的地方了。這是蘋果在多工耗電但是方便,而單工省電但是不便之間想出來的折衷方法,算是蠻異想天開的做法。
不過畢竟不是多工,大部分的遊戲在接電話後,那一關是要重打的,
我想這點在OS4還是會一樣.....
白鴿先生 wrote:
只要這玩意亂流出去,就一定會有使用者會亂揣測,或以訛傳訛的情況...(恕刪)


大大說的也沒錯!
以訛傳訛的情況的確不好,也應該盡量避免,
但是一般人卻又特別喜歡嘗鮮,萬一得到的是不好的經驗,
卻有可能因為先入為主,而變成難以扭轉。



prettyboy wrote:
請問你在打電話的時候,能夠一邊打飛機嗎?...(恕刪)


看到這句話,
我不覺莞薾。



遊戲進行到一半
電話來時接聽後 (或是中途跳出遊戲)
該關是不是要重打
這就得看遊戲開發廠商怎麼寫了
apple 的規範是必須要記錄下進度
讓回到遊戲時可以不用重新開始
軟體也會收到中斷的 callback 可以處理暫停的動作
通常遊戲也都會這麼做
不過還是得看遊戲廠商,他不這麼做也沒辦法
享受生活 http://richiestyle-lavie.blogspot.tw
prettyboy wrote:
根據蘋果研發團隊的觀察,其實很多狀況你根本就不需要多工,譬如說你在打電動,如果這個時候電話來的時候,應該是先把遊戲的進度先暫存起來,然後退出程式,專心接手機,而不是你在接電話,遊戲在背景繼續執行,



不知道這個觀點是您猜的還是阿婆小組告訴您的?

真正的多工很耗系統資源, 如果硬體不夠力, 跑起來會很辛苦, 就不會順. 我猜iPhone的設計最高指導原則就是使用者順暢感, 因此才使用這種有人稱為"偽多工"的方式. 然後用"其實很多狀況你根本就不需要多工"的這種說法來掩蓋本身不夠力的問題. 這種作法在小弟工作中也經常碰到(小弟也是在科技業), 反正自己做不到, 就說你不需要, 只是我們不像阿婆那麼夠力, 這樣講一定被打槍!


prettyboy wrote:
請問你在打電話的時候,能夠一邊打飛機嗎?


這就是典型的"我做不到, 就說你不需要"的講法. 不然如果iPhone做的到, 夾不死一定在keynote吹說iPhone可以打電話然後打飛機還在背景執行, 等切回去時, 你已經死了, 來證明可以真的多工. 或是切回去時如果還沒死, 就調侃地說"叔叔有練過, 小朋友不要學", 這樣不是更能引起一遍高潮嗎?

像我經常玩世紀帝國/模擬城市...遊戲時會切換到其他程式, 然後等一陣子再切回去狠殺猛打一陣! 還有像開心農場/虛擬寵物這種進展緩慢的遊戲, 本來經常就是偶爾才切回去動一下, 然後切到別的程式去.

我是覺得如果可以真的多工的話, 可以提供選項讓使用者決定要暫停還是繼續在背景跑. 而不是用"你不會這樣做"來說服使用者.
heliboy wrote:
像我經常玩世紀帝國/模擬城市...遊戲時會切換到其他程式, 然後等一陣子再切回去狠殺猛打一陣! 還有像開心農場/虛擬寵物這種進展緩慢的遊戲, 本來經常就是偶爾才切回去動一下, 然後切到別的程式去....(恕刪)


像開心農場、虛擬寵物這類,應該會以真實時間為主,單機的就抓手機時間,
多人的就抓Server時間,你離開遊戲還是可以發展,沒必要開著佔資源。

至於其他遊戲,我覺得只是手機遊戲而已,不用要求要能在手機多工啦....
只要能回去遊戲時,是剛才的狀態就已經非常完美了。

只是「大部分」的遊戲都沒做到這一點,只有一些比較簡單或靜態的遊戲有
做到記錄遊戲狀態,華麗一點的遊戲可能記憶體吃相當多,沒辦法採用即時
記錄,都是用關卡或儲存點來解決,這是比較麻煩的地方。

當然,記憶體吃很多的遊戲,你要他能在背景一直運行,然後去做其他事情
,對於開完機只剩一百多MB的3GS/iPad絕對是更困難。

heliboy wrote:



不知道這個觀點...(恕刪)


也並不是 "做不到就說你不需要"

而是mobile device本身就跟 pc / mac 的環境不同, 大部份使用者真的需要跟 pc 一樣的完整的多工嗎? 也未必...

所以才提供api 讓應用程式自已選擇使用, 也不是每個遊戲都follow 同樣的多工方式,因為他們可以選擇是否要使用多工的api。

而且我真不希望手機的電池都拿來給不需要的背景程式用盡 = = 即使能換電池也一樣

因為他主要的功能是手機, 不是PSP/電腦!



要關掉的話,用ifunbox進iphone,進入"system/library/coreservices/springboard.app"

2G的話找n72.plist
3G找N82AP.plist
3GS找N88AP.plist

把相應的檔案複製到電腦隨便位置,用記事本開啟。

要關掉背景圖片,找出<key>homescreen-wallpaper</key>
要關掉Multi-tasking,找出<key>multitasking</key>

把要關掉的功能的key後面的<true/>改成<false/>

儲存後把修改好的檔案複製回相應位置,再重新啟動就能關掉。





我承認是因為好奇心驅使,用3G jb後把這兩個功能開了後卡到不行只好關掉它們的其中一位 :p
  • 3
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?