Ⅰ.基础篇

第1章

Windows Phone7简介

1.1 背景,规范和标准

1.2 特性功能

1.3 Zune和Windows Phone7

1.4 简便高效的开发

1.5Windows Phone7模拟器

1.6 Metro界面的特点

1.7 开发语言

聊起手机,人们永远不会忘记那个风靡一时的“大哥大”,这个直板手机的前身给人们带来了便利,也带来了荣耀。后来,随着科学技术的不断进步,手机已经无人不知,无人不晓,于是人们对手机的期望就更高了。到了现在,智能手机市场竞争愈演愈烈,手机操作系统各显神通,出现了各路英豪!微软作为软件行业的领导厂商,强力推出了全新的Windows Phone7操作系统。Windows Phone7的推出,对于商业用户和普通消费群体都有极大的价值,它使得用户的生活更加高效和便捷,对市场有着很大的影响。

高效、易用、快速开发及新的商业模式都将有助于Windows Phone7迅速成为智能手机市场上真正有竞争力的选手之一。在这里我们将为大家介绍Windows Phone7的操作系统概况,开发技术和成功案例的分享,以及应用程序迁移的有关知识。

1.1 背景,规范和标准

在20世纪90年代初,微软就开始了移动设备操作系统的研发。到20世纪90年代末,Windows CE 1.0版正式发布,在当时的移动终端市场发出了有力的声音。之后微软在该产品的基础上增加了更多功能,并推出了PPC产品,人们可以在上面管理个人信息、存储数据,还可以像在PC上一样安装各种应用软件。到了21世纪最初的几年,微软又推出了Pocket PC Phone2002及SmartPhone2002。Pocket PC,Pocket PC Phone2002和SmartPhone2002是智能手机的雏形,形成了微软特有的产品线组合。但是,这三款产品中,只有Pocket PC Phone具备电话通信功能,SmartPhone搭载了当时更先进的高端硬件及触控设备。在十年左右的时间内,Windows Mobile系列获得了市场的认可,成为智能终端系统的先行者。而使用该系列的最高端的手机触控产品,也一度成为消费者引以为豪的事情。

Windows Mobile系列之所以能成为当时流行的掌上设备,来自于其现代的、时尚的设计。在当时其他具有类似能力的操作系统还只支持单任务操作,它们在Windows Mobile系列多任务系统的映衬下略显苍白。此外,无论是PPC还是Windows Mobile系列都是提供完美多媒体功能的产品,它能够提供更强悍的媒体解码与播放功能,因此PPC及Windows Mobile在移动终端上取得了出色的业绩。

从这个角度看,微软是智能手机市场领域早期的开拓者。在那个手机处理器芯片还不强大的年代,为智能手机开发的Windows CE操作系统在智能手机市场初期处于优势地位。随着硬件技术的进步,智能手机市场日趋成熟,许多公司都独立开发出各自的智能手机操作系统,这些操作系统包括苹果公司的iPhone,谷歌公司的Android,诺基亚公司的Symbian,此外还有BlackBerry,Palm等。

Windows Phone7是微软公司开发的全新的手机移动操作系统平台,该平台完全放弃了原有Windows Mobile 5/6.x的体系结构,采用全新理念设计精心打造,从开发人员开发体验到最终用户使用效果都有质的飞跃。该操作系统于2010年10月发布,同时发布首批9款采用Windows Phone7操作系统的智能手机,Windows Phone7首先由60家运营商在30个国家和地区上市,其中在欧洲和亚洲,采用Windows Phone7操作系统的手机于2010年10月21日上市,在美国上市日期为2010年11月8日。从开发的角度看,该操作系统支持的应用程序开发有两种Framework选择,分别是Silverlight Framework 与XNA Framework。Silverlight Framework 是以XAML 文件为基础的应用程序设计,通过事件驱动机制,提供与开发Windows PC应用程序和Silverlight 应用程序相同的开发体验。XNA Framework的主要目标是用来支持2D,3D游戏设计,显示流畅,酷炫的游戏效果。Windows Phone7真机图如图1.1所示。

图1.1Windows Phone7真机图

技巧:手机上的Silverlight版本是一个很接近桌面上的Silverlight 3的子集。这里也有一些Silverlight 3上并没有的针对手机的特殊功能。但是许多在桌面版的Silverlight 3上正常运行的程序也能够在手机上正常运行。另外,Silverlight和XNA使用同一个Compact Framework上的基础代码。如果这个调用没有图形用户界面交互,多数情况下它们可以在Silverlight和XNA之间共享。

从手机的发展来看,手机技术的发展方向将是 “3C融合”(computer、 communication、consumer)与“3网融合”(互联网、电信网、广电网)。具有先天优势的智能手机符合了“3C融合”和“3网融合”的发展趋势,它在手机市场中的优势地位将进一步巩固。在这样一种产业背景下,Windows Phone7操作系统登上了舞台。另外,Windows Phone7手机具有优秀的开发框架,Windows Phone7应用程序还可以广泛地调用云端服务,包括Xbox LIVE Service、Notification Service、Windows Azure、Location Service,以及其他合作伙伴厂商提供的Web服务,甚至是REST服务(Representational State Transfer)等技术。这为Windows Phone7应用程序提供了更加丰富的功能支持。通过云到端服务,一方面能够让用户在使用不同的终端时可以存取到同样的信息,获得相同的服务,另一方面这也是当前业界广泛实施的云计算解决方案的重要基础。利用数据中心强大的服务能力,开发人员能够使用突破Windows Phone7内置的功能的束缚,快速实现不同设备间一致的用户体验。

2011年1月的数据显示,仅正式推出3个月的新型操作系统Windows Phone7销售量已经突破200万部,并且销售速度越来越快,越来越被广大消费者接受。另一项重要的衡量指标,Windows Phone7Marketplace应用数量在发布7个月后,每月上线的应用数量达2000余个,目前总数已经突破15000。目前采用Windows Phone7系统的主要手机厂商包括宏达电子(HTC)、三星(SAMSUNG)、LG、戴尔(Dell)。2011年初诺基亚(Nokia)与微软签署战略合作协议,全面拥抱Windows Phone手机操作系统。

Windows Phone的Logo如图1.2所示。

图1.2Windows PhoneLogo

从图1.3中,我们可以看到Windows Phone7是一个32位操作系统,双层架构,由内核层(Kernel Space)和用户层 (User Space)组成,支持最大4GB寻址空间,换句话说,搭载该系统的设备支持最大4GB的内存,另外,该平台支持抢先式多任务,多个进程均等分享同一个CPU,高优先级任务优先使用CPU资源,这使得第三方程序不会让系统停止响应(优先级低,系统任务可以把这种进程安排为pending状态)。

图1.3Windows Phone7核心架构

Windows Phone7支持蓝牙并使用了两种不同的文件系统:系统文件 IMFDS和用户文件TexFAT。在系统锁死或文件信息丢失的情况下,手机也能够进行紧急呼叫。所有的Windows Phone7升级通过微软自有的升级系统完成,升级包通过手机联网或计算机上的Zune Software下载。

Windows Phone7的升级需要与Windows Live ID绑定,同时访问微软在线商店Marketplace需要Windows Live ID的验证,绑定信用卡后,才能获取应用程序。此外有效的Windows Live ID也是开发应用程序的必要条件,否则将无法通过工具的测试验证。

需要说明的是对于Windows Phone7,微软采用了一种和以前Windows Mobile不同的升级方式。Microsoft Update中使用微软在全球的基础服务设施,这样就可以向Windows Phone7手机用户直接分发更新,用户不用关心去哪里下载和安装它们,简单几步就可以自动完成,同时这也为手机合作伙伴(制造商和运营商)建立了一个简单、一致的更新流程。

当一个更新可用的时候系统同时会通过通知服务告诉手机用户。你可以把手机通过USB电缆连接到电脑上并启动Zune应用程序,只需简单的几步,升级包就会自动下载并实现更新,同时还会创建一个还原点,所有一切都非常自然。

以下是简单的更新步骤。

在主屏幕上,打开到应用程序(App)的列表→点击设置(setting)→点击电话更新(Phoneupdate)。这里可以对通知与自动检查更新的连接方式进行自定义设置。默认情况下,发现更新时会自动通知,如图1.4所示。

如果发现有可用的更新,想立即下载安装或者想了解更多,可以使用USB电缆将手机连接到电脑上,运行Zune软件,在Zune软件中,选择设置(setting)→手机(phone)→更新(update)。更新界面如图1.5所示。

图1.4Windows Phone7更新设置

图1.5Windows Phone7更新界面

微软对于手机界面的定制是非常严格的,OEM厂商只能做较为有限的修改,它们可以更改如系统的开机画面,系统的铃声和壁纸等。通过微软的许可,一些默认的应用可以加入到ROM中。OEM不能修改Hub界面,用户能修改定制系统的地方更为有限,局限于更改用户的名称和其他最基本设置等。

Windows Phone7操作系统规定的最低标准硬件规格如下。

▶电容式触控(Capacitive touch):支持4个或更多触控点;

▶CPU:1GHz或更高。

▶传感器:A-GPS、加速器;

▶设备必须支持800×480屏幕分辨率;

▶摄像头:500万像素或更高,Flash闪光灯,摄像头按钮;

▶硬件按钮:Windows Phone7设备至少要具备三个按钮:后退,开始,搜索;多媒体:编解码加速器;

▶内存:最低256MB RAM,最大4GB存储空间,8GB Flash或更高;

▶GPU:DirectX 9;

▶其他:加速度感应器、指南针、亮度感应、外部键盘(可选)。

无线连接制式目前支持最基本的 GSM,WCDMA及Wi-Fi连接,未来还会支持其他连接方式。

发布时,Windows Phone7只支持五种语言:英语、法语、意大利语、德语和西班牙语。Windows PhoneMarketplace 在15个国家及地区允许购买和销售应用程序:澳大利亚,奥地利,比利时,加拿大,法国,德国,中国香港,印度,爱尔兰,意大利,墨西哥,新西兰,新加坡,西班牙,中国台湾。

1.2 特性功能

1.手机屏幕

用户可以在Windows Phone7中定义开机画面。“Live tiles”(活动瓷片)更加便捷地显示最新的电话信息、视频、短信、照片、浏览器、联系人信息等。

2.人际中心

Windows Phone7的人际中心(People Hub)是用户沟通的核心。手机用户可以在联系人菜单中随时查看好友在facebook,twitter,Windows live中更新的内容与照片。此处还向用户提供Facebook与Windows Live个人页面更新功能。

3.相册中心

Windows Phone7的相册(Pictures Hub)实现了对手机本地、电脑本地存储相片与网络相册存储照片的完美支持。用户可以随时将自己手机中的照片一键发布到自己的社交主页上。用户通过Zune软件可以平滑地操作手机相片。

4.软件商店中心

Marketplace Hub软件商店中心用于搜索和下载基于Windows Phone平台的第三方应用软件。

5.游戏中心

Windows Phone7游戏中心(Games Hubs)向用户提供最新的Xbox LIVE游戏体验。

6.办公中心

Windows Phone7提供与Office Mobile,Outlook的整合,另外也支持对Office SharePoint,Office OneNote的快速访问。

7.音乐与视频中心

Windows Phone7的音乐与视频服务是手机的媒体播放中心,本地音乐、流媒体、广播及视频都可以在此获得服务。

1.3 Zune和Windows Phone7

Windows Phone7采用Zune应用程序和电脑进行数据的同步。它除了播放音乐之外,还是一个功能强大的媒体库管理工具,同时,通过Zune Marketplace用户可以方便地下载各种音乐、视频等内容。如果你有Zune Pass订阅,就可以免费下载Zune Marketplace中的所有内容。安装Zune应用程序可以访问Windows Phone7Marketplace并下载手机应用软件。目前支持Zune software 4.7(如图1.6所示)及以上版本可以和Windows Phone7连接。

图1.6 Zune和Windows Phone7

1.4 简便高效的开发

开发人员可以使用Visual Studio 2010 Express forWindows Phone(免费下载),或者Windows PhoneAdd-in for Visual Studio(需要预装Visual Studio 2010)进行开发。对于XNA-based应用程序,还要安装Blend forWindows Phone(开发Silverlight应用也需要Blend),XNA Game Studio,这也使得开发者通过一次开发就提供Windows Phone7,Xbox360及Windows三个平台的产品。此外这些免费的开发工具还包括了模拟器以及一些开发项目的模板。

Windows Phone7的软件开发工具包从2010年3月份的CTP到4月份的CTP Refresh,到7月份的Beta版本,再到2010年9月17日发布的SDK正式版,这期间进展很快。在正式版本发布的同时,还发布了第三方应用的一些内容。

正式版本的SDK中加入了Windows Phone7Metro UI最重要的两个控件:Panorama(全景视图)和Pivot(枢轴视图),以及Bing Map控件。对于Panorama和Pivot,在开发工具中已经置入了相应的工程模板向导。

1.5 Windows Phone7模拟器

目前的Windows Phone7模拟器实现了Windows Phone7的绝大部分功能,例如启动器、选择器、Windows Phone7控件(枢轴视图、全景视图、DatePicker、TimePicker、ListPicker、ApplicationBar)、XNA部分功能(Audio、触摸屏、MediaLibrary、InputScope键盘处理)、雪藏机制(TombStone)等。该模拟器不需要太高端的显卡支持,资源占用不高,运行速度快,目前的普通笔记本电脑就能运行。开发人员开发调试项目时可以充分使用Windows Phone7的模拟器来开发特性和调试,比如修改应用程序的启动页、瓷片图的标题等。

1.6 Metro界面的特点

Windows Phone7采用了全新的用户界面,称为 Metro。Metro Design应用于手机界面中有助于引导用户关注具体的内容,Metro强调界面的协调性和功能性及富有吸引力的视觉效果。Metro的界面设计不同于其他手机界面设计,让用户感觉到新奇和兴奋。

图1.7 Metro意为“地铁”,常用在地铁、飞机场和街道等公共场合,图标简洁、可识别性高

图1.7 Metro意为“地铁”,常用在地铁、飞机场和街道等公共场合,图标简洁、可识别性高(续)

这些Metro的图标很可爱,这种设计也可以让用户将更多的注意力放在内容上(这些图标发出的信息清晰),这也符合手机自身固有的特点。

1.7 开发语言

Windows Phone7 是微软手机操作系统的新起点。“3 Screens+Cloud”(即“三屏一云”)的应用平台可以创建具备“云的力量”的用户体验。利用微软提供的工具平台来开发应用程序,可以使这些应用运行在多种设备包括台式机、手机和Xbox游戏机上。

Windows Phone7程序的开发以托管程序语言为主,接口及功能都很灵活。有两种框架(方式)可以开发Windows Phone程序,一种是Silverlight,另一种是XNA Framework。Silverlight和XNA使用同一个Compact Framework上的基础代码,Silverlight用来开发Internet富交互应用程序,XNA Framework主要用于游戏开发。Windows Phone7的设计工具可以开发更好的集成用户体验。这些API很友好,可以创建简洁的应用,例如,如果你想添加一个希望有特定类型输入的TextBox,可以按照以下方式来写。

<TextBox Text="http://www.microsoft.com">
<TextBox.InputScope>
<InputScope>
<InputScopeNameNameValue="http://www.microsoft.com" />
</InputScope>
</TextBox.InputScope>
</TextBox>

Windows Phone7提供的两种UI框架可以开发的内容包括通过触摸或硬件按钮进行输入的捕获,媒体捕获和回放,可通过语言集成查询 (LINQ)访问隔离存储,获得手机功能,并获得云为基础的服务(如微软Windows Azure)。

位置服务也是一大亮点。目前的框架可以从服务提供商(全球定位系统,无线网络)获得定位信息,用户可以获得需要的位置数据的准确定位。

例如,如果你需要准确定位的位置,设备每移动100米就进行数据更新,可以这样写:

GeoCoordinateWatcher watcher=new GeoCoordinateWatcher(GeoPositionAccuracy.High);
watcher.MovementThreshold=100;
watcher.PositionChanged+=new EventHandler<GeoPositionChangedEventArgs<GeoCoordinate>>(watcher_P ositionChanged);
watcher.Start();
void watcher_PositionChanged(object sender, GeoPositionChangedEventArgs<GeoCoordinate> e)
{
  Deployment.Current.Dispatcher.BeginInvoke(()=> MyPositionChanged(e));
}
void MyPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate> e)
{
  LongitudeTextBlock.Text=e.Position.Location.Longitude.ToString("0");
  LatitudeTextBlock.Text=e.Position.Location.Latitude.ToString("0");
}

多点触摸输入也是智能手机的亮点之一。处理触摸事件可以利用XAML和托管代码完成。例如Windows Phone页面上有一个矩形:

<Canvas>
    <Rectangle
        Name="rectangle"
        Width="100" Height="300"
        Fill="Red" Stroke="Red" StrokeThickness="0.5" />
</Canvas>

ManipulateDelta处理程序如下所示:

private ScaleTransform asl;
private TransformGrouptransformGroup;
private TranslateTransform tr;
public MainPage()
{
   InitializeComponent();
   this.ManipulationDelta+=this.PhoneApplicationPage_ManipulationDelta;
   this.transformGroup=new TransformGroup();
   this. tr=new TranslateTransform();
   this. asl=new ScaleTransform();
   this.transformGroup.Children.Add(this. asl);
   this.transformGroup.Children.Add(this.tr);
   this.rectangle.RenderTransform=this.transformGroup;
}
void PhoneApplicationPage_ManipulationDelta(object senderManipulation DeltaEventArgs e)
{
    this. asl.ScaleX *=e.DeltaManipulation.Scale.X;
    this. asl.ScaleY *=e.DeltaManipulation.Scale.Y;
    // Move the rectangle.
    this.tr.X+=e.DeltaManipulation.Translation.X;
    this.tr.Y+=e.DeltaManipulation.Translation.Y;
}

技巧:目前Windows Phone7Series平台上不支持C++非托管的开发语言。

隔离存储“Isolated Storage”涉及的是在设备的文件系统中,你的程序所占据的空间。你将无法访问这个空间以外的内容(包括其他应用程序的空间或者操作系统的空间)。这样做将会给你的程序提供一个自管理的安全的沙箱,并且预防其他程序不小心(或者恶意地)侵入你的应用程序空间。

运行上面这段代码时,可以移动屏幕上的矩形。如果进行Windows Phone7开发,把应用程序部署到手机操作系统上,还可以使用手指调整大小。

此外,Windows Phone7的Runtime API集还可以让开发的用户体验与整体的用户界面主题相一致。这些API使得用户可以访问硬件功能,如传感器、视频媒体、相机、电话服务、定位服务和通知服务,详细内容我们将在未来的章节中进行具体介绍。

根据市场研究公司IDC最新的数据显示,微软Windows Phone7Marketplace发展势头良好,有望后续发力,具有可观的发展前景,预计到2015年,Windows Phone将成为全球第二大手机智能平台,Gartner也有类似的预计结果。