WP7(Windows Phone 7)概览
2010-09-06 11:11 码年 阅读(1053) 评论(0) 编辑 收藏 举报微软的Windows Phone 7(以下简称WP7)就要RTM了,有期待的,有泼冷水的,本文将会从一个开发者的视角,从客观的,技术的角度来阐述WP7的一些细节,至于说WP7的未来会怎样,我们拭目以待。
很多人尤其是WM(Windows Mobile)的开发者在感叹微软在智能手机上的动作太慢了,当苹果的iPhone和Google的Andoid在智能手机市场拼杀的时候,微软的智能手机还是停留在WM阶段,中间出了一个WM 6.5的版本,基本上也是换汤不换药,没有什么新意可言。WM的开发者颇有些被冷落的感觉。
微软终于感受到了压力,鲍尔默亲口承认了在智能手机市场的失误,于是动用了很大的力量,据说把在其他国家的所有相关力量都收回了,全部在总部集中开发。终于,微软在9月2日表示WP7已经全部开发完毕。这符合微软的一贯的风格,在很多领域等其他人走出一条成功之路后,微软就开始复制,依靠强大的财力,技术积累和市场影响力,很多时候还都可以做的不错。
提到WP7,总是会说Windows Phone 7 Series,其实这个Series并没有什么特殊的含义,只是从设备的角度而言,所有的WP7平台的设备就叫属于这个series。微软在硬件方面做了规范。先看看iPhone是怎么做的。由于iPhone是软硬件都自己做,他们可以控制所有的机器都有相同的按键,相同的分辨率,相同大小的内存和相同能力的CPU与GPU,所以对于iPhone的开发者来说都可以做一定的硬件假定,在开发程序的时候就会很有效率。因为微软有很多的OEM,为了达到同样的效果,微软规定了所有的WP7设备都有固定的三个按键:后退键,搜索键,确定键。在第一个发布的版本中只有一种分辨率800*480,接下来会有另一个分辨率480*320,必须要有GPS,在内存,CPU,GPU方面也都做了规范,连软键盘(Soft Input Panel)都是不允许第三方开发的。只有硬件键盘是可选的,OEM可以选择有或者没有。所有这些微软的目的就是让开发者可以假定有同样的硬件设备,可以最大限度的忽略不同WP7设备的差异。
WP7仍以WinCE为内核,但完全摒弃了WM的架构,采用单任务,以.NET为程序运行平台。WP7是单任务的,一开始可能很多人比较难于接受。毕竟WM系列虽然在市场上不能跟iPhone抗衡,但是依靠强大的平台能力,其中很重要的一点就是多任务,在某些应用场景中还是难以被取代的。采用单任务的目的是增强安全性控制,比如:不能有一个第三方的程序在后台运行;还可以高效节能地运行程序,因为所有的硬件资源都去运行一个程序,进程切换的开销(只有系统的某些进程可能会同时在运行)就会很小。最初的iPhone就是单任务的,到iPhone 4.0的时候号称是多任务了,所以有些人说WP7相当于iPhone 2007年的水平。WP7的程序运行在沙箱(Sandbox)里面以增强安全性控制。沙箱是一个比喻的说法,具体来说一个程序运行在一定权限许可范围之内,系统规定了它有权限和没有权限做的事情,比如WP7只允许第三方程序访问安装目录的文件夹以及子文件夹和其中的文件。
WP7的另一大特点是它的Service的支持。它的service从大的方面可以分为三种:自己的service,第三方的service,微软的service。比如说你可以创建自己的web service以供WP7客户端使用,你还可以使用第三方提供的service,比如Twitter api。这里重点要提出的是微软提供的service,使得WP7的能力得到了极大地提升。微软的service有:Push Notification,Location,Xbox Live,Application deployment & Marketplace services。对于开发者来说,在WM上做一个能接收push的程序比较困难。你需要处理连接,待机等各个方面,也可以模拟微软在WM上的Direct Push技术的做法,但是无论怎么做,总是比较耗电。在WP7上集成了Notification service,所有需要push的客户端都通过微软的Push Notification service进行。微软保证了WP7以非常低的能耗,达到push的效果。Location service用于通过GPS,Wifi或者手机基站进行定位,并且通过Bing service提供各种数据,比如地图,场所等。在现在这个LBS(Location Base Service)异常流行的时期,微软对此进行了强有力的支持。WP7的Xbox Live service对于中国目前的用户来说,意义不是太大,毕竟Xbox并没有登录中国市场。WP7的程序必须通过微软的Marketplace进行安装(当然以后肯定会有破解),Marketplace可以和苹果的App Store类比。
在WP7系统上,对于开发者有两套可用的Framework:Silverlight和XNA。当然也可以利用内置的IE Engine作为BS架构的客户端。Silverlight程序是页面风格(Page Style)的,类似于Web Page,而不是传统的Win Form,这里需要和PC上的Silverlight区分一下。PC上的silverlight是内嵌在浏览器里面的插件,而Silverlight程序也就相应的运行在浏览器里面。而WP7的Silverlight程序直接是运行在CLR上的。遗憾的是在即将发布的WP7中的IE并不支持内嵌的Silverlight。XNA为开发者提供了一个高效的2D和3D游戏的.NET开发框架,里面有很多的类库可以使用,比如说它提供了按时间片驱动的游戏框架,内容管道(Content Pipeling)用来加载各种资源(2D,3D的图像等等)。值的注意的是XNA是一个Framework,并不是游戏引擎,游戏引擎还要建立在它之上,现在也有很多建立在XNA上的的游戏引擎。
微软在WP7上采用Silverlight和XNA的目的是想让程序可以在WP7,PC和Xbox跨平台运行。当然让程序直接可以在三个平台上运行是不现实的,实际意义也不是很大,毕竟三种平台的能力差别还是很大的。程序跨平台意义不是很大,但是微软这样做就可以使开发者跨平台了,这个意义非常大,因为很多Silverlight的开发者和XNA游戏的开发者都可以比较容易的去开发WP7的程序,可以显著的增加Marketplace中的程序数量。
WP7程序的开发工具目前是Visual Studio 2010和Expression Blend。WP7的SDK CTP版本很早就已经发布,里面包含WP7的Emulator,可以去微软的网站下载。微软宣布在2010年9月16号发布正式版的开发工具。提到开发工具不得不说一下WM。令人失望的是Visual Studio 2010不支持WM程序的开发。对于WM的将来目前微软也没有一个明确的态度。当然一切还是要看市场怎么样。
WP7的第一个版本在压力之下仓促完成,肯定还有很多需要改进的地方。WP7程序必须通过Marketplace进行安装,对于企业应用场景也是如此,必须单个的在Marketplace上安装。微软有明确的说法,WP7的第一个版本的目标就是个人用户。WP7不支持Sql Server Compact,它只支持最基本的文件存储和XML,你只能自己建立存储系统或利用已有的嵌入式数据库进行数据存储。WP7的第一个版本不支持自动版本检测。苹果的程序如果在app store上如果有更新的话,安装了该程序的客户端就会在程序图标上发现更新提示,WP7暂时不支持此种功能,需要客户端程序自己处理。
以上是WP7的总体上的概述和某些相关的细节,值得期待当然也有不尽如人意的方面,但无论如何还是希望WP7能成为一个成功的系统,给使用者带来良好的体验,也给微软智能手机平台开发者带回尊严。
(原创文章,如需转载请注明引用网址)