Windows Phone(简称为WP)是微软于2010年10月21日正式发布的一款手机操作系统,初始版本命名为Windows Phone 7.0。基于Windows CE内核,采用了一种称为Metro的用户界面(UI),并将微软旗下的Xbox Live游戏、Xbox Music音乐与独特的视频体验集成至手机中。
从3月份的CTP(Community Technical Preview,社区技术预览版本),到4月的CTP Refresh,然后是7月的Beta版本,正式版本的Windows Phone 7的SDK终于和大家见面了。下面我就从开发者的角度谈谈Windows Phone 7:
首先,从对比Windows Mobile6.5开始吧。
升级变化之一:编程语言的变化
与Windows Mobile6.5不同,托管代码成了Windows Phone 7唯一的编程语言,而编写托管代码将有两种方式,一种是编写Silverlight的程序,针对一般的手机应用;另外一种方式是编写XNA的程序,更适合游戏的开发。
这里的Silverlight 程序不同于传统意义上的Silverlight,虽然它是源于Silverlight 3,但是去掉了一部分不适用于移动设备的特性,同时又加入了一些Silverlight 4的特性或者是针对移动设备的代码。另外,传统的Silverlight程序都是在浏览器中执行的;但Windows Phone 7上的Silverlight是脱离浏览器单独运行的。
对于XNA程序,绝大部分国内开发者或许比较陌生。XNA是以前微软用来开发XBox上的游戏以及Zune上的应用程序的一套开发工具。不过由于XBox和Zune一直没有正式进入国内,国内开发者关注这方面的内容甚少。XNA的开发环境是一套基于Visual Studio的,被称为XNA Game Studio的东西。
升级变化之二:对第三方应用限制增多
Windows Phone 7的另一个显著变化是对第三方应用开发限制增多了,主要包括:
由于Windows Phone 7的第三方软件不能在后台执行,只能单任务。后台监控短信、电话等传统应用基本行不通;
开发者不能在使用C++作为编程语言,当前C#是Windows Phone 7 Series平台上唯一支持的开发语言;
目前还不支持VB开发;没有任何机制调用系统API。
对比主流操作系统
除了app store外,现在iPhone是大家学习的目标:多点触摸、手势、电容屏、绚丽的界面……等等。与Symbian, Android, iPhone比较,我们没办法单纯说它比那个平台好,比那个平台差,就对比说说Windows Phone 7的进步与退步:
进步一: 开发更简单
开发难度较Android、iPhone相当,甚至要更简单,微软有出色的Visual Studio这款IDE,手机平台模拟器,电话、短信模拟工具做的也非常出色。
Visual Studio可以是说是最好的集成开发工具,相对于Android采用的Eclipse,优势比较明显。Eclipse经常会出现无法编译,需要反复更 新、反应迟钝等现象;同时Android模拟器占用资源很大;Android开发包与Eclipse协同工作需要做复杂配置工作,而Windows Phone直接安装SDK即可,几乎不需要配置。
另外,开发Windows Mobile/Windows Phone应用只能在Windows操作系统上;开发Android应用,Windows, Linux, Mac OS操作系统都可以。
iPhone开发工具简单实用,但是缺少必要的如模拟电话、短信等工具支持。
相对来说,Symbian开发就复杂很多了,Symbian目前是唯一一款非ARM指令的模拟器, 由于与手机环境有差异,导致很多问题没法在模拟器上复现,尤其对底层开发人员来说Symbian模拟器用处不大;另外,Symbian还没有很好解决在 Linux上开发的问题;电话、短信模拟工具配置复杂,配置成功者少之又少。
进步二: 彻底变革菜单 增强触控体验
Android/iPhone就是为触摸屏设计的,后来者具有先天的优势。
Windows Phone 7为了更好的支持触摸屏,对菜单进行了彻底的改革,基本上抛弃了传统Windows的菜单形式,屏幕分配出来特定区域作为菜单,菜单占用的空间变大,更适合于手触摸;这点上已经达到了Android/iPhone的水平,再加上电容屏、多点触摸,相对于Windows Mobile 6.5是个巨大的进步,也是它最大的亮点。
而Symbian 3的菜单仍旧停留在传统的Windows菜单水平,由于菜单项之间间距过小,很容易出现点错菜单的现象,这是Symbian 3被认为落后其他平台一代的重要原因之一。
退步: 暂不支持多任务
目前Symbian/Android是支持多任务的,Android对多任务进一步做了些特殊处理,系统资源不足时候优先关闭后台执行的程序,保证关键任务(如电话)可以稳定执行。
Windows Phone 7不再支持多任务,不再支持后台任务,这点与iPhone 3GS及以前的机制相同,某种程度上来说这是一个退步。
iPhone 4只支持部分多任务;程序可以放到后台,但是在后台处于挂起状态,程序是不能执行任何操作的,只是免去了程序退出保存状态之苦。
开发者:多数人处于观望状态
开发人员对Windows Phone 7反应不一,有人赞许Windows Phone取得的巨大进步,有的人对微软的进度颇有微词,对Windows Phone 7的iPhone化很不以为然,多数人则处于观望状态。
目前还不清楚 Windows Phone 7能获得厂商多大程度的支持,开发者的态度很大程度上取决于第三方软件公司的战略,软件公司战略则取决于终端厂商对Windows Phone7认可程度,所以现在是考验微软的公关时刻了。
总之,从开发人员角度来讲,Windows Phone进步是明显的,电容屏、多点触摸、手势支持、更加绚烂的界面、编程门槛变得更低。但是Windows Phone退步的地方也不少,单任务,不支持后台程序,不支持c/c++编程接口,使开发人员能做的事情变得少了很多。不过,就单任务问题,以微软的角度来说,似乎他们认为手机的稳定性,快速响应用户也许是更重要的,这个也是iPhone以前强调的理念,但是iPhone 4已经华丽转身了,也许微软跟错了方向。