开始为 Windows Phone 7 开发需要了解什么






4.80/5 (5投票s)
了解如何开始为新的 Windows Phone 7 编写应用程序。此外,还将学习如何通过 Windows Phone 7 Marketplace 出售和更新您的应用程序。获取演示如何更改键盘布局、包含位置数据和支持多点触控的代码示例。立即点击!
我是在今年春天拉斯维加斯举行的 MIX 10 会议上首次了解到 Windows Phone 7 开发的,我想分享一下我的看法。作为一名开发人员,我对 Windows Phone 7 移动应用程序平台感到兴奋,因为它使像我这样的 C# 和 Silverlight 开发人员能够快速上手并开始构建 Windows Phone 7 应用程序。我可以立即运用我现有的技能和工具知识。此外,我的代码可以在包括手机、Web、PC 和 Xbox 在内的多个平台上运行。这种代码重用能力意味着我的应用程序可以通过 Windows Phone 7 Marketplace 触达数百万客户。让我带您了解这个新开发平台中我认为将有助于您入门的方面。
新功能和用户界面
Windows Phone 是微软手机软件的新起点。其“3 屏 + 云”(即 PC、手机、电视加上 Internet)应用程序平台可让您创建云驱动的用户体验。微软提供了开发可在包括桌面计算机、手机和 Xbox 主机在内的各种设备上运行的应用程序的能力。
Windows 7 Phone 的设计系统主题意味着您可以设计提供高性能的集成式用户体验。编程 API 可让您创建直观的应用程序。例如,如果您想添加一个期望特定类型输入的文本框,如 URL 或电话号码,您可以指定手机自动更改键盘布局,以便轻松访问预期字符。
<TextBox Text="http://www.microsoft.com"> <TextBox.InputScope> <InputScope> <InputScopeName NameValue="Url" /> </InputScope> </TextBox.InputScope> </TextBox>
Windows Phone 7 提供两种类型的 UI 框架:Silverlight 框架(详情请参见)可让您快速创建丰富且高度交互的应用程序,而 XNA 框架则是 2D 和 3D 游戏等高性能应用程序的平台。在任一 UI 框架中开发的应用程序都可以包括通过触摸或硬件按钮捕获输入、媒体捕获和播放、通过语言集成查询 (LINQ) 访问隔离数据存储、访问手机功能以及访问基于云的服务(如 Microsoft Windows Azure)。
基于 Azure 的云服务提供应用程序部署和更新功能、通知服务、身份服务、位置服务、地图和 Xbox Live 集成。正是这些服务让最终用户能够在他们自己的所有设备(多部手机、Xbox 等)以及与其他用户之间共享他们的信息。
位置服务尤其有趣,因为框架会根据您对位置数据的精度需求,从当前位置提供商(GPS、WiFi 或无线网络)获取位置。(有关更多信息,请参阅 如何:从位置服务获取数据。)
例如,如果您需要高精度位置数据,并且在设备移动 20 米时就更新一次,您可以使用以下代码
GeoCoordinateWatcher watcher = new GeoCoordinateWatcher(GeoPositionAccuracy.High); watcher.MovementThreshold = 20; watcher.PositionChanged += new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(watcher_PositionChanged); watcher.Start(); void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e) { Deployment.Current.Dispatcher.BeginInvoke(() => MyPositionChanged(e)); } void MyPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate> e) { LatitudeTextBlock.Text = e.Position.Location.Latitude.ToString("0.000"); LongitudeTextBlock.Text = e.Position.Location.Longitude.ToString("0.000"); }
多点触控输入是现代手机最大的卖点之一。以下是在 Windows Phone 7 中使用 Manipulation Events 处理多点触控事件的方法。假设您有一个带有单个矩形的普通 Windows Phone 页面
<Canvas> <Rectangle Name="rectangle" Width="200" Height="200" Fill="Blue" Stroke="Blue" StrokeThickness="1" /> </Canvas>
然后,您将如下所示连接 ManipulateDelta 事件处理程序
private TransformGroup transformGroup; private TranslateTransform translation; private ScaleTransform scale; public MainPage() { InitializeComponent(); this.ManipulationDelta += this.PhoneApplicationPage_ManipulationDelta; this.transformGroup = new TransformGroup(); this.translation = new TranslateTransform(); this.scale = new ScaleTransform(); this.transformGroup.Children.Add(this.scale); this.transformGroup.Children.Add(this.translation); this.rectangle.RenderTransform = this.transformGroup; } void PhoneApplicationPage_ManipulationDelta(object sender, ManipulationDeltaEventArgs e) { // Scale the rectangle. this.scale.ScaleX *= e.DeltaManipulation.Scale.X; this.scale.ScaleY *= e.DeltaManipulation.Scale.Y; // Move the rectangle. this.translation.X += e.DeltaManipulation.Translation.X; this.translation.Y += e.DeltaManipulation.Translation.Y; }
当您运行此代码时,您可以在屏幕上移动矩形。如果您的开发计算机支持多点触控,或者您将其部署到实际设备上,您还可以用两根手指调整矩形的大小。
运行时 API 和硬件
Windows Phone 7 的运行时 API 集允许您开发与整体 UI 主题一致的用户体验。这些 API 使您能够访问传感器、照片和视频媒体、摄像头、电话服务、位置服务和通知服务等硬件功能。
Windows Phone 7 的硬件规范规定了设备制造商必须支持的最低硬件要求。例如,所有手机都必须提供带闪光灯的 5MP 摄像头、四个或更多触点以及 DirectX 9 硬件加速。设备必须支持 480 x 320 或 800 x 480 的屏幕分辨率。硬件规范确保您能够通过手机的运行时 API 以一致的方式在所有设备上访问关键硬件功能。例如,这是您如何访问加速度计传感器(点击此处获取更多信息 Windows Phone 7 加速度计概述)并显示有关手机方向的信息
AccelerometerSensor accelerometer = AccelerometerSensor.Default; accelerometer.ReadingChanged += new EventHandler<AccelerometerReadingAsyncEventArgs>(accelerometer_ReadingChanged); accelerometer.Start(); void accelerometer_ReadingChanged(object sender, AccelerometerReadingAsyncEventArgs e) { Deployment.Current.Dispatcher.BeginInvoke(() => MyReadingChanged(e)); } void MyReadingChanged(AccelerometerReadingAsyncEventArgs e) { statusTextBlock.Text = accelerometer.State.ToString(); XTextBlock.Text = e.Value.Value.X.ToString("0.00"); YTextBlock.Text = e.Value.Value.Y.ToString("0.00"); ZTextBlock.Text = e.Value.Value.Z.ToString("0.00"); }
有关加速度计的详细信息,您可以点击此处:Windows Phone 加速度计概述
入门
要开始开发 Windows Phone 7 应用程序,您需要 Windows Phone Developer Tools。作为该工具的一部分,您将获得 Visual Studio 2010 Express for Windows Phone,或者如果您已有 Visual Studio 2010,则可以获得 Windows Phone Add-in for Visual Studio。如果您想编写基于 XNA 的应用程序,您还需要 Expression Blend 4 和 XNA Game Studio。(有关更多信息,请参阅 为 Windows Phone 创建您的第一个 XNA 应用程序。)
这些工具可以通过 Microsoft 网站上的此链接获得。此外,您还可以下载免费的开发人员工具,它们提供设备模拟器和 Visual Studio 项目模板。
像开发任何 Silverlight 应用程序一样设计和开发您的应用程序。然后,在模拟器上进行测试,或将其部署到测试设备上。
完成应用程序后,将其打包成 .xap 应用程序包文件。它包含应用程序运行所需的一切——应用程序本身、描述应用程序如何使用目标手机设备的元数据、出现在开始屏幕上的磁贴、应用程序图标以及许可条款。
使您的应用程序可用
在您能够让他人使用您的应用程序之前,您需要注册 Developer Portal Services。您需要使用您的 Windows Live ID 登录,并确立您作为 Windows Phone 应用程序开发人员的身份。您需要提供一个证书,该证书将在应用程序发布到 Windows Phone 市场之前用于对应用程序进行签名。Developer Portal 还提供了管理、账单和报告工具,以便您可以了解应用程序用户的使用情况以及您赚了多少钱。
一旦您打包并签署了您的应用程序,您就会将其提交到 Developer Portal 进行认证。此过程将验证应用程序是否符合目标市场的法律法规,是否不会滥用存储在手机上的用户信息,并且是否普遍运行良好(例如,不会过度消耗 CPU 周期并耗尽电池,不会干扰手机设备的核心功能,如拨打电话的能力)。
您如何获得报酬?您可以选择创建免费、付费或“免费增值”(先试后买)的应用程序。您在开发者门户上发布应用程序时,可以确定费用结构。最终用户可以通过信用卡或通过移动运营商账单进行支付。应用程序开发人员保留 70% 的收入。
通过 Marketplace,您可以部署应用程序更新,这些更新将自动推送到您的用户。当有更新可用时,会通知用户并询问他们是否要将更新应用到他们的设备上。
试试看
Windows Phone 7 看起来是一个激动人心的开发平台。您可以利用您已有的技能和工具,同时还可以发挥创意,通过您开发的应用程序赚钱。微软提供了一个环境,可以引导您完成从编码到使您的应用程序可供购买,再到跟踪使用情况和提供更新的整个过程。
有关如何为 Windows Phone 7 开发的详细信息,微软提供了大量资源。要开始,请查看下面列出的资源。