Windows Phone 8 的新地图服务的背景知识

  • Jeff Martin
  • 李永伦

2012 年 11 月 5 日

话题:语言 & 开发

Windows Phone 8(WP8)的预期新特性之一是改善应用程序的多任务特性,提供完整的支持。Windows Phone 开发者平台的程序经理 Adina Trufinescu 在她的 WP8 地图和位置服务的改变的演讲里谈到这些改善。

WP8 开发者现在可以利用Windows Phone 位置服务 API,它包含两组 API。第一组基于 Windows 8 的 Windows Runtime API,并添加了和手机相关的特性。第二组是 Windows Phone Runtime API,它针对诸如语音和 VoIP 等和手机相关的特性。

在介绍这些 API 之后,Trufinescu 就开发需要用到位置 / 地图服务的应用程序给出一些通用的建议:

  • 在可能的时候创建一个单个位置的请求。
  • 利用缓存快速获取结果。
  • 在精确和超时之间找准平衡点。
  • WIFI 是否启用?如果不是,让用户启用它,因为在市区里它比 GPS 更加精确。

Windows Phone 8 Map 控件

新的 WP8 Map 控件提供以下特性:

  • 诺基亚地图数据:超过 100 个国家。
  • 离线地图:允许用户下载地图,开发者可以通过MapDownloaderTask提供下载和更新功能。
  • Map 控件:平滑的交互,无滞后的叠加,旋转,捏合。
  • 路线显示:通过地图服务轻易计算路线。

Map 控件并非单纯的.NET 控件,它是由.NET 和本机代码混合而成。本机代码用来处理“重活”。开发组在开发者体验和用户体验之间做了一个取舍,最终决定稍微偏向用户。因此,在 Visual Studio 里设计 WP8 的屏幕布局时,这个控件将会显示成一个占位图标。

程序经理 Mike O'Malley 也加入演讲,即场示范新的代码。他提醒道,新的控件需要使用和基于必应地图控件不同的开发者凭据,这意味着 WP8 开发者应该使用他们的 dev.windowsphone.com 凭据。Windows Phone 7.X 地图 API(必应地图控件 / 必应地图任务)仍然可用,并且应该在 7.X 的应用程序上使用,但在 WP8 的应用程序上就不要再用它了。

完整的多任务

WP7.5 引入多任务,但有所限制,没有为使用位置和 VOIP 特性的应用程序提供支持。这个问题在 WP8 里得到修正,但仍然存在一些限制:

  • 仅限 XAML 应用程序。
  • 跟踪单个位置的应用程序可以在后台运行。
  • 应用程序受限于资源访问。

为了确保用户体验的质量,后台应用程序的 CPU 占用率最多是 10%,并且不能访问摄像头和麦克风(出于安全 / 隐私的考虑)。

快速恢复

WP8 还引入快速恢复,它适用于任何采纳这个模型的 WP8 应用程序。修改应用程序的清单设置就能启用快速切换了。支持这个特性的应用程序会有以下操作行为:

  • 如果之前通过主要磁贴启动应用程序,那么主要磁贴将会恢复之前的应用程序实例。
  • 如果之前通过主要磁贴或不同的深度链接启动应用程序,那么深度链接将会启动新的应用程序实例。
  • 不要阻塞 OnBackKeyPress,这是用户关闭你的应用程序的途径。

查看英文原文:A Background on Windows Phone 8's New Map Services

语言 & 开发