青青子衿, 悠悠我心, 但为君故, 沉吟至今
« 从Delicious到美味书签揪出Android手机下乱弹广告的流氓 »

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

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

  作者ID:Albert Gao,网站微博



  除非注明,月光博客文章均为原创,转载请以链接形式标明本文地址

  本文地址:http://www.williamlong.info/archives/3133.html
  • 文章排行:
  • 1.StarfishHead
  • 大部分所谓后台任务也就是检查一下新闻列表有没有更新,或者用户有没有新的通知而已,这些任务的实现都应该放在服务器端实现,然后应用读取一个XML即可,所以微软的做法完全合理。只是觉得作者在这种敏感时期发这样的文章还是会被喷爆
  • 2012/6/25 10:51:03   支持(28)反对(20) 回复
  • 2.even
  • 问题是,即时通讯这类的push应用该怎么办?没有PUSH,是返回到PPC的定时查询年代,还是像苹果一样只允许由苹果push?
    话说,Android每个程序都能各种后台push,这资源浪费真是可耻啊!
    StarfishHead 于 2012-6-26 16:22:49 回复
    文中说的是后台任务,跟推送没有关系。WP7平台上的推送是通过Microsoft Azure来实现的,开发商要付费使用的。
  • 2012/6/26 11:38:16   支持(20)反对(15) 回复
  • 3.player1111
  • 所以微信和qq后台都sb了
  • 2012/6/26 16:37:44   支持(24)反对(19) 回复
  • 4.cynic
  • 天朝的悲剧网络,有些人还在用2G。。25秒不够怎么办?30min间隔更是SB,QQ或者微信在后台来个消息,好么,30min后才能见到。。
  • 2012/6/25 14:46:41   支持(26)反对(25) 回复
  • 5.ipcjs
  • wp7已死。。。。。。。。。。。。。。。。。
  • 2012/6/26 0:32:50   支持(22)反对(26) 回复
  • 6.迷途小神棍
  • 目测程序员会被逼疯……除非微软自己来开发……
  • 2012/6/25 9:40:34   支持(23)反对(30) 回复
  • 7.karas
  • 说白了根本就不要程序员活。
    肯定qq推送延迟都会很大。
  • 2012/6/25 9:28:55   支持(18)反对(27) 回复
  • 8.farta
  • 不错。凭良心想想,除了偷跑流量读广告,还有什么程序需要执行在6M内存下,25秒跑不完的复杂计算?
  • 2012/6/27 14:37:37   支持(16)反对(29) 回复

发表评论:

 请勿发送垃圾信息、广告、推广信息或链接,这样的信息将会被直接删除。

订阅博客

  • 订阅我的博客:订阅我的博客
  • 关注新浪微博:关注新浪微博
  • 关注腾讯微博:关注腾讯微博
  • 关注认证空间:关注QQ空间
  • 通过电子邮件订阅
  • 通过QQ邮件订阅

站内搜索

热文排行


月度排行

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享. 转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议.
This site is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License.