Windows Phone的网络连接策略

简介:

前言

在微薄中“有人”(我记得是谁,^_^)问起Windows Phone在锁屏下是否继续链接WiFi,引起了很多WP微博控在讨论,其实我本来不关心这个问题的,因为这个是不可控的,但是讨论的人太多了,因此我想聊聊我对Windows Phone的网络连接策略的想法。

问题定义

这个问题可以简单的重新定义为Windows Phone在空闲(idle)情况下,是否进行网络链接。到底使用哪种链接方式,是由Windows Phone的策略所决定的,这种策略基本上是考虑电池使用量和链接成本($$$$$$$)等因素。

多任务之梦

如果有人觉得Windows Phone是单任务,在锁屏的时候会把所有app杀死了,那么他/她可能给水军给忽悠了,Windows Phone从第一天开始就是一个多任务操作系统,所以在锁屏情况下继续保持网络链接,继续完成后台任务是可能的。但微软一般不这样做,而且限制app开发者这样做,这些都是为了提供更好的用户体验。

到底链接or断开?

我的答案是yes and no,呵呵。在Windows Phone锁屏的情况下,到底继续保持链接还是断开链接,不能简单的回答,因为这个操作是根据策略来决定的。这些策略的目的都是为了提供更好的用户体验,这种策略简单可以参考下面的公式:

任务类型 + 电源状态 = 是否断开链接

根据之前重新定义,公式可以替换为:

任务类型 + 电源状态 + 可用网络链接媒体(WiFi/3G) = 是否进行网络链接

也就是说在不同的情况下,Windows Phone会相应的保持或者断开链接。这也是现代智能手机系统(WP, Android,iOS)最最基本的功能了。现代的智能手机系统一般都由系统来进行电源管理和网络连接管理。请注意我把“系统”两个字重点加粗了,因为非现代智能手机系统可能是把主动权交给了应用(app)来管理的(当然最终操作系统保留了最高决定权),例如以前的Windows Mobile是由应用来决定打开和关闭网络连接,打开3G还是WiFi,试问一个app开发者怎么要肩负着OS开发者的责任,需要考虑的情况也太多了。再例如Symbian的app在启动是会提示“是否打开网络连接,到底打开3G还是WiFi”,把链接责任推给了用户。这些老系统都极大破坏了用户体验。

-------------------------貌似合理的跑题-------------------------------------------------------------------------------------

下面举一个Agile的例子,讨论一下用户到底要什么:

最为一个非技术用户,如果我想看微薄,那么打开微薄app就可以看。

这里的非技术用户根本就不关心手机的链接状态,关心的是是否能查看和发微薄

这里用户故事有以下的附加条款(acceptance criteria):

1.如果能接触(这里没有使用链接,其实也是这个意思,connect)到微薄后台服务,直接打开app,显示默认页,例如“@我的”

2.如果不能接触到微薄后台服务,而且没有缓存,提示用户没网络链接,请稍候再试。

3.如果不能接触到微薄后台服务,而且有缓存,提示用户只能看缓存。

这个用户故事有个特点是,不由用户来决定,而是预定动作,强迫用户选择或接受,但是假装很尊重用户的样子。回到Jobs那句话,给用户最好的选择就是不给他选择。

-------------------------跑回到主题上------------------------------------------------------------------------------------

由此可以知道关心这种问题的都不是“非技术用户”,对,我就是说你,0_^。其实Windows Phone已经把管理网络链接的主动权收起来,统一由系统进行管理,作为app开发者不一定要把这个问题查根问底也能写出很优秀的程序,但是如果真的想知道,我下面尽力探讨一下。

什么时候Windows Phone在空闲状态会进行网络链接

上面讲到网络链接的策略,因此我们开发的app符合这些策略,就会在空闲状态下也进行网络链接。我尽力列出所有可能出现的情况:

ApplicationIdleDetectionMode设置为disabled

Windows Phone的app可以通过修改PhoneApplicationServiceApplicationIdleDetectionMode强制app在锁屏的时候不会被墓碑化(注意Mango发布后这个功能有时候是鸡肋了),这种程序一般是导航程序,音乐播放程序(mango后有替代方案,会在后面讲述),也就是手机锁屏,app还是继续运行,程序可以继续做一些网络request,这样WiFi链接就会保持(如果有WiFi链接的话)。但是根据微软的文档,在程序锁屏情况下应该停止/关闭很多操作,例如Timer,动画(animations ),重力加速计(accelerometer ),地理定位服务(Location Service ),FM收音机,同时断开网络链接等等。但是注意我这里使用了应该,没有说必须,因此app还是可以继续做网络请求的。

Background Audio

使用AudioPlayerAgent(后台音频播放)的app在锁屏的时候也可以继续播放,如果音频的url指定为网络的url,那么为了能正常播放,Windows Phone继续保持WiFi链接如果WiFi可用的话。

Background File Transfers

如果app使用了BackgroundTransferService(后台传输服务),那么程序会在特定情况下保持链接,继续下载,如果文件小于20M,Windows Phone会继续使用3G下载,如果文件100M以下,那么Windows Phone会继续使用WiFi下载文件,如果文件大于100M,必须外接电源和联通WiFi的情况下Windows Phone才会启动下载。

Background Agents

如果app使用了ScheduledTask(定时任务),那么程序在每隔一段时间会启动执行一下,可能有两种不同的任务如下

PeriodicTask (周期性任务)会每隔30分钟执行一次,每次只能执行25秒。

ResourceIntensiveTask (耗资源的任务)每隔10分钟执行一次,但是需要连接上外接电源。

其中两种任务在执行过程都可以链接网络,请求网络资源的。

Schedule Tile

如果app使用了ShellTileSchedule(信息块更新任务),那么程序每隔一段时间可以更新Live Tile,如果Tile的图片在网络上,会启动网络链接。

Tile Notification

官方没有说明推送任务的实现细节,从系统角度看一般实现方法可能如下:

1.通过sms触发手机去请求。

2.手机定时pull(拉)信息。

不管哪种方法,手机最终都是需要通过网络链接来取得推送服务的信息,因此也可能使用到网络链接。

总结

不管哪种方法,微软试图做的是提供良好的用户体验(包括电源消耗,反映速度,通信资费等等),因此作为app开发者,我们要做的是在现有的限制条件下,提供更好的用户体验,没必要为了数据长链接而破坏用户体验。

有任何问题,请留言,或者微博我 @林永坚jake 谢谢!

广告时间

一年一度的墨尔本杯又来了,看马看美女的时候到了,一起来下来免费Melbourne Cup app吧。

http://http://windowsphone.com/s?appid=8801c39f-519c-48a1-a21a-2585ddb851d4


 

http://http://windowsphone.com/s?appid=8801c39f-519c-48a1-a21a-2585ddb851d4

任何建议都welcome,谢谢!




    本文转自Jake Lin博客园博客,原文链接:http://www.cnblogs.com/procoder/archive/2011/10/28/WIndows-Phone-Idle-Mode.html,如需转载请自行联系原作者

相关文章
|
13天前
|
存储 安全 网络安全
网络安全与信息安全:防御前线的科学与策略
【4月更文挑战第10天】 在数字化时代,数据成为了新的货币,信息流成了掌控权的象征。然而,随着信息技术的迅猛发展,网络安全漏洞、加密技术以及用户的安全意识构成了维护网络空间安全的三大支柱。本文将深入探讨网络安全中存在的风险点,分析加密技术的演进及其在保护数据完整性、机密性方面的重要性,并强调提升个人和组织的安全意识的必要性。通过科学的分析与策略的制定,我们旨在为读者提供一幅全面的网络安全蓝图,以应对日益繁复的网络威胁。
|
14天前
|
安全 网络安全 数据安全/隐私保护
网络堡垒的构建者:洞悉网络安全与信息安全的深层策略
【4月更文挑战第9天】在数字化时代,数据成为了新的价值核心。然而,随之而来的是日益复杂的网络安全威胁。从漏洞利用到信息泄露,从服务中断到身份盗用,攻击手段不断演变。本文深入剖析了网络安全的关键组成部分:识别和防范安全漏洞、加密技术的应用以及提升个体和企业的安全意识。通过探讨这些领域的最佳实践和最新动态,旨在为读者提供一套全面的策略工具箱,以强化他们在数字世界的防御能力。
|
2天前
|
安全 物联网 网络安全
网络安全与信息安全:防御前线的关键技术与策略
【4月更文挑战第21天】在数字化时代,数据成为了新的货币,而网络安全则是保护这些资产不受威胁的盾牌。本文深入探讨了网络安全漏洞的本质、加密技术的进展以及提升个人和企业安全意识的方法。通过分析当前网络攻击的模式和动机,我们提出了一系列切实可行的防御措施,旨在帮助读者构建更加安全的网络环境。
|
3天前
|
存储 安全 网络安全
云端防御策略:融合云服务与网络安全的未来之路
【4月更文挑战第20天】 随着企业数字化转型的加速,云计算已成为支撑现代业务架构的关键。然而,伴随其发展的网络安全威胁也不断演变,对信息安全提出更高要求。本文将深入探讨在动态云环境中实现网络安全防护的策略和技术,包括最新的加密技术、身份验证机制以及入侵检测系统等。通过分析当前云服务中的安全挑战,并结合前沿的网络安全技术,旨在为读者提供一个关于如何在享受云计算便利的同时保障数据安全的全面视角。
|
3天前
|
存储 安全 网络安全
构筑安全之盾:云计算环境下的网络安全与信息保护策略
【4月更文挑战第19天】随着云计算技术的飞速发展,企业和个人越来越依赖于云服务来存储、处理和交换数据。然而,这种便利性背后隐藏着潜在的安全风险。本文深入探讨了在云计算背景下,如何通过综合性的安全措施和策略来强化网络安全防护,确保数据的完整性、可用性和机密性。我们将分析当前面临的主要安全挑战,并基于最新的技术进展提出相应的解决方案,以期达到有效防御外部威胁和内部漏洞的目的。
15 4
|
3天前
|
存储 安全 网络安全
构建坚固的防线:云计算环境下的网络安全策略
【4月更文挑战第19天】 随着企业纷纷迁移至云平台,云计算已成为现代信息技术架构的核心。然而,数据存储与处理的云端化也带来了前所未有的安全挑战。本文深入探讨了在复杂多变的云环境中,如何实施有效的网络安全措施,确保信息安全和业务连续性。通过分析云服务模型、网络威胁以及加密技术,提出了一系列切实可行的安全策略,旨在帮助组织构建一个既灵活又强大的防御体系。
15 1
|
3天前
|
监控 安全 算法
数字堡垒的构建者:网络安全与信息保护的现代策略
【4月更文挑战第19天】在信息化快速发展的今天,网络安全和信息安全已成为维护社会稳定、保障个人隐私和企业商业秘密的关键。本文将深入探讨网络安全漏洞的成因、加密技术的进展以及提升安全意识的重要性,旨在为读者提供一套综合性的网络防护策略,以应对日益猖獗的网络威胁。
7 1
|
4天前
|
人工智能 监控 安全
构筑安全之盾:云计算环境下的网络安全策略与实践
【4月更文挑战第19天】 在数字化转型的浪潮中,云计算已成为企业IT架构的核心组成部分。然而,随着云服务使用的普及化,网络安全问题亦变得日益复杂和挑战性。本文将深入探讨如何在云计算环境中实施有效的网络安全策略,保障数据的安全性和完整性。我们将从云服务模型出发,分析不同服务模型下的安全威胁,并提出相应的防护措施。文章还将讨论信息安全管理的最佳实践,包括加密技术、身份验证、访问控制以及安全监控等方面,旨在为企业提供一套全面的云计算安全防护框架。
|
6天前
|
监控 安全 网络安全
云端防御战线:云计算中的网络安全与信息保护策略
【4月更文挑战第17天】 随着企业逐渐将重心转向云服务,云计算已经成为现代信息技术架构中不可或缺的一部分。然而,这种转变也带来了新的挑战——如何确保在公共、私有或混合云环境中的数据安全和网络防护。本文探讨了云计算平台下的网络安全策略与实施措施,包括最新的加密技术、身份验证机制以及入侵检测系统。同时,分析了信息安全管理在维护数据完整性、保障用户隐私及符合法规要求方面的重要性。通过综合考量技术手段与管理策略,本文旨在为读者提供一份全面的云计算安全指南。
15 5
|
7天前
|
监控 安全 网络安全
云端防御:云计算环境中的网络安全策略与实践
【4月更文挑战第15天】 在数字化转型的时代,云计算已成为企业运营不可或缺的技术支撑。然而,随着云服务模式的广泛采纳,网络安全挑战亦随之而来。本文深入探讨了云计算环境下的安全威胁,分析了云服务模型对安全策略的影响,并提出了一系列创新的网络安全防护措施。通过研究最新的加密技术、访问控制机制和持续监控方法,文章旨在为企业提供一个综合性的网络安全框架,以确保其云基础设施和数据的安全性和完整性。
25 8