IPAD新手....原來我的程式都沒有關

搖擺天秤 wrote:
...這應該是某個 app 搞的鬼,佔著芧坑不拉屎(恕刪)


apple 在審查 app 的時候難道沒有在管這一項 ?
RMIT.E.E. wrote:
apple 在審查 app 的時候難道沒有在管這一項 ?


如果這種問題能夠審查得出來,Windows 就不會有藍屏了。
RMIT.E.E. wrote:
apple 在審查 app 的時候難道沒有在管這一項 ?

ulyssesric wrote:
如果這種問題能夠審查得出來,Windows 就不會有藍屏了。

沒錯,這種問題根本是檢查不出來的
像我自己也曾經遇過已審核通過上架的 app
之後測試時才發現在 "某些情況" 下,並沒有完全把一些沒用到的元件的記憶體釋放掉
造成 memory leak
而且就算 leak 了,因為不是太大量的記憶體,所以也完全沒有影響到 iPhone 的穩定度
這種問題除非開發者自己找到,不然就是問題太明顯,太大條了
不然 apple 很難在審核時在每個情況下都測試完整
然後可以幫你找到 leak 的問題
不過 apple 審核至少會檢查界面和 API 的用法,也是可以事先排除掉一些問題的
在有審核的 AppStore 都常有這種情況
其它的系統的開發者完全不審核就可以直接上架
更難想像會有多大這類穩定度的問題了

題外話,iPhone 開發者每次遇到審核要拖 1~2 周就很頭痛
要是被打槍,就是再重複送審再拖 1~2 周
只要有一次送審時有錯誤,上架時間就有可能拖到 1 個月了,軟體的時效性都沒了
但有時候想想 apple 龜毛的審核態度,也是讓 app 持續品質穩定的關鍵之一
加上開發者都得每年固定繳規費
也少掉一些玩票性質且品質控管不佳的開發者來搞壞這個平台
享受生活 http://richiestyle-lavie.blogspot.tw
搖擺天秤 wrote:
不完全正確只要軟體是...(恕刪)


我想依據你回復的詳細程度
你必然是一個iDevice軟體開發者
確實沒有重編的軟體就必然會產生相容性的問題
但是4.x的升級, 也反映到蘋果很喜歡把底層的東西砍掉重練
因此大家只能疲於奔命...

並且其實這樣聰明的多工, 在有些時候是很麻煩的
首先 你打算放在背景的程式, 必須要仔細測試使用者才知道是否有完整支援多工
有些程式有部分支援, 有些完全沒支援(到背景就等於砍掉重練), 有些有可能在背景放到一半被強制關閉...
蘋果的"聰明"舉動並非所有程式設計師都可以配合

此外 如同上面所說, 你根本不知道甚麼時候你放在背景的東西會被蘋果清掉
在256MB的情況下, 其實常常會被清掉, 背景作業的東西常常會被中斷...
所以美其名有多工, 很多情況下我反而恐懼多工的存在, 因為你根本不知道那些軟體有沒有被妥善的關閉...
(尤其是依些沒人維護的軟體)
像是以前完全的單一APP的時代, 反而使用者不用等系統去跟其他軟體要記憶體, 可以順暢的執行他想要的程式
只是多工確實帶來了很多方便, 也是不爭的事實.

根本的問題, 就是蘋果只願意放入256MB的記憶體...
這就跟PS2只有4MB VRAM依樣蠢.
Life will find its way
感謝搖擺天秤的解說,我用iphone已經多年,最近又買了ipad,但常常就有記憶體的迷思,怕多工下,佔據記憶體,常常就去關閉多工,反而造成自己很多的不方便,看了搖擺天秤的解說,我就可不去擔心記憶體的問題,感謝你的解說
Garrett wrote:
並且其實這樣聰明的多工, 在有些時候是很麻煩的
首先 你打算放在背景的程式, 必須要仔細測試使用者才知道是否有完整支援多工
有些程式有部分支援, 有些完全沒支援(到背景就等於砍掉重練), 有些有可能在背景放到一半被強制關閉...
蘋果的"聰明"舉動並非所有程式設計師都可以配合

我想你不了解 iOS4 SDK 的特性
只要你拿在 iPhoneOS 3.x 版的程式碼
用 iOS4 SDK 來重新編譯,就算沒有改變任何一行指令
編譯過後的 app,就是可以支援多工的 app
而用 iOS4 編譯過的 app,一樣可以在 3.x 版的 iPhone 執行
不用去管使用者的機器有沒有支援多工,或要怎麼才能支援多工
而且就算沒有改變任何一行程式碼,在多工背景下被關閉也 "完全" 不會有任何問題
你的擔心是多餘的
要一款 app 支援背景多工 "非常非常簡單"
蘋果的"聰明"舉動讓程設師的 app 完全無痛的支援多工
所以沒有什麼程式設計師不能配合的問題,最主要問題的就是程設師 "懶隋"
不願拿舊程式碼來重編譯一次,然後上架,如此而已

Garrett wrote:
此外 如同上面所說, 你根本不知道甚麼時候你放在背景的東西會被蘋果清掉
在256MB的情況下, 其實常常會被清掉, 背景作業的東西常常會被中斷...
所以美其名有多工, 很多情況下我反而恐懼多工的存在, 因為你根本不知道那些軟體有沒有被妥善的關閉...

這點更是奇怪了
在 3.x 版時,難道就不擔心按 home 之後,你的軟體有沒有被妥善關閉?
因為在 3.x 版時 app 關閉時,會有個 applicationWillTerminate 的事件被呼叫
程設師必須這在事件做好所有存檔處理,因為你不知道什麼時候會被使用者按 home 關閉
所以這個處理的動作是非常重要的,也是開發 iDevice 最基本的規則之一
而在 iOS4 時,進入背景或是回到前景也會有事件可以處理 (這就不多說了)
最主要的是不管是使用者手動關閉或是系統自動關閉
也都會有 applicationWillTerminate 事件被呼叫,程設師一樣得在這個事件做好存檔處理
和 3.x 版一模模一樣樣,沒有任何差別
如果你的 app 在背景被系統自動關閉而損失資料,那表示同樣 app 在 3.x 版沒有多工的 iPhone 上
使用者按 home 關閉時一樣會損失資料,也就是這是程設師沒有把 app 寫好的問題
也表示這個程設師完全沒有寫 iDevice app 的 sense
跟多工不多工完全沒有關係 (不要拿 PC 那一樣思維來看 iDevice)

當然有些動作是不適合立即關閉的,如正在從網上上下載資料
或是正在處理資料庫動作
這些動作當收到被關閉的事件時,都可以向系統要求再延後關閉的時間 (我前幾篇文章也有提到)
而且可以重複要求到最多長達數分鐘的延後時間,這絕對夠用
通常接收到這種關閉事件時,必須趕快把手上的工作清一清,然後關閉
如果 app 還佔用數分鐘的撐到時間到而被關閉,還讓資料遺失了
這也不是多工的問題,而是這個程設師不及格
遊戲規則都讓給你聽了,你還要出錯,那怪誰?

就像我前幾篇文章所說
256M 和 512M 的差別,在多工這個議題下,頂多是背景可以凍結的 app 變少而已
所以背景的 app 會比較容易被關閉
但估計 256M 下背景凍結的 app 至少保有 5~10 個 (視 app 記憶體用量而定,遊戲類就比較少了)
絕對是堪用的,不過記憶體當然愈大愈好啦
而背景作業的 app 被關閉,也絕對不會造成資料的損失 (除非程設師太爛了)
因為它跟你在 3.x 版自己按下 home 是一樣的狀況

結論就是根本不用擔心多工會把你背景的 app 關閉會出問題
如果它會有問題,在沒有多工的 3.x 版下同樣也有問題
也不用管它記憶體怎麼用的,更不用懷疑你的 iPhone/iPad 只有 256M 的記憶體不適合跑多工
它絕對堪用
反正就是用最簡單直覺的方式使用它就是了
剩下的系統都幫你處理好好的
享受生活 http://richiestyle-lavie.blogspot.tw
真是受教了 01上面難得的正面討論文章

不知道天秤大

有沒有興趣解釋一下 推播功能所占用的記憶體的情況

很有興趣了解
搖擺天秤 wrote:
我想你不了解 iOS...(恕刪)


首先 一般使用者無從知道這個軟體有沒有拿到iOS4 SDK重新編譯
實際上, 他們也不知道甚麼事iOS SDK.
他們只會以為, 更新到iOS4 就是所有軟體都有多工了, 這才是無痛.

第二個 所謂有沒有被妥善結束
其實這個問題很簡單

在單工的時代, 大家都會很乖的把寫到一半的東西寫完, 做到一半的事情做完才會切換程式
但是到了多工之後 常常我們就會想要(需要)切來切去.

這時候做到一半的程式在背景被"自動釋放"的時候怎麼辦呢?
你很清楚那是怎麼一回事, 但一般使用者是不知道的.
實際上當然不會有"資料損失", 但做到一半的事情可能就會突然需要重做. 對使用者而言這就是損失.
使用者: 我上次放到背景再切回來時不用重作, 怎麼這次開個遊戲之後就需要了?
(其實,也有軟體是刻意這樣來區分免費版跟一般版...)

實際上, 也並不是每個工程師都清楚這些規則
很多真的就只是重新compiler+上架而已...
我換了iOS4之後, 發現使用中出包的程式真的是變多了. 但這無法界定是誰的錯.
就好像winXP的軟體在win7不能用了, 很難說到底是誰的錯, 要看到底是錯在哪.
如果每個程式設計師都很厲害, 那每個平台都會很完美, 當然我們也就不用討論這麼多了.

最後回應主題一下. 沒錯, 系統都幫你處理好了, 可惜不一定是你要的.
技術上我相信我們都很熟習, 仔細看一遍也覺得你說的都對.
但是不是無痛這種事情我想見仁見智, 我想就不用一來一往的爭辯囉.
Life will find its way
只能說,iOS的多工是頓+慢....
只能說之前iOS的順是封閉+單工出來的假象而已,現在順應多工的趨勢,高低立見...

(連被e04的要死的WM多工都比iOS的多工順...)
Garrett與天秤兄的對話實在叫我們這些門外漢獲益良多阿,尤其習慣在視窗系統下做多工,很樂見ipad也可以多工,畢竟有時就是兩三個程式要交叉用,如果不幸其中一個被強迫關閉,的確是造成不少麻煩在,不過目前用起來,只要排除遊戲,幾個程式下切換來都還蠻順暢的,如果遊戲進來就難說了,感謝兩位給敝人上了一堂寶貴的課,此番對話很有意義。
http://www.wretch.cc/blog/gozillatw
文章分享
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 7)

今日熱門文章 網友點擊推薦!