網(wǎng)站性能檢測(cè)評(píng)分
注:本網(wǎng)站頁(yè)面html檢測(cè)工具掃描網(wǎng)站中存在的基本問(wèn)題,僅供參考。
關(guān)閉程序
手機(jī)上網(wǎng)怎樣省流量 流量視頻課程
iOS多任務(wù)工作原理揭秘 后臺(tái)程序與耗電無(wú)關(guān) 營(yíng)銷視頻課程
iOS系統(tǒng)在iOS4開始加入了多任務(wù)后臺(tái)功能,連按兩下Home鍵呼出后臺(tái),然后就可以在之前打開的程序中切換,但是圍繞這一設(shè)計(jì)的爭(zhēng)議始終陰魂不散。現(xiàn)在我們?cè)偻ㄟ^(guò)一片開發(fā)者的文章來(lái)詳細(xì)了解一下iOS多任務(wù)工作原理。 最近在blogsphere上有一篇關(guān)于iOS多任務(wù)后臺(tái)的火熱的討論,有相當(dāng)大的一部分iOS玩家認(rèn)為當(dāng)程序被留在多任務(wù)后臺(tái)中時(shí)會(huì)加快電量的消耗,以及占用更多的系統(tǒng)資源。但名為FraserSpeirs的開發(fā)者發(fā)表文章澄清了后臺(tái)程序的工作方式。 九成的程序不會(huì)在后臺(tái)運(yùn)行 事實(shí)上你根本就不需要管理iOS的多任務(wù)后臺(tái),因?yàn)槟闼吹搅粼诤笈_(tái)當(dāng)中的程序并非真正的在運(yùn)行,其實(shí)多任務(wù)后臺(tái)并不是實(shí)質(zhì)上的任務(wù)管理器,更確切的說(shuō),更像是類似瀏覽器歷史記錄的東西,只不過(guò)專門針對(duì)程序的記錄而已。 在Speirs的文章中,他特別指出了蘋果商店中的“天才”們是如何幫助錯(cuò)誤的觀點(diǎn)散播的,據(jù)Speirs所說(shuō),他本人也被這些"天才"們告知應(yīng)該將多任務(wù)后臺(tái)中的所有程序全部移除,以獲得更久的用電量和釋放更多的系統(tǒng)資源。這是在非常扯淡。 總體來(lái)講多任務(wù)后臺(tái)只是一個(gè)讓用戶可以在最近打開的程序中做切換的一個(gè)工具而已,對(duì)以上理論最好的證明就是當(dāng)你重啟你的iPhone后,在多任務(wù)后臺(tái)中還是會(huì)顯示所有你最近開啟過(guò)的程序,顯然他們不可能在運(yùn)行。 當(dāng)你按Home鍵離開程序后,你根本不需要再去管多任務(wù)后臺(tái)的東西,因?yàn)橛?0%的程序都會(huì)在你按Home鍵離開程序后停止運(yùn)作,已經(jīng)停止運(yùn)作的程序又要如何消耗更多的電量以及系統(tǒng)資源呢? 下面Speirs描述了iOS是如何在后臺(tái)處理程序的:
關(guān)閉-這個(gè)程序以徹底關(guān)閉或尚未被開啟 待用-程序處于開啟狀態(tài),但是并未收到任何指令(例如:程序開啟但用戶鎖定了機(jī)器)
使用中-正常使用中的程序 后臺(tái)-程序不在開啟狀態(tài)但仍然在后臺(tái)運(yùn)行代碼
暫停-程序仍然在使用內(nèi)存但并未運(yùn)行代碼 在Speirs所提到的這幾種模式中,“待用”跟“使用中”并非這篇文章討論的內(nèi)容,因?yàn)榇脙H是將程序凍結(jié)住。 程序在關(guān)閉后只有5秒的處理時(shí)間 技術(shù)上來(lái)講,所有的程續(xù)在按Home鍵后只有5秒鐘的后臺(tái)時(shí)間,iOS在將這些程序變?yōu)闀和顟B(tài)前給予它們一個(gè)非常有限的時(shí)間來(lái)清除所需清除的內(nèi)容,之后程序變會(huì)被保留在記憶體中以便可以快速的開啟它。 與目前盛傳的觀點(diǎn)相反,暫停狀態(tài)并不會(huì)消耗更多的電量以及系統(tǒng)資源。而當(dāng)系統(tǒng)中有過(guò)多的暫停程序時(shí)iOS系統(tǒng)將會(huì)自動(dòng)將一部分轉(zhuǎn)為關(guān)閉狀態(tài)。 特殊需求的程序可以達(dá)到10分鐘 另外,當(dāng)程序有特殊需求在后臺(tái)運(yùn)行更久而并非5秒鐘時(shí),Speirs使用了Instacast做為例子對(duì)其進(jìn)行了講解,當(dāng)
Instacast正在后臺(tái)下載podcasts
時(shí)它會(huì)告訴iOS系統(tǒng)它正在下載東西,這樣使得iOS系統(tǒng)給于其多10分鐘的時(shí)間而并非5秒鐘的時(shí)間,一但10分鐘時(shí)限到達(dá)后Instacast
將會(huì)被強(qiáng)制切換至?xí)和DJ健?/p> 當(dāng)然還有相當(dāng)一部分的程序是長(zhǎng)期在后臺(tái)工作的,如郵件、音樂、GPS、Voip、電子報(bào)等。這些程序都會(huì)一直在后臺(tái)運(yùn)行直至它完成它本身的任務(wù)。 郵件是最耗電、最占資源的程序 就個(gè)人經(jīng)驗(yàn)之談,郵件程序是整個(gè)iOS系統(tǒng)中消耗最多電量以及系統(tǒng)資源的程序,因?yàn)猷]件程序會(huì)一直在后臺(tái)不停的發(fā)送接收請(qǐng)求,而每個(gè)請(qǐng)求都會(huì)消耗電
量以及CPU使用量。不幸的是唯一能防止郵件件程序這樣做的方法就是不使用時(shí)關(guān)閉所有的程序,或是更改發(fā)送請(qǐng)求的頻率。不過(guò)相系更改了頻率后郵件程序?qū)?huì)
失去它真正的意義,因?yàn)榇蟛糠钟脩舳枷朐谑盏叫偶篑R上獲得通知。
上面講的都是iOS內(nèi)置的程序,現(xiàn)在我們以第三方程序skype為例,早期的skype程序就跟mail程序一樣會(huì)一直耗費(fèi)系統(tǒng)資源跟電量,不過(guò)經(jīng)過(guò)多次的更新后現(xiàn)在已經(jīng)可以很好的智能控制自己的運(yùn)行狀態(tài)了。 開發(fā)者應(yīng)當(dāng)主動(dòng)控制程序的狀態(tài) 所有需要在后臺(tái)運(yùn)作的程序都應(yīng)該編寫智能控制代碼,一但程序完成所需的運(yùn)作后應(yīng)當(dāng)自動(dòng)將自己轉(zhuǎn)換為暫停狀態(tài)。唯一需要用戶自己去關(guān)閉一個(gè)程序是當(dāng)這個(gè)程序不能自動(dòng)處理自己的后臺(tái)狀態(tài)時(shí),而這錯(cuò)在程序本身并非iOS上。 若你還在手動(dòng)管理多任務(wù)后臺(tái),很明顯,你是在浪費(fèi)你的時(shí)間!若蘋果商店的"天才"們告訴你們需要手動(dòng)關(guān)閉,麻煩請(qǐng)糾正他們!
關(guān)閉-這個(gè)程序以徹底關(guān)閉或尚未被開啟 待用-程序處于開啟狀態(tài),但是并未收到任何指令(例如:程序開啟但用戶鎖定了機(jī)器)
使用中-正常使用中的程序 后臺(tái)-程序不在開啟狀態(tài)但仍然在后臺(tái)運(yùn)行代碼
暫停-程序仍然在使用內(nèi)存但并未運(yùn)行代碼 在Speirs所提到的這幾種模式中,“待用”跟“使用中”并非這篇文章討論的內(nèi)容,因?yàn)榇脙H是將程序凍結(jié)住。 程序在關(guān)閉后只有5秒的處理時(shí)間 技術(shù)上來(lái)講,所有的程續(xù)在按Home鍵后只有5秒鐘的后臺(tái)時(shí)間,iOS在將這些程序變?yōu)闀和顟B(tài)前給予它們一個(gè)非常有限的時(shí)間來(lái)清除所需清除的內(nèi)容,之后程序變會(huì)被保留在記憶體中以便可以快速的開啟它。 與目前盛傳的觀點(diǎn)相反,暫停狀態(tài)并不會(huì)消耗更多的電量以及系統(tǒng)資源。而當(dāng)系統(tǒng)中有過(guò)多的暫停程序時(shí)iOS系統(tǒng)將會(huì)自動(dòng)將一部分轉(zhuǎn)為關(guān)閉狀態(tài)。 特殊需求的程序可以達(dá)到10分鐘 另外,當(dāng)程序有特殊需求在后臺(tái)運(yùn)行更久而并非5秒鐘時(shí),Speirs使用了Instacast做為例子對(duì)其進(jìn)行了講解,當(dāng)
Instacast正在后臺(tái)下載podcasts
時(shí)它會(huì)告訴iOS系統(tǒng)它正在下載東西,這樣使得iOS系統(tǒng)給于其多10分鐘的時(shí)間而并非5秒鐘的時(shí)間,一但10分鐘時(shí)限到達(dá)后Instacast
將會(huì)被強(qiáng)制切換至?xí)和DJ健?/p> 當(dāng)然還有相當(dāng)一部分的程序是長(zhǎng)期在后臺(tái)工作的,如郵件、音樂、GPS、Voip、電子報(bào)等。這些程序都會(huì)一直在后臺(tái)運(yùn)行直至它完成它本身的任務(wù)。 郵件是最耗電、最占資源的程序 就個(gè)人經(jīng)驗(yàn)之談,郵件程序是整個(gè)iOS系統(tǒng)中消耗最多電量以及系統(tǒng)資源的程序,因?yàn)猷]件程序會(huì)一直在后臺(tái)不停的發(fā)送接收請(qǐng)求,而每個(gè)請(qǐng)求都會(huì)消耗電
量以及CPU使用量。不幸的是唯一能防止郵件件程序這樣做的方法就是不使用時(shí)關(guān)閉所有的程序,或是更改發(fā)送請(qǐng)求的頻率。不過(guò)相系更改了頻率后郵件程序?qū)?huì)
失去它真正的意義,因?yàn)榇蟛糠钟脩舳枷朐谑盏叫偶篑R上獲得通知。
上面講的都是iOS內(nèi)置的程序,現(xiàn)在我們以第三方程序skype為例,早期的skype程序就跟mail程序一樣會(huì)一直耗費(fèi)系統(tǒng)資源跟電量,不過(guò)經(jīng)過(guò)多次的更新后現(xiàn)在已經(jīng)可以很好的智能控制自己的運(yùn)行狀態(tài)了。 開發(fā)者應(yīng)當(dāng)主動(dòng)控制程序的狀態(tài) 所有需要在后臺(tái)運(yùn)作的程序都應(yīng)該編寫智能控制代碼,一但程序完成所需的運(yùn)作后應(yīng)當(dāng)自動(dòng)將自己轉(zhuǎn)換為暫停狀態(tài)。唯一需要用戶自己去關(guān)閉一個(gè)程序是當(dāng)這個(gè)程序不能自動(dòng)處理自己的后臺(tái)狀態(tài)時(shí),而這錯(cuò)在程序本身并非iOS上。 若你還在手動(dòng)管理多任務(wù)后臺(tái),很明顯,你是在浪費(fèi)你的時(shí)間!若蘋果商店的"天才"們告訴你們需要手動(dòng)關(guān)閉,麻煩請(qǐng)糾正他們!