本文主要說一說WP7手機的一個重要特點,那就是對于后臺任務的管制,這個是對普通用戶最為重要的,不過先聲明并不是說的mango更新里新增的多任務切換的墓碑機制,而是WP7對于在后臺運行的程序的種種限制,通過了解這些限制可以看看WP7是怎樣幫消費者出出在Android平臺里被流氓軟件偷偷跑后臺的這口怨氣的。
多任務運行大家都領教過,從Windows系統到古老的Windows Mobile,還有Android都支持實時多任務機制。我們可以一邊聽歌一邊上網,一邊打游戲還能抽空出去聊個QQ,不過這也給普通用戶帶來了困擾,以馬大嘴旗下的淘寶官方客戶端為例,各種自己霸占后臺不打招呼,關閉了所有需要推送的功能還是照開不誤。偷流量,占內存不說,某些程序甚至還把自己加入到系統服務列,讓用戶無法以常規手段關閉,感覺這些開發商活的好累啊,可是WP7敲響了這些人的末日喪鐘。因為整個WP7系統對于后臺任務做了嚴格而苛刻的限制。
從系統設計來說,WP7的后臺任務分為兩種,Periodic Task(周期任務)和Resource Intensive Task(資源密集型任務),前者用于程序在后臺更新一下Live Tile,或者聯網查個天氣更新這種小任務,后者用于在線下載這種需要長時間執行的大任務。
(1)一個程序能不能開后臺,完全取決于用戶的選擇
在系統設置里,專門有一項控制后臺程序,所有想在后臺運行的程序都會在這里一項項列出來,想走后門?先問問用戶允許不允許吧,在這里你除了可以看到所有的程序列表,還可以看到該程序在開發時所填寫的為什么要后臺運行的理由,所有程序就像一個個做了錯事的孩子等待父母的教誨。
(2)對于用戶沒有吸引的程序,開了后臺也堅決關閉
WP7系統規定,所有后臺任務的生效時間只有14天,也就是說,14天的周期中,如果你都沒有再開過這個程序,那系統將自動關閉該程序的后臺運行。比如你下載了一個新奇的應用,在你第一次打開它的時候它開啟了后臺運行機制,但是可憐的它由于制作太爛導致你在剩下的14天中都沒有開啟它。并且由于工作的繁忙,你也沒有去查看設置里的后臺任務列表。呵呵沒關系,系統自動就關閉了這小子。
(3)就算了你僥幸讓用戶開了后臺,代碼沒優化好照樣被關
到MANGO,也就是WP7.5,系統規定程序在后臺運行的時候內存占用不能超過6MB,否則立即終止;同時也要求程序員對于程序代碼慎之又慎,如果程序在后臺運行時連續崩潰兩次那么系統也將立刻關閉該程序在后臺運行的權限。
(4)如果程序濫用后臺運行權限,系統也將立刻終止
所有后臺運行的程序每30分鐘運行一次,每次最多執行25秒,超時后立即終止,想借助特權胡作非為么?WP7將直接代替用戶對你說NO.
(5)對于需要長時間執行后臺的程序,系統也提供了途徑
剛才說的Resource Intensive Task在這里就派上了用場,可惜由于這些資源密集型任務需要資源過多,系統也將嚴格限制,除了剛才說的前3條之外,還有其余額外的限制,那就是:
a)電池電量不得低于90%,而且需要連接外部電源;
b)需要非手機網絡連接,連著WIFI或PC吧,親;
c)屏幕必須鎖定,也不能接打電話,否則不執行;
d)最多執行10分鐘,超時立即終止;
結語
可以看出,無論從Windows Phone生態體系的構建,還是到WP7系統的細節設計,微軟都展現出強大的控制欲,尤其對于后臺運行的程序這一塊,這將帶領用戶進入一個“我說了算”的時代,流氓不怕,會武術的流氓也不怕,只要你為WP7寫APP,你就要服管,即使用戶不懂這些機制,微軟依然會對程序進行嚴格的管制,以期給用戶提供一個良好的體驗。