完成您的 Metro 应用自查

为了提高您的应用通过率,建议您在开发应用的过程中按照下面的应用自查项进行对照检查,并在进入Metro应用实验室前,完成应用自查Survey,以保证微软PFE工程师可以提前了解您的应用开发状况,更好的为您提供Metro应用的评估建议与指导。>> 点击了解如何完成应用自查Survey

 
场景  

对您所开发的应用有一个清晰的认知;确保应用可以实现您的想法

优秀的应用程序都经过了慎密的计划。它专注于完成应用程序的使命所需的任务和功能。因为这是一次应用程序审核,所以我们希望确保您拥有周详的计划,并了解您应用程序的优势与特点是什么。
您在此审核中使用的应用程序需要能够代表您的最终愿景。您的应用程序无需完全完成,但应该拥有足够的功能来演示,这将使您的应用程序从其所在类别中的其他应用程序中脱颖而出。
您无需提供完整的开发程序,我们只是需要您在开发应用前已经进行了慎重的准备与规划

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465427.aspx

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465427.aspx

返回顶部

 
用户体验- UX Polish 

遵循Metro风格原则

Metro 风格的设计有 5 个指导原则,可帮助您在设计应用程序时做出最佳选择。这些原则是构建优秀的 Metro 应用程序的基础。请始终确保您的设计和开发选择符合这些原则。

此处阅读有关 Metro 设计原则的信息。

参考资料(HTML)

https://msdn.microsoft.com/library/windows/apps/hh781237

参考资料(XAML)

https://msdn.microsoft.com/library/windows/apps/hh781237

   

传达品牌和用途。

Metro 设计强调内容重于形式,强调条理清晰和事半功倍。遵守这些原则将使您与其他应用程序保持一致,但您不应忽视品牌;设计 Metro 应用程序可完成推广您的品牌的目的。
考虑您希望在以下时刻向用户发送的消息:当用户在应用商店中看到您的 Metro 应用程序时、他们在自己的开始屏幕上看到它时、他们首次启动它时、以及他们使用它时。您可利用这些机会在应用程序的可视设计中定义和推广您的品牌。

Windows 开发者中心中的规划您的 Metro 应用程序中的品牌一节提供了一些不错的技巧,可让用户全面了解您的品牌。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465418.aspx

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465418.aspx

   

采用一致的布局和对齐方式

许多 Metro 设计原则(比如内容重于形式、以精湛的技艺为豪和在内容层次结构中使用版式)有助于在应用程序中实现优秀的对齐效果。确保您考虑了对齐方式并遵循 Windows 8 中建议的边距。

Metro 应用程序的设计资产是基本布局的不错参考。为 Metro 应用程序使用 Visual Studio 模板也是一种为应用程序设计良好布局的简单方式。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465386

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465386

   

利用版式和空白,遵循一种字体层次结构

字号、粗细、颜色、跟踪和空格的适当使用可帮助您为 Metro 应用程序提供一种干净、整洁的外观,使它更容易使用。

要创建与其他应用程序一致的体验,请查阅针对 Metro 应用程序的文本和版式指南。如果由于品牌原因而使用您自己的字体,仍然要遵守一种字号层次结构和其他指南。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh700394.aspx

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh700394.aspx

   

包含Windows 8个性特征

Windows 8 Metro 设计是独一无二的。如果您有一个为不同平台编写的应用程序,它可能拥有与 Windows 个性特征不一致的设计特征。
Windows 个性特征拥有特定的布局、字体层次结构、动画、交互、命令、常用控件等。
在引入来自不同平台的资产时,两种最常见的错误是:

1.        重用具有渐变、3D 或圆角等的图标或图形。

2.        提供不是真正数字化的动画(比如翻页动画)。

在设计用于 Windows 8 的应用程序时请考虑所有这些因素。一定要熟悉 Windows Animation Library 并利用它提供您的用户很熟悉且容易发现的过渡。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465424

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465424

   

专为良好的第一印象而设计

用户在安装了您的应用程序之后,首先通过单击您的磁贴和您的应用程序的磁贴来与它交互;然后他们会看到初始屏幕以及应用程序的前景色和背景色。
为满足此要求:

·         审核并遵循磁贴指南徽章指南二级磁贴指南

·         确保您在清单中选择的前景色和背景色是互补色,并且在高对比度显示和较低的屏幕亮度下看起来也很好。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465338

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465338

   

动画是有目的性的,建立连续性并向用户传达信心

有目的性、良好设计的动画会给应用程序带来活力,使体验给人高端和精致的感觉。帮助用户理解上下文更改,将体验与可视过渡融合在一起。如果您希望拥有快速且流畅的应用程序,请查阅拖放、边缘动画、过渡和 UI 动画指南

不要忘记遵循 Metro 设计原则。如果您希望真正数字化,请避免模仿物理运动。如果您希望应用程序快速且流畅,请确保动画是独立的并以每秒 60 帧的速度呈现。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465209

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465209

   

针对触摸而设计

您的应用程序还应该针对所有输入类型(包括触摸)进行优化。
针对触摸进行优化是一个不错的方法,因为在针对触摸进行编码和设计时,Windows 8 平台免费为您提供鼠标和手写笔事件。
针对触摸而设计需要大量关注许多不同标准的细节。考虑所有这些因素:

·         触摸交互设计

·         Windows 8 触摸语言

·         目标调整

·         可视反馈

·         选择

参考资料 (HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465415

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465415

返回顶部

 
用户体验–控件、导航、动画 

内容是主要的导航机制

优秀 Metro 应用程序的特征是内容重于形式。当人们将精力集中在内容上时,该内容的合成形成了应用程序的特性,因此它应该成为主要的导航机制。避免选项卡、导航菜单和主页按钮。如果您的应用程序需要导航,可以使用一个标题菜单和选择标签来导航,或者使用一个导航栏。

如果您需要导航技巧,请查阅导航设计指南

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh761500

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh761500

   

适当使用应用栏

应用栏为用户提供了在需要时轻松访问命令的能力。用户将熟悉该模式并期望在不同应用程序上获得一致的体验。您应该

·         确保您的应用栏条理清晰、一致、不杂乱且适合所有视图状态。

·         应用栏中不应拥有导航元素。

要了解更多信息和创建优秀的应用栏,请遵循应用栏指南

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465302

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465302

   

适当利用命令界面并认真考虑边缘

上下文菜单、弹出菜单和超级按钮等命令界面都是为协同工作而设计的。

确保命令对您的用户是无缝的:

·         确保在接近屏幕左侧和右侧执行超级按钮和任务切换的地方没有命令界面

·         确保使用了具有浅色解除按钮的弹出菜单

·         不在弹出菜单或上下文菜单上包含持久内容。

·         确保您的命令策略适用于多个视图状态,包括已填充和已贴靠。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh761499

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh761499

   

显示不引人注目的、有意义且实用的错误处理

以一种不引人注目的方式向用户提供错误,确保您的消息是实用的。遵循错误消息指南并选择合适的 UI 界面来显示错误。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465304.aspx

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465304.aspx

   

适当利用语义缩放

语义缩放是一种在单一视图中显示和导航大量相关内容的针对触摸优化的技术。如果应用程序显示这些内容,您应该考虑使用 语义缩放 控件。

要了解高效利用 语义缩放 工具的所有注意事项,请查阅语义缩放指南

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465319

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465319

返回顶部

 
用户体验 – 视图和外观设置 

支持横向和纵向视图

旋转允许用户优化与您的应用程序的交互,实现针对其设备的最佳舒适性和易用性。Windows 8 为您提供了多种旋转选择:自由、约束和组合。如果合适,为您的应用程序实现尽可能多的选择。
如果您的应用程序不支持每种可能的设备方向,则在清单中声明这一点并执行相应的计划。您一定不希望用户因更改设备方向而进入应用程序的无效状态。

要了解有关旋转的更多信息,请查阅旋转指南。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465315

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465315

   

适应不同的外观设置和长宽比

Windows 8 将可用于无数的设备、外观设置、分辨率和长宽比。
如果您希望向所有这些设备销售应用程序,您必须设计一个适应这些丰富的设备和长宽比的灵活布局。
您还应该针对不同的分辨率进行设计并包含将在高分辨率显示中良好显示的资源。
我们建议在以下所有显示分辨率上测试您的应用程序:1024x768、1366x768、1920x1080 和 1280x800。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465386.aspx

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465386.aspx

   

处理贴靠、填充和完整视图状态

您的应用程序应该处理贴靠、填充和完整视图

在不同状态间过渡时,您的 UI 应该流畅且优雅地滑动

您的 UI 还应该在贴靠模式下保持正常运行,它可能没有完整视图拥有的所有细节,但它应该能正常运行

当在贴靠模式下时,重点关注相关且需要显示的内容。避免贴靠模式下的常见错误,比如拥挤、运行不正常的应用栏,截断的内容或在错误的方向上平移(水平)

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465371

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465371

   

朝单个轴平移和滚动以建立稳定的感觉

平移可帮助用户导航一个(在水平或垂直方向上)无法在视区内容纳下的视图。在平移时需要考虑许多因素,例如:设备类型、方向、输入类型(比如鼠标、触摸或手写笔)等。

通过始终允许在单个轴上滚动,在视图内提供一种稳定的感觉。如果设备方向更改,您可以更改该轴,但请确保视图内具有稳定性和直观的平移效果。

有关更多细节,请查阅完整的优秀平移指南

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465310

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465310

   

在只有一个鼠标或键盘的系统上正常运行并给人自然的感觉

键盘仍然是 Windows 的一种非常重要的输入机制。您应该确保应用程序适用于仅使用键盘的用户。这将需要处理导航、制表位和排序等。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh750315

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh750315

   

在只有一个屏幕键盘的系统正常运行并给人自然的感觉

针对触摸而设计将是 Windows 8 中的制胜法宝。在布局屏幕时,您应该在最低分辨率 (1024x768) 上测试并确保您的应用程序适用于软键盘。

确保键盘不会将字段放得太高或覆盖用户在导航应用程序时将需要的控件(比如提交按钮)。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465415

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465415

返回顶部

 
用户体验 – 设置

实现Settings超级按钮,不要在应用程序中的其他地方放置设置和首选项

Settings 超级按钮是一个可供用户配置应用程序的一致、熟悉的界面。

用户不会经常更改的所有用户首选项和设置应该仅在设置窗口中公开,而不是在整个应用程序中公开。

应用程序设置指南拥有有关组织设置及适合和不适合设置的内容的出色见解。查阅和实现此指南以使您的应用程序易于配置。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh770544

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh770544

   

漫游用户设置和用户状态

漫游应用程序数据让用户能够跨多个设备(比如他们的工作 PC 和家用平板电脑)同步应用程序数据。如果用户在两个设备上安装了同一个应用程序,Windows 会保持应用程序数据同步,就像用户首选项一样。这减少了用户需要在第二个设备上为您的应用程序所执行的设置工作量。

要利用这个免费、易于编码的漫游功能,请查阅漫游应用程序数据指南

熟悉 API 来检查漫游设置的配额。尽管漫游很容易使用,但它不是针对漫游大型数据集而设计的。理解漫游的影响并相应地优化您的用户体验。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465094

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465094

   

拥有出色的登录/注销体验

如果应用程序要求用户登录以启用某项功能,请留意与登录和注销相关的用户体验和工作流。

尝试在用户已注销后保持应用程序正常运行。提供某种对用户仍有价值的默认体验。

如果注销不是一种常见的操作(比如缓存凭证),则通过 Settings 超级按钮实现该功能;这样它就不会具有侵入性,并且用户会直观地发现它与其他 Windows 8 Metro 应用程序保持一致。

返回顶部

 
用户体验– Contracts 

实现搜索合约

搜索合约支持从系统中的任何地方搜索应用程序的内容。

使用 搜索 超级按钮可帮助您:

·         使用系统和其他应用程序中的 搜索 超级按钮,利用用户建立的肌肉记忆

·         确保用户在搜索和更改搜索设置时拥有一致且可预测的体验

·         如果用户经常搜索您的应用程序,将它放在可搜索应用程序列表的顶部,让它更显眼

要实现出色的搜索体验,请遵循搜索指南

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465233

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465233

   

实现共享目标合约

用户总是拥有他们希望共享的信息。

如果您的应用程序实现共享目标合约,这对用户而言始终是一种好处。

如果您希望提高用户对您的应用程序的使用率,并且拥有可使用来自其他应用程序的数据的场景,请实现共享目标合约。Windows 执行了共享数据的大量工作,您只需接收它并让用户在您的应用程序中访问它。

有关更多细节,请查阅共享指南

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465251

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465251

   

实现共享源合约

一种扩展应用程序并将它连接到任何其他应用程序或服务的轻松方式是实现共享合约。参与共享合约意味着您无需编写额外的代码或向其他开发人员提供您应用程序的一个 SDK 来共享内容。
将增加您应用程序的价值并以所有 Windows 8 用户将期望一致、安全的方式公开它。

有关共享的详细信息,请查阅共享指南

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465251

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465251

   

拥有漂亮、品牌化的合约UI

有时我们会看到设计漂亮的应用程序,它们的合约用户界面中没有详细信息。

合约是您应用程序的重要部分;请确保您的合约 UI 中的对齐程度、响应能力、品牌效应和总体 UI 优雅度向应用程序的其他部分一样高。

   

利用文件选取器

Metro 应用程序可调用一个文件选取器窗口来让用户浏览他们的系统,挑选供应用程序操作的文件或文件夹,或者让用户使用新名称、文件类型或位置保存文件(“另存为”)。应用程序有也可以将文件选取器作为一个界面使用,使他们能够为其他应用程序提供文件、保存位置或者甚至文件更新。

如果您希望与存储在文件中的用户数据交互,可以利用文件选取器。

要了解有关文件选取器的更多信息,请查阅使用文件选取器引用访问文件并遵循文件选取器指南

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465182

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465182

返回顶部

 
用户体验- PLM 

适当处理PLM状态

要允许用户在应用程序之间切换并感觉他们从未离开您的应用程序,您必须适当并有效地处理进程生命周期管理 (PLM) 事件。从总体上讲,您应该:

·         在暂停时保存过渡状态

·         处理恢复事件,如果在用户上次查看内容后,内容发生改变,则更新视图

·         在执行启动事件时还原在最后一个已知状态终结时的过渡状态

要了解有关 PLM 事件的更多信息,请遵循挂起和恢复指南

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465088

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465088

   

适当使用后台任务

通过后台任务,Metro 应用程序可在挂起或终止时运行。尽管有这个灵活的选项可用,但不是所有应用程序都需要后台任务。

仔细检查您的场景,决定您是否必须在后台运行、运行的频率和在用户(他们控制锁屏应用程序)没有批准您的应用程序在后台运行时会发生什么。

要精通后台任务,请查阅后台任务简介白皮书,然后为正确的用途设计您的应用程序。

如果您决定针对后台任务声明应用程序,请确保您拥有正确的资产(例如用于锁屏的徽章)并且您拥有正确的触发器和条件,使您的应用程序能在需要时在为后台任务分配的位置运行。

参考资料(HTML)

https://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27411

参考资料(XAML)

https://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27411

返回顶部

 
用户体验–网络 

在离线时和在网络连接不稳定时都能良好运行

如果您的应用程序依赖于 Internet 或任何其他可能不稳定的资源,请确保它能够处理资源的缺失。

让我们使用网络连接作为处理不稳定资源可用性的一个示例:

·         您的应用程序不应在离线时崩溃(当进行冷启动或在挂起期间丢失连接后恢复时)

·         它应该在离线时保留尽可能多的功能

·         它应该适当检测不稳定资源的可用性和过渡,在资源可用时启用正确的功能

返回顶部

 
用户体验–标题和通知 

拥有漂亮、品牌化的磁贴

在设计优秀的磁贴时需要考虑一些事项:您的品牌、磁贴尺寸、本地化、高 dpi 显示、是否使用文本表示应用程序名称,或者通过磁贴展示品牌。

要了解漂亮、品牌化磁贴的所有注意事项,请查阅磁贴指南

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465403

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465403

   

拥有活动磁贴或二级磁贴

如果您希望应用程序引人注目,需要使您的磁贴生动并利用二级磁贴来为用户提供额外的便利性。可通过许多方式让磁贴引人注目,其中大部分方式都不需要服务。

如果希望了解更多信息,以下是一些让您的磁贴独具特色的不错选项:

·         磁贴更新

·         徽章

·         二级磁贴

·         定期通知

·         计划通知

·         推送通知

   

使用toast通知提供具有时效性、相关的信息

Toast 通知应该仅用于相关且具有时效性的信息。
它们应该可操作(用户单击它们后应导航到您应用程序内一个可操作的位置)。
Toast 通知应该简洁和清晰;不要使用不需要的内容;不要添加形式。
确保您遵守了 toast 通知指南中的其他注意事项。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465391

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465391

   

恰当处理来自合约、二级磁贴和通知的激活

当一个应用程序从共享合约、搜索合约、磁贴或通知激活时,参数和数据会传递到您的应用程序。您的应用程序应该在启动时检索该数据并对其执行操作。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465102.aspx

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465102.aspx

返回顶部

 
应用商店 

期望满足Windows 8 App认证需求。

应用程序卓越实验室不能取代在认证期间执行的慎密测试和验证。请仔细查阅 Windows 应用商店认证需求并确保您的应用程序满足所有需求。
在我们审核期间,我们将检查一些需求,但不是所有需求。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh694083.aspx

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh694083.aspx

   

通过Windows App Certification Kit (WACK)测试

要为您的应用程序提供通过认证的最佳机会,请使用 Windows App Certification Kit 在您的计算机上验证和测试它。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh694081.aspx

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh694081.aspx

返回顶部

 
性能 

UI始终响应迅速并为交互提供可视反馈

您的 UI 应该始终响应迅速并为用户提供可视反馈。以下是您应该包含的一些反馈交互示例:

·         当用户按下一项时,提供可视反馈(一个按下的动画)

·         当用户开始执行长期运行的操作时,比如网络调用或异步保存文件,显示进度控件或通过其他方式让用户知道操作正在执行。

有关更多技巧,请查阅用户交互指南

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465370

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh465370

返回顶部

 
性能–动画 

保持每秒60帧

快速且流畅的应用程序应该以每秒 60 帧的速率重新绘制屏幕。
使用高帧率绘制的最常见实现方式是,利用 GPU 执行场景的绘制。您可通过以下方式完成此任务:

·         使用 Windows Animation Library(如果使用 HTML/Javascript 编写应用程序)

·         使用 XAML 中的原生动画

·         尽可能利用独立的动画
独立动画是在 UI 线程以外运行的动画(最常在一个经过硬件加速的独立线程中)

参考资料:
在使用 HTML 和 Javascript 构建的 Metro 应用程序中制作 UI 动画
在 XAML 应用程序中通过样式和动画吸引人眼球

参考资料(HTML)

在使用 HTML 和 JavaScript 构建的 Metro 应用程序中制作 UI 动画

参考资料(XAML)

在 XAML 应用程序中通过样式和动画吸引人眼球

其他参考资料

为使用 HTML 和 JavaScript 构建的 Metro 应用程序制作动画的性能技巧

返回顶部

 
性能–生命周期 

优化暂停和恢复处理函数

暂停和恢复 PLM 事件将允许用户在任务之间切换并感觉他们从未离开应用程序。如果您希望让任务切换变得顺畅,必须拥有针对迅速执行而优化的暂停和恢复事件处理函数。如果想要快速暂停和还原,可以考虑以下优化:

·         在暂停时保存最少量的数据;任何非过渡性的应用程序状态都可在之前保存,因为它会在整个应用程序中更改

·         避免在没有状态更改时保存状态

·         优化您的还原处理函数以执行最少量的工作。您的应用程序始终保存在内存中;如果您的数据未更改,您可能没有太多工作要做。如果您的数据发生了更改,请在后台刷新它并确保应用程序在您刷新时能迅速响应。

参考资料:
优化应用程序的生命周期

参考资料(HTML)

优化应用程序的生命周期

参考资料 (XAML)

优化应用程序的生命周期

   

在分配的时间内暂停和恢复

一个应用程序有 5 秒时间在暂停事件触发后保存状态。
应用程序应该有效地恢复。

参考资料:
优化应用程序的生命周期

参考资料(HTML)

优化应用程序的生命周期

参考资料(XAML)

优化应用程序的生命周期

返回顶部

 
性能–缓存和本地数据 

尽可能多地依赖于本地、封装的内容

本地资产(图像、数据文件等)加载速度比您通过网络调用从一个服务或网站下载资产更快。应将常见的缓存技术应用于您的 Metro 应用程序。
要最小化不必要或重复的下载,请在您应用程序的包中包含您的项目需要的所有资产。
如果您必须使用在线资产,请在本地缓存它们,以便可以重用它们。应用一条能在相应的过期时间、管理本地状态和您在本地驱动器中使用多少空间之间获得恰当平衡的策略。

参考资料(HTML)

待定

参考资料(XAML)

待定

返回顶部

 
性能–启动 

第一个页面必须在不到5秒内加载。

第一印象至关重要。快速且流畅的应用程序必须拥有不错的启动时间。计划在从冷启动后 5 秒内加载(并正常运行)您应用程序的第一个页面。
如果您的应用程序花了更长时间,请考虑使用扩展的初始屏幕来让用户知道进度。在第一次加载您的应用程序后,缓存足够的数据或内容,以在下次需要加载它时能迅速启动并显示一个有效的屏幕。如果从缓存的数据加载,请在后台刷新数据,以便不会影响加载体验。

参考资料:
最小化 HTML 应用程序的启动时间
最小化 XAML 应用程序的启动时间

参考资料(HTML)

缩短应用程序的加载时间

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh771190.aspx

   

充分利用字节码缓存

这种优化仅适用于使用 HTML 和 JavaScript 构建的 Metro 应用程序。

使用字节码缓存技术,系统为每个 JavaScript 文件创建一次字节码,而不会在它每次启动应用程序时重新创建字节码。
要确保您的应用程序能从字节码缓存获益,请:

·         确保所有 JavaScript 文件使用一种字节顺序标记 (BOM) 进行了 UTF8 编码

·         确保所有 JavaScript 文件都在您的 HTML 开始页面的根下静态引用

有关字节码缓存的更多细节,请访问 https://msdn.microsoft.com/zh-cn/library/windows/apps/hh849088.aspx

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh849088.aspx

参考资料 (XAML)

不适用

返回顶部

 
性能–内存 

将内存工作集控制在目标大小

大部分时间,使用更少的内存意味着您在更高效地做事。
此外,当您的应用程序使用更少的内存时,系统有更多的内存可用于任务切换,它减少了应用程序在暂停时被终止的几率。
Metro 应用程序的目标工作集大小为,小应用程序 80 MB,中等大小应用程序 100 MB,大应用程序 150MB。每个应用程序的这些数字显然不同,但请让您的工作集不要偏离目标太远。

您可用于优化应用程序工作集的技术包括:

·         在暂停时,释放您知道将在以后恢复时过期的内存或资源。

·         仅以想要的(或合理的)分辨率解码图像。

·         在您仅需要缩略图时为图像使用缩略图 API。

·         尽可能早地释放占资源较多的对象。不要忘记调用 URL.revokeObjectURL

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh750313.aspx

参考资料(XAML)

性能白皮书。

返回顶部

 
性能–网络 

适当管理网络资源

虽然网络操作是异步的;但优化网络调用可帮助用户认识到您应用程序响应迅速(或准备就绪)。

您应该执行的常见网络调用优化包括:

·         在不需要挂起的网络操作时取消它们。不要执行不会用到的工作。

·         设计您的 API 以返回正确的数据量。如果您返回太多数据,您将执行额外的分析和下载额外的数据,这可能在计量网络上花费用户的成本;如果您下载的数据太少,您将会对需要准备向用户显示的数据执行太多调用(实际浪费更多带宽并导致更长延迟)。

返回顶部

 
性能–后台任务 

认真考虑为后台任务分配的时间

应用程序在后台运行或者锁屏下运行会定期收集一定量的CPU时间.如果应用程序使用了它的所有可用 CPU 时间,它的后台任务将会挂起,直到应用的 CPU 配额在下一次 CPU 配额更新时得到补充。
计划您分配的 CPU 时间以最大化连续性。

参考资料(HTML)

https://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27411

参考资料(XAML)

https://www.microsoft.com/download/en/details.aspx?displaylang=en&id=27411

返回顶部

 
其他信息 

可访问

编写容易访问的应用程序可帮助您获得更多客户。
平台控件已执行了大量必要工作来使您的应用程序容易访问。您应该熟悉基本的可访问性需求并决定您是否希望向此访问群体推广。如果您选择可供这些访问群体访问,请遵守可访问性指南并确保您在向商店提交时将应用程序声明为可访问

如果您不满足可访问性需求(或没有慎密测试可访问性),不要在商店中将您的应用程序声明为可访问;这可能导致糟糕的审核结果。

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh700325

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh700325

   

已本地化

Windows 在全球得到了广泛使用,所以您应用程序的设计需要让资源(字符串和图像)与它们的代码分开,以帮助简化本地化。
如果要将您的应用程序本地化为不同语言,请参阅设计全球化 Metro 应用程序的指南、让应用程序适用于全球的指南应用程序资源指南

参考资料(HTML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh781206

参考资料(XAML)

https://msdn.microsoft.com/zh-cn/library/windows/apps/hh781206

返回顶部