技术开发 频道

关于Windows Phone 7平台的三个看点

  【IT168评论】移动应用程序开发者如果能够理解Windows Phone 7(WP7)软件开发平台的体系结构,将大大有利于移动应用程序的开发。尤其是开发者需要理解整个应用程序框架,以及这个框架的能力、局限性及扩展性。并且,了解一些常见开发任务的实现技术方法对于开发者而言也是十分重要的。此外,对于已经是Android或者是iPhone应用程序的开发者而言,了解这个新的WP7操作系统的整体框架也是十分必要的。

Windows手机操作系统发展简史
▲Windows Phone界面

  本文将概括介绍微软最新的手机操作系统WP7,Windows Mobile(微软手机操作系统)的历史,WP7所需要的硬件平台,最新的Windows CE(Windows Compact Edition)内核,应用程序框架,应用程序商店,以及WP7的能力和局限性。

  Windows Phone 7概况

  本节将会介绍WP7的一些基本情况,包括Windows Mobile的历史,WP7的设计理念和它的体系结构,以及新的应用程序框架和应用程序商店。

  Windows手机操作系统发展简史

  微软的手机操作系统起源于2000年的Pocket PC 2000。这款操作系统的设计目标为个人数码助手(PDA)设备,没有任何移动电话功能。它构建在Windows CE 3.0内核之上,支持多处理器的架构,包括Acorn RISC Machine(ARM)架构,无内部互锁流水级的微处理器(Microprocessor without interlocked piped stages)和x86。其中,RICS[1]表示精简指令集计算机(Reduced Instruction Set Computer)。其基本原理仍然是在一个移动设备上提供类似桌面操作系统的体验,通过手写笔来模拟电脑上的鼠标,并对手写笔在电阻式触摸屏上的点击做出响应。

  在2003年,微软发布了Windows Mobile 2003和Windows Mobile 2003第二版,开始提供手机通话的相关功能。这次发布也包含了一些面向企业用户的特征,例如,对口袋版的Outlook(微软的邮件客户端)、虚拟专用网络(VPN)的支持,以及包括了ActiveSync软件(一种基于Windows Mobile的设备的同步软件)。

  紧接着,在2005年,微软又发布了一个主要的更新:Windows Mobile 5。Windows Mobile 5开始允许程序开发人员开发一些基于.NET Compact Framework(微软.NET框架精简版)的管理程序。此外,它也提供了一种直推技术。通过这种技术,当微软Exchange(微软的一种邮件服务系统)上收到新邮件时,可以推送到用户移动设备上的口袋版Outlook上。在图形用户界面上,Windows Mobile 5与其之前的版本本质上是类似的。

  在2007年以及2008年,微软又发布了Windows Mobile 6和Windows Mobile 6.1。这两个版本实际上都是构建在Windows CE 5.2内核之上的。其主要关注点仍然是增加更多的功能特性,而不是在改进其用户界面上。

  可以这么说,在Windows Mobile 6.1及其之前的所有Windows Mobile系列手机操作系统中,微软一直是试图为企业用户构建一条强大的手机产品生产线。它的主要竞争对手是加拿大的RIM公司(黑莓手机制造商)。从2006年到2007年初期,这样的发展策略被证明是十分成功的。在这段期间内,Windows Mobile系统在手机市场上的占有率超过了20%,有大约1200万部安装Windows Mobile操作系统的手机进入了市场。

  然而,在2007年6月,苹果的iPhone发布了。iPhone的“Touching is believing(触控是信仰)”的用户体验,在那个时候与其他的手机相比,毋庸置疑是一个极大的创新。那独特的多点触控,手指易操作的用户界面改变了公众关于手机是为职业人士设计的观点。于是,在接下来的数年里,iPhone的市场占有率逐年迅速上升。

  开始时,微软并没有意识到手机市场正经历着一场大变革。因此,它失去了在这场变革中快速采取相应策略来适应一般消费者观念变化的最好时机。在2007年及2008年,微软仍然试图继续开发Windows Mobile 7手机操作系统。这款系统从用户界面角度来看,仍然是Windows Mobile 6 的延续,只是加入了一些多点触控的支持。在这段期间内,微软发布了Windows Mobile 6.5。在这个版本的手机操作系统中,只是加入了一些微小的更新,例如手指易操作的瓷片(tiles)和菜单。毫无意外,它并没有给市场留下什么深刻的印象。

  在2008年,Google(谷歌)携带它的Android(安卓)系统进入了手机市场。从那时起,Android市场占有率连年快速增长。部分原因是微软在那三年里(从Windows Mobile 6.1发布之后)并没有发布什么大的更新。Google也与几个主要的手机制造商、芯片供应商和移动运营商之间形成了开放手机联盟(OHA),来共同创建Android开放平台。由于微软仍然只是试图构建Windows Mobile 7,手机制造商们逐步转向了Google Android平台。

  此后,微软终于感觉到了来自苹果公司和Google的压力,开始重组它的移动商业部门,重新审视其构建Windows Mobile 7的努力,并且从头开始构建一个全新的Windows Phone 7(WP7)[2]。WP7启用了一种全新的“瓷片”界面,新的应用程序商店,基于Silverlight和XNA的应用程序框架,以及对于Xbox LIVE(微软为其游戏主机XBOX所提供的网络服务)和Zune(微软的可携式媒体播放器)的集成。这些努力最终带来了回报。WP7于2010年10月在欧洲、新加坡和澳大利亚上市,于2010年11月在美国和加拿大上市。在上市的前6个星期里,微软就出货了150万部WP7的移动设备。

  虽然目前预测WP7未来的市场占有率仍然有些为时过早,不过与iOS和Android相比,WP7在许多方面都是少有的。因此,WP7也为手机用户提供了一种新的选择。并且,可以预计,微软在未来几年将持续其在移动技术领域的投资,并且持续改进Windows Phone系列。因此,在未来几年内,这三大主要的手机操作系统之间的竞争将会变得十分有趣。

${PageNumber}

  Windows Phone 7的设计理念

  WP7是微软在其移动战略上的最新成果,它改变了过去以企业用户为中心的设计理念,转向了以消费者为中心进行移动产品的设计。正如微软移动与嵌入式业务部门总裁安迪·李斯(Andy Lees)在一次访谈中所说:

Windows Phone 7的设计理念
▲Windows Phone的设计

  我们做了一个重大的决定,重新审视我们所做的一切,因为移动产业正在经历着一个重大的转折……过去几年的技术发展使得我们可以做许多过去无法完成的事情。但是这一切中最重要的一点是,我们以消费者为中心将所有资源进行重新整合。

  www.microsoft.com/presspass/features/2010/feb10/02-15windowsphone7.mspx

  下面的各项展示了微软在开发WP7过程中所希望达到的总体目标。

  ? 专注于消费者:微软重新审视了它的竞争对手们在移动用户体验方面的贡献,进而理解消费者所希望得到的操作体验。例如,相对于手写笔而言,消费者们更倾向于使用手指直接触控手机屏幕。因此,开发者们必须创建一个对于手指而言易操作的图形用户界面,通过一些扩大的操作组件来支持点击(tapping,即用手指触摸显示屏表面)、拖拽(dragging,用手指压住显示屏上的一个项目,然后在设备表面上进行移动)、轻弹(flicking,简要地说就是刷动屏幕表面)、缩小(pinching,用两个指头压住屏幕表面,并且使它们移动得更近)、放大(spreading,用两个指头压住屏幕表面,并且使它们移动得更远)等。

  此外,WP7的应用程序还可以提供其他一些独特的用户体验,例如,全景视图(Panorama)和枢轴视图(Pivots)。这两个独特的视图将在第4章中进行讨论。另外一个专注于消费者的设计是微软将WP7与微软其他的产品进行无缝集成,例如Zune多媒体服务、Xbox LIVE(在线Xbox服务),Office Live(在线Office套装)以及Bing(微软必应)搜索服务等。这些集成使得消费者可以在不同设备的不同屏幕上享受这些服务。

  ? 生命在于运动(Life in Motion):WP7用户体验背后的设计理念是“生命在于运动(life in motion)”。WP7希望能够赶上用户生活中发生的每一件事情,并且将它们毫不费力地集成起来。例如,在主屏幕上的活动瓷片(live tiles)会实时更新用户的联系人、日程表、游戏、消息和通话记录。这个快速的概览能够帮助用户了解许多必要的信息而无须点击任何项目。并且如果用户点击其中的任一瓷片,WP7会显示一个中心列表(Hub)页面,上面汇集了来自各个应用程序、Web服务和其他数据源的与此选择类型相关的事件。

  ? 一致性体验(Consistent experience):WP7能够保证用户在各种设备上享受一致的应用程序和服务体验。任何第三方硬件或软件创新必须遵循一个统一的模型以避免分化。

  ? 硬件:微软和它的合作伙伴定义了一系列规范集合,所有的WP7设备只能使用固定的几种芯片。这些芯片之所以非常重要,是因为高通(一家著名的手机芯片制造商)和微软一同合作开发了这些主板支持包(BSPs,一些驱动和硬件配置)。在Windows Mobile时代,原始设备制造商(OEMs)能够选择任何芯片。因此,使Windows Mobile操作系统能够支持所有芯片成为微软的一个重要的挑战。而现在,通过统一硬件规格,微软将这些主板支持包提供给原始设备制造商们——他们只需要选择一些外设并且开发相应的驱动即可。这种统一的硬件设计实际上对于开发者们是有利的:他们不再需要考虑不同的CPU运行速度、内存容量或者是屏幕大小问题。因为这些在所有WP7的设备上都是相同的。

  ? 软件:所有应用程序都必须是基于Silverlight或者是XNA的,并且是基于相同的.NET框架下的应用程序接口(APIs)集合。所有第三方应用程序必须通过微软的软件商店认证(Marketplace certification)才能在用户的设备上进行安装。

${PageNumber}

  Windows Phone 7的体系结构

  WP7操作系统是基于微软嵌入式操作系统Windows CE 6的一个派生系统,而所有Windows Mobile 6.x系列则是基于Windows CE 5的。Windows CE提供了一个32位的内核,它是为嵌入式设备而设计的。它提供了一个系统服务的集合,包括内存管理、网络和连接管理、输入/输出、以及图形化。另一方面,Windows Phone系列的操作系统是构建在CE内核之上的,并且又添加了许多特定的系统服务以及一个针对移动手机的应用程序框架。

  下面列出了CE 6和CE 5的一些主要不同点:

  ? 进程寻址空间从32MB提高到了2GB。在Windows CE 5上,每个进程只能占用32MB的地址空间。而Windows CE 6将进程的存储容量增加到了2GB。

  ? 进程的最大数量从32增加到了3万多个(32768个)。这对于应用程序开发者而言是非常重要的。在Windows Mobile 6.x系统上,在同一时间最多只能有32个进程处于活动状态。如果用户这时想要启动另一个进程,系统将会拒绝。WP7消除了这个最多32个进程的限制。

  ? 用户模式和内核模式的设备驱动都是允许的。

  ? device.exe、filesys.exe和GWES.exe被移入到了内核模式,用来改进设备性能。

  从总体上看,WP7操作系统要更加安全和稳定,并且能够提供更好的性能。

  图1-1展示了WP7操作系统的系统架构。如图中所示,此操作系统包括了3层(自下而上):硬件层、内核空间和用户空间。所有.NET框架下的应用程序在用户空间中运行。而操作系统内核、驱动和系统服务在内核空间中执行。与Windows Mobile 6.5的系统架构比较,在Windows Mobile 6.5上你可以开发原生应用程序(native application)和托管应用程序(managed application),而在WP7上你只能够开发托管应用程序。并且,所有托管应用程序只能够使用Silverlight、XAN和手机应用程序编程接口所提供的一些特性,其他任何资源在应用程序内部都是无法访问的。

  应用程序框架

  移动应用程序开发者们或许主要关心的是应用程序框架上的变化。当设计Windows Mobile 6.x系列的应用程序时,开发者们能够使用Win32的应用程序编程接口来编写C/C++的代码,或者通过C#或Visual Basic .NET来编程托管代码。这些托管代码能够在.NET框架精简版上运行。而在WP7上,所有应用程序都是托管应用程序,并且微软提供了两种应用程序框架:Silverlight和XNA,如图1-2所示(来源:http://msdn.microsoft.com/en-us/library/ ff402531(v=vs.92).aspx)。微软建议使用Silverlight来开发基于事件的应用程序,使用XNA来开发游戏。

Windows Phone 7的体系结构
图1-1 WP7体系结构

Windows Phone 7的体系结构
图1-2 WP7应用程序框架

  下面提供了一些上述两种开发框架的细节(包括开发工具)。

  ? Silverlight:那些在桌面系统中熟悉使用Silverlight编程技术的人会发现在WP7上开发应用程序将是非常简单的事情。Silverlight提供了一个基于.NET的运行环境,它包括非常丰富的用户界面、多媒体,以及动画制作。此外,Silverlight还能在桌面、网络服务器以及移动设备上提供网络访问。你能够使用扩展的应用程序标记语言(XAML,发音为“zammel”)来定义用户接口,以及使用.NET语言(如C#和Visual Basic .NET)来实现程序逻辑。WP7上的Silverlight提供了.NET框架所有应用程序编程接口的一个子集,并且添加了一些针对手机的特定编程接口。所有这些不同点都已经集成到了Visual Studio开发工具中。为了更容易地设计一个丰富的用户界面,微软还为用户界面设计者们提供了一个名为Expression Blend[4]的工具。

  ? XNA:XNA是另外一个基于.NET的运行环境,它主要应用在微软的Xbox、Windows操作系统和WP7上。微软对XNA的运行效率进行了优化,还为游戏开发扩展了一些类和运行库。XNA为游戏开发人员提供了一个基础平台,使得他们能够创建跨平台的游戏(只要这些平台上能够运行XNA运行环境)。你能够使用微软所提供的免费工具XNA Game Studio Express以及C#来开发WP7上基于XNA的程序。

  ? 开发工具:微软为程序开发人员提供了免费版的Visual Studio 2010 Express for Windows Phone(针对Windows Phone的Visual Studio 2010速成版,包含Visual Studio基本开发功能)和Expression Blend来开发WP7的应用程序。开发者还可以利用Visual Studio 2010 Express中的内建模拟器来调试和测试一个应用程序。如果你想直接使用手机设备来开发应用程序,那么还需要在你的个人电脑上安装一个Zune的客户端。

  Silverlight:微软公司开发的一种用于创建面向网络、桌面和移动设备的在线或离线应用程序的开发平台,它能够提供丰富的、交互式的用户体验和多媒体、三维图形、动画、跨平台等特性。

  Expression Blend:一个全新的、全功能的职业设计工具,用于创造基于Microsoft Windows平台的丰富、复杂的应用界面。

  XNA中的X表示能够在Windows Xbox和合作伙伴之间达到跨平台的强大的软件工具,N表示“下一代(Next-generation)”,A表示“架构(Architecture)”。XNA是基于DirectX的游戏开发环境,是微软对于Managed DirectX的修正及扩充版本。

Windows Phone 7的体系结构
▲图书封面

0
相关文章