欢迎使用Windows Phone SDK 8.0。Windows Phone 8为开发人员提供了一些新特性和升级特性。包括本地代码的游戏开发,手机版的Windows Runtime,以及新的内核。咱们把这些介绍都集中在一块儿,以方便您熟悉Windows Phone 8和Windows Phone SDK 8.0的这些特性。咱们对您将会在SDK中用到的这些工具很是得满意。这些工具能够帮助您建立Windows Phone的应用,并使这些应用的用户们更加喜好Windows Phone。在这里,咱们将简单地介绍您在应用开发中可能用到的特性,并给出了进行深刻了解的连接。 git
本主题包含了如下章节: web
- SDK工具
- 磁贴和通知
- 锁屏画面
- 地图与导航
- 定位
- 语音
- 钱包
- 多分辨率
- Direct3D和游戏
- 应用模式
- 摄像头和照片
- 多媒体
- 用户界面
- 通讯
- 数据和可扩展性
- 商店
- 商务用途
- 全球化定位
- 应用的清单文件
- 应用的兼容性
- CLR
- 相关主题 shell
SDK工具
Windows Phone SDK 8.0包含了如下这些新的工具和特性,用于应用的开发,调试和测试。 编程
开发工具和特性 windows
Visual Studio包含了如下这些新特性。 浏览器
- Direct3D应用的项目模板。更多项目模板相关的内容,参见How to create a new app project from a template for Windows Phone。更多Direct3D应用的信息,参见本主题的Direct3D and games一节。 安全
- 增强了项目模板对定位的支持。项目模板如今内置了对定位的支持。如今能够很方便的进行定位应用的开发,而不须要进行若干步的设置。更多信息参见How to build a localized app for Windows Phone. 服务器
- 调试托管和本地代码。在Project Designer中的Debug页里,您能够选择调试应用的托管代码部分或是本地代码部分。若是应用与后台代理进行了通讯,您还能够选择是否独立地调试后台代码部分。您也能够在一个调试会话里面,同时调试应用和后台代理。 网络
- 调试经过磁贴或通知启动的应用。如今,针对Windows Phone 8的应用,不只能够直接启动调试,也能够在经过磁贴或是推送通知来启动调试。当您在Windows Phone 8模拟器或是手机上启动调试的时候,点击Back按钮退出应用,此时调试工具依然会保持链接。当您经过磁贴或推送通知再次启动应用的时候,能够继续进行调试。更多信息,参见Debugging apps for Windows Phone. app
- 对XNA Framework的支持。您不能针对Windows Phone 8开发新的XNA Framework应用了。更多信息,参见XNA Framework and Windows Phone 8 development.
Windows Phone8模拟器包含如下新特性。
- 支持多种分辨率。模拟器有多个版本支持Windows Phone 8所支持的全部三种分辨率。更多信息,参见Multi-resolution apps for Windows Phone 8.
- Windows Phone8模拟器的系统需求。Windows Phone 8模拟器的运行基于Windows Hyper-V,因此它的硬件,软件和配置需求也与Hyper-V相同。若是您的电脑不支持Hyper-V,您依然能够直接在Windows Phone 8手机上进行调试。更多信息,参见System requirements for Windows Phone Emulator.
- Windows Phone 8模拟器所使用的网络。Windows Phone OS 7.1模拟器直接使用开发环境所在计算机的网络。可是,Windows Phone 8模拟器将自身设置为网络上的一个独立设备。关于这个改变所形成影响的更多信息,参见 Windows Phone Emulator.
清单的设计工具。如今能够经过友好的用户界面来添加,移除和修改应用清单文件中的元素了。更多信息,参见How to modify the app manifest file for Windows Phone.
独立存储的资源管理器如今有了新的命令行选项,用于指定目标设备。更多信息,参见How to use the Isolated Storage Explorer tool for Windows Phone.
测试工具和特性
测试应用的本地代码版本。您能够测试应用的本地代码版本,这样获得的性能体验就会和用户的最终体验一致。更多信息,参见 How to test the retail version of your app for Windows Phone 8.
应用监控和性能分析。Windows Phone Application Analysis (原名 Windows Phone Performance Analysis)如今包含了应用监控,并加入了应用性能分析。这个应用监控特性,能够捕捉质量观点上的那些关键性指标,而后根据这些指标对应用进行评 估。这个指导信息,能够帮助您在开发过程当中保证应用的品质与性能,而没必要等待开发完成以后再来进行这个工做。更多信息,参见App monitoring for Windows Phone.
仿真面板。您可使用Windows Phone 8的仿真面板,来肯定您的应用如何应对真实的使用环境。经过这些信息,您能够调整应用,以确保其在各类显示环境中都能表现良好,从而知足用户的须要。
您能够经过仿真面板来测试应用在面对下面这些状况时将会做出的响应:
- 网速很慢或信号不足
- 中断,好比收到一个提醒或是通知
- 锁屏
更多信息,参见Simulation Dashboard for Windows Phone.
截屏。如今,您能够经过一组按键组合来进行真机上的应用截屏了。更多信息参见How to create screenshots for Windows Phone Store.
Store Test Kit。原来的Marketplace Test Kit已经更名为Store Test Kit。这个功能验证测试对面向Windows Phone 8的应用是无效的。
磁贴和通知
Windows Phone 8包含了一些新的磁贴尺寸和磁贴模板,能够经过如下类进行深刻了解:
- FlipTileData
- CycleTileData
- IconicTileData
更多关于Windows Phone 8新磁贴的内容参见Tiles for Windows Phone.
锁屏界面
在Windows Phone 8中,用户可使用应用提供的图片做为锁屏界面的背景,同时也能选择某些应用在锁屏界面的通知区域中进行显示。更多关于Windows Phone 8的新锁屏信息,参见 Lock screen notifications for Windows Phone 8 和Lock screen background for Windows Phone 8.
地图和导航
地图
Windows Phone 8包含了新的地图控件,能够经过如下命名空间进行使用:
- Microsoft.Phone.Maps
- Microsoft.Phone.Maps.Controls
- Microsoft.Phone.Maps.Services
更多地图控件的信息,参见Maps and navigation for Windows Phone 8.
导航
在Windows Phone 8中,您可使用基于ms-drive-to或ms-walk-to这种Uri命名结构的导航协议来编写应用,请求驾驶或步行方向,或是处理前面这样的请求。更多信息,参见How to request or provide directions for Windows Phone 8.
定位
Windows Phone 8提供了一组的基于Windows Phone Runtime的API集合来获取手机的当前位置。现有的.NET定位API依然是支持的。新API的更多信息,参见Location for Windows Phone 8.
Windows Phone 8提供的另外一个新特性是针对的位置追踪类的应用,如今即便用户离开了应用,它们仍然能够在后台运行。这样就容许实现跑步追踪应用和转来转去的导航应用了。
语音
在Windows Phone 8,用户能够经过声音来与应用进行交互。更多关于Windows Phone 8语音特性的信息,参见Speech for Windows Phone 8.
钱包
Windows Phone 8引入了钱包,容许应用完成下面这些事情:
- 将优惠券,信用卡,会员卡,购物狂等相似物品收集在一块儿。
- 管理应用和音乐商店内的支付工具。
- 将钱包所管理的物品与手机里的应用联系起来。
- 在某些商场里面,使用近场通信(NFC)技术进行无线支付。
经过把钱包中的物品集成在一块儿,应用的开发者们能够给用户带来丰富的体验。经过使用Wallet命 名空间下的相关函数,您的应用就能够建立,阅读,写入和删除钱包中的物品。有了Windows Phone 8钱包,您能够经过代理来使保证钱包中物品是最新的,并经过状态信息和自定义字段来与用户进行交互。钱包集成了一个附加的功能,经过容许在一个新加的表面 区域里面与用户进行交流,从而使您更好地贴近用户。此外,钱包物品容许用户深度地关联应用,这样应用就能提供更有意义的应用内体验了。更多关于 Windows Phone 8中钱包的信息,参见Wallet for Windows Phone 8.
多分辨率
Windows Phone 8支持WVGA,WXGA和720p三种设备。下面的表格列出了这些新的分辨率。Windows Phone 8支持全部这些分辨率。
分辨率 | 比例 | 缩小后的分辨率 | |
WVGA | 480x800 | 15:9 | 480x800 |
WXGA | 768x1280 | 15:9 | 480x800 |
720p | 720x1280 | 16:9 | 480x853 |
关于更多Windows Phone 8多分辨率支持的信息,参见Multi-resolution apps for Windows Phone 8.
Direct3D和游戏
除 了本地代码开发外,Direct3D也加入到了Windows Phone的技术你们庭。这意味着,基于Direct3D的PC游戏第一次能够与它的手机版本共享绝大部分代码了。开发人员可使用state-of- the-art中间件和业界最强大的引擎来为Windows Phone开发游戏了。
涉及到Direct3D的这一类应用将彻底由本地代码进行编写的,而且只能使用Direct3D来绘制UI。这类应用与托管代码应用使用了彻底不一样 的代码模式,全部就不能使用不少托管代码应用的特性,好比动态磁贴和推送通知。可是,Windows Phone 8也为Direct3D提供了一些新特性,以提供对软键盘输入,设备主题和屏幕分辨率检测的支持,以及一组Launchers和Choosers用来添加 许多常见的手机任务。更多关于本地Direct3D应用模式和这类应用所容许的特性,参见Direct3D app development for Windows Phone 8.
此外,您也能够经过DrawingSurface和DrawingSurfaceBackgroundGrid控件在托管应用中混入Direct3D图像,从而以很是小的性能损失来获取托管代码的优秀特性。Windows Phone 8所支持的是Direct3D库的子集,处于9_3的特性水平。更多Direct3D的特性支持和兼容性,参见Direct3D for Windows Phone 8.在托管应用中使用Direct3D的信息,参见 XAML and Direct3D apps for Windows Phone 8.
除了对Direct3D的支持,您也能够经过Microsoft Media Foundation API来回放和捕捉音频和视频。而且,本地的音频库,XAudio2和WASAPI如今也能在手机上使用了。更多信息,参见Walkthrough: Using Microsoft Media Foundation for Windows Phone 8 和 Native audio APIs for Windows Phone 8.
应用模式
Windows Phone 8支持两种独立的应用模式。
托管
托管应用使用XAML来定义用户界面, 使用Visual Basic或C#做为编程语言。现有的Windows Phone应用所使用的都是这种技术,彻底兼容Windows Phone 8。基于XAML的应用得到了一些新特性,好比新控件,高分辨率自动缩放。Windows Phone 8新加入的托管API,包含了Nokia maps提供的一个新的地图控件和一个用于保管支付方式和容许NFC支付的钱包API。
本地
Windows Phone 8支持本地代码的开发方式,包括Windows 8 SDK的重要子集,容许开发者在Windows 8和手机之间共享至关数量的代码。经过加入对本地代码开发的支持,Windows Phone 8减小了须要移植和维护的组件,好比运算引擎,图形库和API集。
Direct3D+XAML
对于那些既须要Direct3D的图形能力,又想使用那些只针对托管应用特性(好比磁贴和XAML控件)的开发者来讲,Direct3D和XAML的混合开发模式是很是有吸引力的。
HTML
Windows Phone 8并不支持基于HTML的手机应用。不过,开发者能够建立一个XAML的托管应用,嵌入浏览器控件,并在其中显示本地的HTML,它也能够经过使用 InvokeScript方法和ScriptNotify事件来访问手机的API。在Windows Phone 8中,内置的浏览器也升级到了Internet Explorer Mobile 10,加入了许多的新特性,好比对HTML5/CSS3的完善实现,SVG,ES5,IndexedDB,手势事件,以及加入的高性能脚本引擎。这些都为 Windows Phone 8的HTML开发者们开发新的、有趣的应用提供了可能。
更多针对Internet Explorer Mobile 10进行开发的信息,参见Internet Explorer 10 Guide for Developers.
摄像头和照片
Windows Phone 8引入了Lenses,提供了自动上传照片到Web服务的功能,扩展了拍照体验,以及针对Windows Phone Runtime的高级API。此版本还强化了对照片的操做。
Lenses
在Windows Phone 8中,您能够建立一种与内置摄像应用表现一致的,名为lens的应用。lens为用户提供了统一的接口,指向您所编写应用中的取景框。lens特性,对原 有的摄像头API所提供的单一功能,进行了有效的扩展。经过lens,您的应用能够经过取景框直接与摄像头进行交互。更多信息,参见Lenses for Windows Phone 8.
照片处理
Picture类已经加入了新的扩展方法,包括GetPreviewImage和GetPath。使用GetPreviewImage能够提升图片显示的性能。该方法将根据用户手机的最佳分辨率,返回WVGA,WXGA或720p尺寸的图片。GetPath方法将返回图片在媒体库中的完整路径,能够把这个路径做为图片的惟一标识。为了使用这些方法,须要引入Microsoft.Xna.Framework.Media.PhoneExtensions.
同时加入的还有一个新的加载器, ShareMediaTask。经过 ShareMediaTask类,应用能够直接访问共享选择器,这样用户能够如同使用内置的图片浏览器同样来分享图片了。更多信息,参见How to use the share media task for Windows Phone.
此外,PhotoChooserTask任务如今返回更加友好的文件名。在这个事件的处理程序中,OriginalFileName属性直接返回照片的实际文件名。更多信息参见How to use the photo chooser task for Windows Phone.
照片的扩展性
Windows Phone 8引入了新的方法来扩展照片的体验。除了对Photoshop Hub,照片应用选择器和共享选择器的扩展以外,您的应用也能够像富媒体编辑器同样,与照片编辑选择器或注册器进行交互。更多信息,参见Photo extensibility for Windows Phone.
自动上传
在Windows Phone 8中,经过使用资源增强后台代理,您的应用能够自动上传图片到某个图片存储服务之中。将您的应用注册为自动上传应用以后,您的后台代理将会始终保持运行。更多信息,参见 Auto-upload apps for Windows Phone 8.
高级捕捉API
对于那些须要对摄像头进行更好控制的应用,Windows Phone Runtime在 Windows.Phone.Media.Capture 命名空间中提供了更为高级的捕捉API,使用Windows.Phone.Media.Capture.PhotoCaptureDevice类来控制照片的属性,好比ISO,白平衡和曝光。甚至还能够程序来调整聚焦的位置。Windows.Phone.Media.Capture.AudioVideoCaptureDevice提供了相似的针对视频和音频的控制。更多关于高级捕捉API的信息,参见 Capturing photos for Windows Phone 和Capturing video for Windows Phone.
除了以上API以外,Windows Phone 8还针对本地代码提供了一组专门的接口。这些接口提供了对未压缩照片数据和编码后的音频/视频样本的访问。这里还有个方法可使用当前的预览帧来填充Direct3D的2-D材质。更多信息,参见 Camera APIs for native code (Windows Phone 8).
多媒体
音乐媒体库
在Windows Phone 8中,您能够经过MediaLirary类中的SaveSong和Delete方 法来添加和移除用户音乐集中的音乐文件。新的API位于 Microsoft.Xna.Framework.MediaLibraryExtensions.dll程序集的 Microsoft.Xna.Framework.Media.PhoneExtensions命名空间下。
图片媒体库
在Windows Phone 8中,对于每张存储在手机里的图片,会自动建立下面这两种缩略图,并能够经过您的应用进行还原。
- 小型缩略图,您能够经过Picture类下的GetThumbnail方法来检索这种图片。
- 预览图片,拥有和手机屏幕一致的分辨率,您能够经过Picture类中,新的GetPreviewImage扩展方法来检索这种图片。
您可使用Picture类中新的GetPath扩展方法来获取图片的路径。当用户须要分享图片的时候,这个方法返回的值能够用于ShareMediaTask的FilePath属性。
这个新的API能够在Microsoft.Xna.Framework.MediaLibraryExtensions.dll程序集的Microsoft.Xna.Framework.Media.PhoneExtensions命名空间下找到。
背景音频
在Windows Phone 8中,当BackgroundAudioPlayer的状态改变时,您能够经过 PlayStateChangedEventArgs得到状态转变的信息。您能够肯定在音频播放器进入当前播放状态以前的状态,是 CurrentPlayState仍是IntermediatePlayState。
关于您能够如何处理新的事件参数所提供的信息,下面是一些等价关系:
- IntermediatePlayState = BufferingStopped
- CurrentPlayState = Playing
- IntermediatePlayState = TrackEnded
- CurrentPlayState = Stopped
更多关于背景音频的信息,参见Background audio overview for Windows Phone.
用户界面
控件
Windows Phone 8提供了下面这些优秀的新控件:
- Windows Phone 8包含了一个LongListSelector控件,能够分组,显示和滚动很长的数据列表。它同时也提供了一种方法,可使用户跳转到列表的某一段。
- 在Windows Phone 8中,Pivot和Panorama控件已经由SDK中移出,转而直接放置到手机的ROM中。这样,您的应用就可使用独立的本地输入线程,也就意味着这些控件的响应能力会有极大的提高。对Panorama控件进行内存设置所需工做也得以减小。
- WebBrowser控件如今基于Internet Explorer 10,提供了HTML5和扩展版CSS的支持,从而得到更佳的浏览体验。
- ProgressBar控件的性能也得以提高。您须要用这个控件来显示基于值的进度条和不肯定值的进度条。
Launcher
您的Windows Phone 8应用能够经过Launcher来帮助用户执行经常使用的任务。如下是Windows Phone 8新加入的Launcher
- SaveAppointmentTask
- MapDownloaderTask
- MapsTask
- MapsDirectionsTask
- ShareMediaTask
更多关于Windows Phone 8新Launcher的信息,参见Launchers for Windows Phone.
通讯
VoIP
在Windows Phone 8中,您能够建立Voice over IP(VoIP)应用,使用户可使用数据流量来进行语音和视频通话。VoIP应用集成进了内置的手机体验,这样拨入的电话会像普通的拨入电话同样,使用一样的手机UI进行显示。更多信息,参见VoIP apps for Windows Phone 8.
蓝牙
蓝牙是一种无线通讯技术,相关设备可 以在10米内彼此进行通讯。您可使用Windows Phone 8新引入的Bluetooth API,经过蓝牙技术与其余手机进行通信。Windows Phone 8的核心蓝牙使用场景,包括了应用对应用和应用对设备的通信,这开辟了普遍的可能性,使您的手机能进行更多的链接。更多信息,参见Bluetooth for Windows Phone 8.
Proximity
Windows Phone 8引入的了新的Proximity API,能够用来建立以下的应用:
- 经过NFC来传输数据。
- 使用手机与NFC标签进行交互。
- 在您的应用和临近设备的应用之间创建Wi-Fi或蓝牙链接。
对于两部都拥有NFC芯片的手机,用户只须要把它们防到一块儿就能完成相关工做。
更多关于Proximity的信息,参见 Proximity for Windows Phone 8。Windows Phone 8中的Porximity也容许使用蓝牙来进行应用对应用的链接。更多关于的Windows Phone 8中蓝牙的信息,参见Bluetooth for Windows Phone 8.
Incoming sockets
Windows Phone 8引入了对incoming socket的加强。 System.Net.Sockets 和Windows.Networking.Sockets都支持incoming socket,这意味着您的应用能够监听传入的网络链接,并绑定到链接上。
支持IPv6
System.Net.Sockets中加入了对网络上128位地址系统设备的支持,Windows.Networking.Sockets也一样支持。
Windows.Net.Networking
Windows Runtime API中的Windows.Networking.Sockets,也加入了Windows Phone 8中。它是做为Windows Phone Runtime API来是实现的,不论您使用的是什么编程语言,均可以很方便地使用它。 虽然咱们已经增强了.NET API,System.Net.Sockets,以使其支持IPv6和socket监听等新特性,不过您也能够考虑使用这个新的API来进行socket编程,由于这样更具可移植性。 Windows.Networking.Sockets从无到有,构建了一套干净,安全,易用的API,能够执行最好的方案。更多对Windows Runtime API的信息,参见Windows Phone Runtime API.
Winsock本地API的支持
Windows Phone 8支持Winsock本地API。使用Winsock API的一个优点,是您能够复用之前用过的Winsock代码,这样能够方便您在Windows Phone OS 8.0平台上建立应用。更多关于Winsock本地API的信息,参见Supported Win32 APIs for Windows Phone 8.
Data Sense
Windows Phone 8引入了新的Data Sense特性,能够依据用户所制定的流量限制计划来控制流量,从而节省用户的费用开销。在Data Sense特性中,用户能够指定它们的流量限制计划,而后Data Sense会根据限制来监视流量的使用状况。有了这个信息,当用户接近流量上限的时候,应用能够经过下降对流量的使用来帮助用户节省费用,也能够在超出流 量限制的时候,停止对流量的使用。
更多关于Windows Phone 8中Data Sense的信息,参见How to adjust data usage using the Data Sense API for Windows Phone 8.
数据和扩展性
存储
Windows Phone 8和Windows 8同样,支持Windows Runtime和Win32中存储API的子集。此版本还引入了 Microsoft.Phone.Storage命名空间,这个新的.NET API额能够用于SD卡的读取。更多信息,参见Data for Windows Phone 和Reading from the SD card on Windows Phone 8.
用户联系人的存储
您能够设计一个Windows Phone 8应用,建立一组应用内的联系人信息,但又保持与手机内置应用一致的体验。所提供的API能够用来建立,更新,删除和查询应用的联系人信息。也能够把应用的联系人列表和应用的云端服务器中的列表进行同步。更多信息,参见Custom contact store for Windows Phone.
文件和URI的关联
在Windows Phone 8中,您能够创建与文件和URI的关联,这样当其它应用加载某种文件类型或URI语法的时候,就会自动调用您的应用。好比文件关联容许启动你的应用来处理 email附件。您也能够经过使用association-launching API来根据某种文件类型或URI语法来加载其它的应用。更多信息,参见Auto-launching apps using file and URI associations for Windows Phone 8.
搜索的扩展
当你扩展了Windows Phone 8的Search体验的时候,Quick card会向您的应用传入更多的信息。这里还有针对事件的新Quick card,Event card。这些改变的概述以下表所示。
Quick card | 新的URI参数 |
Place Card | PhoneNumber |
Movie Card | ReleaseDate |
Event Card (new quick card) | EventName, StartDate, PlaceName, PlaceLatitude, PlaceLongitude,PlaceAddress |
关于这些参数的更多信息,参见Search extensibility for Windows Phone.
商店
应用内购买
应用内购买可使开发者编写应用或游戏来售卖虚拟物品。Microsoft的服务器承载了所容许进行应用内购买的商品的目录,包括售价和描述性的元数据。Microsoft同时还提供了交易的基础平台,包括对世界190个地区用户的付费支持。
对于每个用户能够购买的应用内付费产品,开发者都须要在Windows Phone Dev Center中输入描述,除了针对每一个地区的不一样价格,还须要包括用户可能发生应用内付费的区域。经过使用Windows Phone 8的API,开发者没必要编写代码来处理不一样的付费产品。应用内购买支持用户在应用和游戏中进行付费的全部可能用到方法。应用或游戏必须承载和并提供与应用 内商品相关的全部内容。更多信心,参见In-app purchase for Windows Phone 8.
适用于商用
对于注册到了企业中的Windows Phone 8手机,能够很方便地开发和发布应用。关于在企业里注册手机和分发应用的具体流程信息,参见Company app distribution for Windows Phone 8.
本土化和全球化
在Windows Phone 8中,你能够建立从右至左阅读的应用,和使用双向语言的应用。更多关于在Windows Phone 8中的新本土化和全球化特性的信息,参见Creating bidirectional apps for Windows Phone 8.
如今,您能够为一个应用程序域定义默认的文化。更多信息,参见 CultureInfo类。
应用清单文件
为了支持诸如蓝牙和NFC之类的新功能,应用清单文件中添加了一些新的capability。经过设置清单文件的需求部分,您能够指定应用的硬件需求,以确保用户的手机可以顺利运行应用。更多关于Windows Phone 8新的capability和硬件需求,参见 App capabilities and hardware requirements for Windows Phone.
此外,如今能够很方便地使用Visual Studio集成的Manifest Editor工具来编辑清单文件了。更多关于如何编辑应用清单文件的信息,参见How to modify the app manifest file for Windows Phone.
应用兼容性
Windows Phone 8引入了一些不一样于Windows Phone 7.1的API。具体的区别,以及对您将要开发的应用有何影响,参见App platform compatibility for Windows Phone.
在许多状况下,若是一个API在Windows Phone 8和原有系统中有着不一样的不一样的表现,那么它将会被区别对待。也就是说,若是是针对Windows Phone OS 7.1的应用,这个API就和自动表现为7.1的行为。反之,若是是针对Windows Phone 8的应用,这个API则会表现出新的行为。更多信息,参见 App platform compatibility for Windows Phone中的"Quirks mode behavior in the .NET Framework"一节。
CLR
Windows Phone 8中的CLR提供了如下新特性,同时在如下领域与现有的Windows Phone会有所不一样:
代码生成
- Windows Phone 8采用了新的策略,在云端预编译应用,以加强启动性能。为了确保开发者所执行的应用体验与用户的设备一致,Windows Phone SDK 8.0提供了相应的工具。
- Windows Phone 8改进了对代码嵌入的支持;再也不须要手工嵌入代码了。
- JIT编译器的代码生成获得了最优化。
线程
- .NET Framework能够感知多核心。应用能够经过线程池,Task Parallel Library,以及全部的同步原语来建立线程,以利用多个核心。
- 对多核心的支持,可能致使诸如Thread.Sleep之类API的表现有所不一样。
安全模型
托管的沙盒已被移除。这样的话,在Windows Phone OS 7.1中抛出的安全异常,好比MethodAccessException,可能不会在Windows Phone 8中抛出。
垃圾回收
Windows Phone 8的垃圾回收堆有2个阶段,而再也不是Windows Phone OS 7.1中的3个。
- 在Windows Phone 8中,垃圾回收有一个很大的对象堆(LOH)。
- 在Windows Phone 8中,后台垃圾回收无效。
- 手机的资源管理器会在一个应用接近内存上限的时候调用一次垃圾回收,并在超过内存上限的时候终止应用。
- 运行时的自调整垃圾回收触发器,能够被应用的强制垃圾回收调用所影响。
- 在Windows Phone 8中,垃圾回收的每一个线程分配性能都获得了提升。
Portable Class Library
- Visual Studio 2012中的Portable Class Library项目容许你编写托管程序集,以运行在多个.NET Framework平台上。您可使用Portable Class Library项目来选择目标平台(好比Windows Phone 8和.NET for Windows Store apps)。那么项目的可用类型和成员会根据所选的平台而有所限制。
- 面向Windows Phone OS 7.1和Windows Phone 8的Portable class library均可以用于Windows Phone 8。请注意,当一个面向Windows Phone OS 7.1的Portable class library在运行于Windows Phone 8之上时,它的相关表现就和Windows Phone 8应用是一致的。更多信息,参见Cross-Platform Development with the .NET Framework.
交互
- 应用能够经过托管代码来调用Windows Runtime API。
- COM互操做和P/Invoke均不被支持。
整体性能
- 在Windows Phone 8中,使用System.Threading.Tasks命名空间下的类型来进行的同步和异步操做的性能都获得了提高。此外,Stream相关的类如今加入了异步方法,以获取加入到C#和Visual Basic语言中异步特性所带来的优势。更多信息,参见.NET Framework Version 4.5文档中的 Asynchronous File I/O 。
- Windows Phone 8中的虚拟调用性能获得提高。
- Windows Phone 8对Fast Application Switching的实现也获得了提高。当进行当前激活应用切换的时候,它所管理的执行程序会暂停。一旦暂停了一个应用,CLR会保证它的CPU使用率降为0,同时应用的全部超时设定都会被虚拟化。