`
harryjudy2240
  • 浏览: 10323 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

做Windows Phone 7开发前你要清楚的事

 
阅读更多

今年春天在拉斯维加斯的MIX 10会议上我第一次知道了有关Windows Phone7的开发,我想分享我的想法。作为一名开发人员,Windows Phone7移动电话应用平台的问世无疑是令人感到非常的兴奋,因为它能让像那些熟悉C#和Silverlight开发的开发者可以马上用我现有的技能和工具的知识迅速的着手Windows Phone 7平台开发。另外,这些代码可以运行在多种平台,包括电话,网络,个人电脑和Xbox。这种代码复用的能力意味着大家的应用程序可以通过Windows Phone7的MarketPlace推送到数以百万的客户手中。现在向大家展示这个新的开发平台,以便对你开始进行Windows Phone的开发带来帮助。

  新功能和用户界面

  Windows Phone是微软手机软件一个的新起点。它的“3 screens + cloud”(即个人电脑,电话,电视加上互联网)的应用平台可以创建具备cloud-powered的用户体验。微软提供的这些功能来开发应用程序,可以使这些应用运行在多种设备,包括台式电脑,手机和Xbox游戏机上。

  Windows Phone7的设计系统主题意味着你可以设计提供高性能的集成的用户体验。这些API允许你创建直观的应用程序,例如,如果你想添加一个期望有特定类型输入的TextBox,如URL或电话号码,你可以指定的电话自动改变键盘布局,来使预期的字符方便存取。

<TextBox Text="http://www.microsoft.com">
<TextBox.InputScope>
<InputScope>
<InputScopeName NameValue="Url"/>
</InputScope>
</TextBox.InputScope>
</TextBox>

  Windows Phone7提供了两种类型的用户界面框架:Silverlight的框架(详见)可让您快速创建丰富的和高度交互性的应用,XNA框架用于高性能应用平台(二维和三维等游戏)设计的。在这两种UI框架上开发的应用包括可以通过触摸或硬件按钮进行输入的捕获,媒体捕获和回放,可透过语言集成查询(LINQ)访问独立数据存储,获得手机功能,并获得云为基础的服务(如微软Windows Azure)。

  基于Azure的云服务提供应用程序部署和更新功能,通知服务,身份服务,定位服务,地图,以及Xbox Live的整合。这些服务让最终用户在所有他们自己的设备(multiple phones, Xbox)以及其他用户之间共享他们的信息。

  位置服务是特别有趣,因为目前的框架可以从提供商(全球定位系统,无线网络,或无线网络)那里得到位置,这取决于你需要的位置数据的准确定位程度。(有关详细信息,请参见如何:从位置服务中获取数据。)

  例如,如果你需要高精确度的位置,而且设备每移动20米就需要进行数据更新时,您可以使用下面的代码:

GeoCoordinateWatcher watcher=newGeoCoordinateWatcher(GeoPositionAccuracy.High);
watcher.MovementThreshold
=20;

watcher.PositionChanged
+=
newEventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(watcher_PositionChanged);
watcher.Start();

void watcher_PositionChanged(
objectsender, 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");
}

  多点触摸输入是现代手机销售的最大点之一。这里你可以学会如何使用Manipulation Event在Windows Phone7中处理多触摸事件。假设Windows Phone页面上有一个矩形:

<Canvas>
<Rectangle
Name
="rectangle"
Width
="200"Height="200"
Fill
="Blue"Stroke="Blue"StrokeThickness="1"/>
</Canvas>

  ManipulateDelta事件处理程序如下所示:

privateTransformGroup transformGroup;
privateTranslateTransform translation;
privateScaleTransform scale;

publicMainPage()
{
InitializeComponent();
this.ManipulationDelta
+=this.PhoneApplicationPage_ManipulationDelta;

this.transformGroup
=newTransformGroup();
this.translation
=newTranslateTransform();
this.scale
=newScaleTransform();

this.transformGroup.Children.Add(this.scale);
this.transformGroup.Children.Add(this.translation);
this.rectangle.RenderTransform
=this.transformGroup;
}

void PhoneApplicationPage_ManipulationDelta(
objectsender,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;
}

  当您运行这段代码时,可以移动屏幕上的矩形。如果您的开发计算机支持多触摸或者如果你已经部署到实际设备,还可以使用两个手指调整矩形大小。

  Runtime API和硬件

  Windows Phone7的Runtime API集可以让您开发的用户体验与整体的用户界面主题相一致。这些API使您可以访问硬件功能,如传感器,照册和视频媒体,相机,电话服务,定位服务和通知服务。

  Windows Phone7的硬件规格规定的最低硬件要求,设备制造商必须支持。例如,所有手机都提供一个500万像素带闪光灯的摄像头,4个或更多的接触点,以及DirectX 9硬件加速。设备必须支持屏幕分辨率为480 × 320或800 × 480。在硬件规格向你保证,关键硬件功能将提供,在所有的设备以一个一致的方式通过手机的Runtime API。例如,这就是你能获得的加速度传感器,并显示有关手机的方向信息:

AccelerometerSensor accelerometer=AccelerometerSensor.Default;
accelerometer.ReadingChanged
+=
newEventHandler<AccelerometerReadingAsyncEventArgs>(accelerometer_ReadingChanged);
accelerometer.Start();

void accelerometer_ReadingChanged(
objectsender, 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 Phone7应用,您将需要Windows Phone开发工具。作为开发工具的一部分,你可以使用Visual Studio 2010 Express for Windows Phone或者Windows Phone Add-in for Visual Studio如果您已经有Visual Studio 2010的话。如果你想写XNA-based应用程序,您还需要Expression Blend4,XNA Game Studio。(了解更多关于为Windows Phone创建第一个XNA-based应用)

  这些工具可以从微软网站获取。此外,您可以下载免费的开发工具,以便得到设备仿真器和Visual Studio项目模板。

  http://www.microsoft.com/downloads/details.aspx?FamilyID=2338b5d1-79d8-46af-b828-380b0f854203&displaylang=en

  设计和开发你的应用程序将作为您的Silverlight应用程序。然后在模拟器上测试,或部署到测试设备上。

  当您完成您的应用程序时,你将会把这个项目打包到.xap应用程序包文件中。它包含应用程序运行所需要的所有的东西:应用程序本身、描述了应用程序如何使用目标电话设备的元数据,启动画面出现时的tile,应用程序图标以及授权条款。

  获取你的应用程序

  在您的应用程序可以提供给他人之前,你需要注册开发者门户服务。您需要使用你的Windows Live ID进行登录和确立你为WindowsPhone平台开发应用程序的开发者身份。在你的应用程序能够在Marketplace上可以被获取之前,你将会提供一个证书被用来标志你的应用,他们是在Windows电话市场上提供的。开发者门户网站还提供管理,计费和报告工具,让您可以找出有哪些用户在使用您的应用程序,同时可以知道你可以赚到多少钱。

  一旦你已经打包并签署您的应用程序,您提交给开发者门户网站认证。这一过程将验证申请符合目标市场的法律,法规,不滥用手机上存储的用户信息,并普遍表现良好(例如,不过度使用CPU周期,不消耗电池,不干预电话的核心功能如打电话的能力)。

  关于如何获取报酬的问题是每个开发者都非常关心的问题。你可以选择开发免费,付费,或“freemium”(先试后买)的应用程序。当您发布您的应用程序时你可以决定在开发门户网站上的收费结构。终端用户可以通过信用卡支付或通过移动运营商结算。应用程序开发人员占到收入的70%。

  通过Marketplace你可以部署应用程序更新,其他的将自动向用户推送。当需要更新应用时,用户将会被通知并询问他们是否要更新他们设备上的应用。

  试试看

  在Windows Phone7平台上进行应用程序开发看起来是一件令人兴奋的事。因为现在你可以使用你现有的技能和工具,但你也可以得到创新,而且从你的应用程序开发中赚到一些钱。微软已经提供了一个环境,从编码到使您的应用程序可以销售,而且可以跟踪你的应用程序被用户使用的情况,而且还提供更新。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics