您当前的位置: 首页 > 养生

WP7系统对付流氓程序的策略

2019-03-07 21:09:56

本文主要说一说WP7的一个重要特点,那就是对于后台任务的管制,这个是对普通用户为重要的,不过先声明并不是说的mango更新里新增的多任务切换的墓碑机制,而是WP7对于在后台运行的程序的种种限制,通过了解这些限制可以看看WP7是怎样帮消费者出出在Android平台里被流氓软件偷偷跑后台的这口怨气的。

多任务运行大家都领教过,从Windows系统到古老的Windows Mobile,还有Android都支持实时多任务机制。我们可以一边听歌一边上,一边打游戏还能抽空出去聊个,不过这也给普通用户带来了困扰,以马大嘴旗下的淘宝官方客户端为例,各种自己霸占后台不打招呼,关闭了所有需要推送的功能还是照开不误。偷流量,占内存不说,某些程序甚至还把自己加入到系统服务列,让用户无法以常规手段关闭,感觉这些开发商活的好累啊,可是WP7敲响了这些人的末日丧钟。因为整个WP7系统对于后台任务做了严格而苛刻的限制。

从系统设计来说,WP7的后台任务分为两种,Periodic Task(周期任务)和Resource Intensive Task(资源密集型任务),前者用于程序在后台更新一下Live Tile,或者联查个天气更新这种小任务,后者用于下载这种需要长时间执行的大任务。

(1)一个程序能不能开后台,

WP7系统对付流氓程序的策略

完全取决于用户的选择

在系统设置里,专门有一项控制后台程序,所有想在后台运行的程序都会在这里一项项列出来,想走后门?先问问用户允许不允许吧,在这里你除了可以看到所有的程序列表,还可以看到该程序在开发时所填写的为什么要后台运行的理由,所有程序就像一个个做了错事的孩子等待父母的教诲。

(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,你就要服管,即使用户不懂这些机制,微软依然会对程序进行严格的管制,以期给用户提供一个良好的体验。

作者ID:Albert Gao,站,微博。

大部分所谓后台任务也就是检查一下列表有没有更新,或者用户有没有新的通知而已,这些任务的实现都应该放在服务器端实现,然后应用读取一个XML即可,所以微软的做法完全合理。只是觉得作者在这种敏感时期发这样的文章还是会被喷爆

2012/6/25 10:51:03 支持(29)反对(20) 回复

问题是,即时通讯这类的push应用该怎么办?没有PUSH,是返回到PPC的定时查询年代,还是像苹果一样只允许由苹果push?

话说,Android每个程序都能各种后台push,这资源浪费真是可耻啊!StarfishHead 于 16:22:49 回复文中说的是后台任务,跟推送没有关系。WP7平台上的推送是通过Microsoft Azure来实现的,开发商要付费使用的。

2012/6/26 11:38:16 支持(20)反对(15) 回复

(*)

验证(*)

推荐阅读
图文聚焦