Windows Phone 7 智能型手机应用程序开发总览

14年前

摘要

Windows Phone 7 是 Microsoft 推出的全新智能型手机操作系统,不但具有新颖的用户接口,也支持整合当红的社交网站与微网志,内建搜寻功能,LBS (Location-Based Service) 适地性服务,视讯与音乐播放功能,先进而且具高度生产力的游戏开发支持,以及多点触控控制等等,是 Microsoft 逐鹿智能型手机巿场的重要先锋。在这一篇文章中我们将要为大家介绍开发 Windows Phone 7 智能型手机应用程序的基本知识与相关工具,开启开发 Windows Phone 7 应用程序的大门。

[环境安装]

欲开发 Microsoft 最新的 Windows Phone 7 智能型手机应用程序,您必须先下载并安装 Windows Phone Developer Tools 套件,再利用 Windows Phone Developer Tools 套件提供的 Visual Studio 2010 Express 进行开发 Windows Phone 7 智能型手机应用程序的工作,将开发妥的应用程序部署到 Windows Phone 仿真器进行测试,如果您想要开发智能型手机的游戏程序,也可以利用 Microsoft Expression Blend for Windows Phone 或 XNA Game Studio 发展 2D 与 3D 的游戏程序。请注意 Windows Phone Developer Tools 套件只能安装在 Windows Vista SP2 或 Windows 7 计算机,而且皆不可以是简易版 (Starter Edition)。除此之外,欲利用 Windows Phone Developer Tools 套件提供的 XNA Game Studio 4.0 发展游戏程序的程序设计师请特别注意,Windows Phone Developer Tools 套件不支持安装在任何的虚拟机上,同时计算机配备的显示适配器必须符合 DirectX 10 版定义的规格,并配备 WDDM 1.1 版的驱动程序。

Windows Phone 7 的硬件支持

Windows Phone 7 的硬件在很多地方都有别于之前的系统,包括 800 x 480 或 480 x 320 屏幕分辨率,支持多点触控,内建 A-GPS 卫星定位系统 (反应速度更快的卫星定位系统),G-Sensor (Accelerometer),电子罗盘传感器,光源传感器,以及不需要直接接触就可以侦测到附近物体的 Proximity Sensor。

Windows Phone 7 智能型手机支援最少 500 万画素的数字相机,内建 Codec 与多媒体影音播放功能,最少 256MB 的 RAM 与最少 8GB 的闪存,GPU (图形处理器),ARMv7 Cortex/Scorpion 或更佳的处理器,以及 Back、Start、Search 三个硬件按键。

Windows Phone 7 的软件支持

Microsoft 最新推出的 Windows Phone 7 智能型手机主要的要求对象不止是一般的普罗大众,还包括为数众多的企业用户,所以在软件支持方面加入了对云端服务的支持。图1所示即为 Windows Phone 7 的软件支持,上方显示的是 Runtime 和工具,下方显示的是云端相关的服务,两者构成开发 Windows Phone 7 应用程序的支持,以及应用程序执行时期的支持。

图1:Windows Phone 7 的软件支持

从图1 可以看出,开发 Windows Phone 7 应用程序的主要工具除了可以依靠传统的 Visual Studio 2010 Express for Windows Phone 以外,还可以利用 Expression Blend for Windows Phone,不管使用的是那一种工具,都支持将开发妥的应用程序部署到具仿真 GPU (图形处理器 - Graphic Processing Unit) 能力的 Windows Phone 7 仿真器进行测试。

使用 Visual Studio 2010 Express for Windows Phone 可以开发以 Silverlight Framework 为基础的应用程序,也可以开发以 XNA Framework 为基础的应用程序,而且支持应用程序侦错与封装。使用 Expression Blend for Windows Phone 只能开发以 Silverlight Framework 为基础的应用程序,允许 Silverlight 应用程序设计师以熟知的程序开发经验开发 Windows Phone 7 应用程序。

除了 Visual Studio 2010 Express for Windows Phone 与 Expression Blend for Windows Phone 以外,欲开发 Windows Phone 7 游戏程序的程序设计师还可以利用 XNA Game Studio 4.0 设计可以适用于 Microsoft Windows、Microsoft Xbox 360、Microsoft Zune、与 Windows Phone 7 的游戏程序。透过 XNA Game Studio 的帮助,Visual Studio 2010 Express for Windows Phone 就可以利用 XNA Framework 进行开发游戏程序的工作。当然,Microsoft 在提供开发 Windows Phone 7 应用程序的工具的同时,也提供了相关的说明文件,教学文件,论坛,部落格,技术网站,以及丰富的范例程序,协助程序设计师解决开发 Windows Phone 7 应用程序的种种问题。

在支持 Windows Phone 7 应用程序开发的 Framework 方面,Windows Phone 7 提供了两种 Framework,分别是 Silverlight Framework 与 XNA Framework。Silverlight Framework 是以 XAML 文件为基础的应用程序设计概念,透过事件驱动机制的帮助,提供与开发 Windows 应用程序和 Silverlight 应用程序相同的程序开发体验。XNA Framework 主要的目的则是用来支持以循环为基础的游戏程序,意即利用循环不断地更新画面显示的内容,显示流畅的游戏效果。

Silverlight Framework 和 XNA Framework 都是架构在 NET 平台上的应用程序开发架构,能够有效率地协助程序设计师发展安全的智能型手机应用程序,而且程序设计师只要稍微修改现有的 Silverlight 应用程序或 XNA 应用程序,例如修改屏幕的高度和宽度,并加入智能型手机特有的传感器相关的功能,就可以将 Silverlight 应用程序或 XNA 应用程序移植到 Windows Phone 7 上执行。

使用 Silverlight Framework 来开发 Windows Phone 7 应用程序类似设计 Silverlight 应用程序,以 Silverlight Framework 为基础的 Windows Phone 7 应用程序是由一堆的 Page (继承自 PhoneApplicationPage 类别的衍生类别) 组成的,每一个 Page 是一个扩展名为 .XAML 的文件,代表一个操作画面,程序设计师可以利用 Visual Studio 2010 Express for Windows Phone 或是 Expression Blend for Windows Phone 来设计 Page 的用户接口。XNA Framework 和 Silverlight Framework 不一样的地方在于 XNA Framework 主要的用途在支持开发游戏程序,提供 2D/3D 的动画,音效,及各种游戏相关的功能,协助有志于开发游戏程序的企业或个人发展 Windows Phone、Xbox 360、Zune 播放器、以及 Windows 7 平台的游戏程序。

在支持应用程序开发方面,程序设计师可以利用 Framework 提供的功能控制 Windows Phone 7 的多点触控屏幕,传感器,音效装置,以及麦克风等硬件,或是播放声音与影片。

在档案处理方面 Windows Phone 7 应用程序只能存取位于隔离储存区 (Isolated Storage) 中的档案,无法存取隔离储存区以外的任何档案,避免恶意软件危害到其他应用程序或 Windows Phone 7 本身的运作。

Windows Phone 7 支持的 Location 功能可以和云端服务提供的 Location 服务整合,协助应用程序查询装置的实际位置,在装置位置改变时得到通知,判断装置移动的方向和速度,或是计算两点之间的距离。

支持上述种种功能的底层是一组功能完整的 Framework,如图2 所示,位于最底层的 Common Base Class Library 提供了 Microsoft .NET 平台的基本功能,也是 Silverlight Framework 与 XNA Framework 的基础。

图2:支持开发 Windows Phone 7 应用程序的 Framework

除了内建在 Windows Phone 7 智能型手机的 Framework 以外,Windows Phone 7 应用程序也可以使用到因特网的云端服务,包括 Windows Azure、Xbox LIVE 服务、Notification 服务、Location 服务、以及其他各种第三方提供的 Web 服务和 WCF 服务,甚至是 REST 服务 (Representational State Transfer) 等先进的技术,为 Windows Phone 7 应用程序提供更丰富的功能支持。透过云端服务的帮助,能够让使用者在使用不同的计算机装置时都可以存取到共同的数据,享受相同的服务,是支持发展新一代的行动运算解决方案的重要基础。

透过云端服务的帮助,程序设计师不但能够使用到超越 Windows Phone 7 本身内建的功能以外的更多功能,而且云端服务是 24 小时不间断的服务,不会因为智能型手机的电池电力耗尽而无法取得服务。

[说明]

Xbox Live 是由微软公司所开发的多用户在线游戏与数字媒体配送服务平台,最初是 2002 年 11 月为 Xbox 游戏机平台推出的服务,之后更新成可以支持 Xbox 360 平台,Microsoft Zune 可携式媒体播放器,与 Microsoft Windows 平台,最新的版本已经可以支持 Windows Phone 7 智能型手机。透过 Xbox Live 服务的帮助,使用者不管使用的是个人计算机,Xbox/Xbox 360 游戏机,Zune 播放器,或是 Windows Phone 智能型手机,都可以利用相同的操作接口方便地取用共享的信息和服务。从发展应用程序的角度来看,Xbox Live 也是支持发展跨越多种平台与装置的游戏程序的重要服务。

Microsoft 提供的云端服务中,Notification 服务能够协助 Windows Phone 7 应用程序以订阅的方式收到欲处理的事件,节省定时询问特定的资料或状态耗费的电力。Location 服务能够利用 Wi-Fi、Cellular、和 GPS 等数据,为 Windows Phone 7 应用程序提供定位相关的功能。另外,Identity 服务能够提供身份验证功能,Feed 服务能够提供数据喂入服务,Social 服务能够提供社群服务,而 Map 服务则可以提供地图与导览服务。

Windows Phone 7 应用程序开发完成后,程序设计师可以利用 Portal 服务将开发好的应用程序发布到手机在线软件商店 (即 Marketplace),让使用者购买和使用。

在上传 Windows Phone 7 应用程序到手机在线软件商店之前,您必须先使用 Windows Live 账号登入到手机在线软件商店并进入注册,注册完成后就可以利用 Portal 服务提供的功能将开发好的应用程序上传到在线软件商店。程序设计师必须将欲上传的应用程序准备成 .xap 格式的压缩文件再进行上传,上传成功之后可以查询应用程序的认证状态,并在应用程序通过 Portal 服务的认证之后收到认证信。通过认证的应用程序将会以程序设计师订立贩卖价格发布到在线软件商店供使用者购买和下载。如果程序设计师修正应用程序的错误,为应用程序添加新功能,或是另外开发新的应用程序,都需要重复相同的应用程序认证程序,才能将新的应用程序或是修改过的应用程序发布到在线软件商店。

在线软件商店除了能够提供程序设计师进行应用程序的销售以外,还有提供 Trial API,协助程序设计师开发试用版的应用程序供用户下载试用。除此之外,在线软件商店也提供完整的销售报告,使用者的回馈意见,用户对应用程序的使用意见,或是用户反应的应用程序错误等重要信息,供程序设计师参考。

Silverlight Framework vs XNA Framework

了解了 Windows Phone 7 的硬件支持和软件支持之后,在建立 Windows Phone 7 应用程序项目的时候,程序设计师必须面对选取 Silverlight Framework 或选取 XNA Framework 做为应用程序开发基础的抉择。从图3 所示的 Framework 架构功能图可以看出,Silverlight Framework 与 XNA Framework 的底层是一组共同的服务,提供传感器相关的功能,Location 功能,Live 服务功能,网络通讯功能,XNA 的音效 API,以及 XNA 的媒体 API,而位于这一组共享服务底下的则是 .NET Compact Framework,由 .NET Compact Framework 提供基础程序开发协助,包括数据型态,XML 文件处理,LINQ 语言整合查询,Isolated Storage 隔离储存区,WCF 服务,与串行化等功能。

图3:Silverlight Framework 与 XNA Framework 的架构与功能

从图3 可以看出 Silverlight Framework 和 XNA Framework 具有相同的本质,差别在于 Silverlight Framework 和 XNA Framework 支持的是不同类型的应用程序。Silverlight Framework 支持开发一般的 Windows Phone 7 应用程序,提供程序设计师设计应用程序需要的控件以及显示功能,当然也支持动画功能供应用程序使用,而 XNA Framework 主要的用途是支持程序设计师设计游戏相关的程序,包括画面连续更新显示的协助,Content Pipeline 游戏内容处理功能,以及 2D/3D 的图形显示。

[说明]

XNA Framework 的 Content Pipeline 是一种制作游戏内容 (包括 Texture、Sprite、Mesh、Effect、Font、Music、音效、Level 设定、和角色的特质)的功能,协助程序设计师在游戏设计的阶段准备游戏程序执行时期需要用到的所有游戏内容,避免游戏程序执行的时候为了将各种不同的数据格式转换成游戏支持的内容格式而影响游戏执行的速度。

图4 所示即为 XNA 的 Content Pipeline 功能处理游戏内容的过程:

图4:XNA Content Pipeline 功能处理游戏内容的过程

由图4 的内容可以看出,不同格式的游戏内容格式经由 Importer 汇入之后,会转换成 Content DOM (Document Object Model) 能够表示的对象格式,也就是 Processor 能够处理的格式,Content DOM 表示的对象经由 Processor 处理之后,透过 Content Compiler 编译成 .XNB (XNA Binary File 的缩写) 格式的内容,以便被 Windows、Xbox 360、或 Windows Phone 7 平台中执行的游戏加载使用。

[提示]

XNA 的 Content Pipeline 功能允许程序设计师扩充其内建的功能,以处理新兴的游戏内容格式,或是产出自定义的输出格式。

表1 列有 Silverlight Framework 和 XNA Framework 的功能特性以及适用的应用程序类型:

表1:Silverlight Framework 和 XNA Framework 的功能特性以及适用的应用程序类型
Silverlight Framework 的功能特性 XNA Framework 的功能特性
适合开发以 XAML 文件为基础的事件驱动应用程序 适合开发高效能的游戏
适合应用 Silverlight 网页开发经验到 Windows Phone 7 应用程序开发 适合快速开发 2D 和 3D 的游戏
提供控件供应用程序开发使用 提供 Content Pipeline 功能,协助应用程序处理游戏程序执行时期欲使用的游戏内容
支持影音媒体播放功能  
支持提供浏览网页功能的 WebBrowser 控件,支持显示高互动地图的 Bing Map Silverlight 控件,支持开发全景式浏览功能的 Panoramic 控件,以及支持以轴心的方式来回浏览应用程序页面或数据的 Pivot 控件。  

[提示]

选择开发 Windows Phone 7 应用程序欲使用的 Framework 之后并未限制应用程序不能使用另外的 Framework 提供的功能,也就是说选择 Silverlight Framework 做为应用程序发展基础的应用程序还是能够透过参考组件的方式使用到 XNA Framework 提供的功能,反之,选择 XNA Framework 做为应用程序发展基础的应用程序也同样能够透过参考组件的方式使用到 Silverlight Framework 提供的功能。

建立 Windows Phone 7 应用程序项目

欲使用 Visual Studio 2010 Express for Windows Phone 建立 Windows Phone 7 应用程序,您可以启动 Visual Studio 2010 Express for Windows Phone,执行 [File | New Project] 功能,屏幕上就会出现如图5 的画面,于左方窗口的 [Visual C#] 项目下可以看到 Visual Studio 2010 Express for Windows Phone 支持的两种应用程序型态,分别是 Silverlight for Window Phone 和 XNA Game Studio 4.0。

图5:使用 Visual Studio 2010 Express for Windows Phone 建立项目的画面

选择 [Visual C#] 项目下的 Silverlight for Windows Phone,于中间的窗口选择 [Windows Phone Application] 项目型态,然后按下 [OK] 键,就可以建立以 Silverlight Framework 为基础的 Windows Phone 7 应用程序,项目建立成功后您就可以看到类似图6 的结果画面。请注意 [Solution Explorer] 窗口中名称为 MainPage.xaml 的档案代表应用程序的主画面,您可以直接从 [Toolbox] 窗口将控件拖曳到 MainPage.xaml 放置,设计应用程序的操作画面,而编辑应用程序操作画面的结果会反应在 MainPage.xaml 档案的原始档编辑画面中,而为操作画面上的控件撰写事件处理程序时,程序代码会被自动加入到 MainPage.xaml.cs 档案中,整体的应用程序开发经验对具备 Windows Form 应用程序开发,或是 Silverlight 应用程序开发经验的程序设计师而言应该不陌生。

图6:以 Silverlight Framework 为基础的 Windows Phone 7 应用程序的项目内容

欲使用 Visual Studio 2010 Express for Windows Phone 发展游戏的程序设计师可以在执行 [File | New Project] 功能后,选择左方窗口 [Visual C#] 项目下的 [XNA Game Studio 4.0] 项目类型,就可以从右方窗口看到数种不同的游戏项目型态,包括 Windows Phone 7 游戏相关的项目型态,Windows 平台游戏相关的项目型态,Xbox 360 游戏相关的项目型态,自定义 Content Pipeline 功能的 Content Pipeline Extension Lib 项目型态,以及用来管理游戏内容的 Empty Content Project (4.0) 项目型态,如图7 所示:

图7:Visual Studio 2010 Express for Windows Phone 支持游戏开发的项目型态

选择左方窗口 [Visual C#] 项目底下的 [XNA Game Studio 4.0] 项目类型,于中间的窗口选择 [Windows Phone Game (4.0)] 项目型态,然后按下 [OK] 键,就可以建立以 XNA Framework 为基础的 Windows Phone 7 游戏程序。项目建立成功后您可以于 [Solution Explorer] 窗口中看到两个项目,其中项目名称为 [专案名称Content] 的项目是负责管理游戏内容的项目,另外一个则是游戏程序项目。如图8 所示:

图8:以 XNA Framework 为基础的 Windows Phone 7 游戏程序项目的内容

您可以开启游戏程序项目中名称为 Game1.cs 的档案,这个档案是控制游戏的中枢,其中名称为 Update 的方法负责执行控制游戏进行的逻辑,包括管理游戏的状态和处理用户输入的数据等控制游戏的动作,而名称为 Update 的方法则负责更新游戏程序显示的内容。

欲使用 Expression Blend for Windows Mobile 开发 Windows Phone 7 应用程序的程序设计师请注意,完成 Windows Phone Developer Tools 套件安装之后,Expression Blend for Windows Mobile 工具会出现在 [Microsoft Expression] 程序群组中,您将不会在 [Microsoft Expression] 程序群组中看到名称为 Expression Blend for Windows Mobile 的工具,因为 Expression Blend for Windows Mobile 已经与 Microsoft Expression Blend 4 工具整合,欲使用 Expression Blend for Windows Mobile 开发 Windows Phone 7 应用程序,您必须启动 Microsoft Expression Blend 4,然后执行 [File | New Project] 功能,执行建立项目的动作,您就会看到如图9 的操作画面:

图9:使用 Microsoft Expression Blend 4 建立 Windows Phone 7 应用程序的操作画面

请点选左方窗口 [Project types] 项目底下的 [Windows Phone] 项目型态,就可以在右方窗口中看到 Expression Blend for Windows Mobile 支持程序设计师建立的五种 Windows Phone 应用程序项目型态,分别是:Windows Phone Application、Windows Phone Databound Application、Windows Phone Panorama Application、Windows Phone Pivot Application、与Windows Phone Control Library。请选择 [Windows Phone Application] 项目型态,然后按下 [OK] 键,执行建立项目的动作,项目建立成功后您就会看到类似图10 的画面:

图10:使用 Microsoft Expression Blend 4 建立的 Windows Phone 应用程序项目的内容

您可以利用 [Tools] 窗口提供的控件设计应用程序,利用 [Properties] 窗口设定控件的属性,设计妥应用程序的功能之后按下 F5 功能键执行制作好的应用程序,Expression Blend for Windows Mobile 就会将设计好的应用程序加载到 Windows Phone 仿真器供您测试。

[结语]

Windows Phone 7 是 Microsoft 推出的全新智能型手机操作系统,不但具有新颖的用户接口,也支持整合当红的社交网站与微网志,内建搜寻功能,LBS (Location-Based Service) 适地性服务,视讯与音乐播放功能,先进而且具高度生产力的游戏开发支持,以及多点触控控制等等,是 Microsoft 逐鹿智能型手机巿场的重要先锋。