通用Windows平台应用

基于通用Windows平台构建的应用程序,可在兼容的Microsoft Windows系统上使用

通用Windows平台应用,也称Metro风格应用,是一种通过Windows应用商店Microsoft Windows作业系统分发的移动应用程式,它们不同于在设计、开发、分发以及内容上不同于传统桌面应用程式。

Khan Academy,一个Metro风格应用程式的例子
左边: 无内容的桌面上运行著一个传统的应用程式;它展示了60个GUI图形部件,粗边框和用户界面
右边:Metro风格应用程式;主要由内容组成

感观

 
传统Windows应用程式的剖析:这此被称为用户界面的元素一开始便被Metro风格移用程式所摒弃,而后的重现,也是精减之作。

传统的桌面软体运行于窗口内,有它们自己的边框,以区分彼此。边框上还会附著用于显示应用程式标题的标题栏,系统菜单、偶尔也会有一组最大化、最小化、关闭和求助按钮置于其上。框围软体的窗口可水平或垂直的更改尺寸。它们是由用户界面中可见的元素控制,包括菜单工具栏绷带、滚动条以及窗口边框。在Windows Vista和Windows 7中这些元素变得更加复杂,以至于需要特定的应用程式来做截屏。

Windows 8中,Metro风格应用程式不运行于窗口中。它们或者是占据了整个荧屏;或者是移到荧屏的一侧,而占据了荧屏的那个垂直部分。Metro风格应用程式没有传统的用户界面,没有标题栏、没有系统窗口、没有窗口边框、也没有控制按钮等等,真正的应和了微软常说的“内容才是主角”的口号。但必要的命令界面像滚动条这样的界面元素还是有的,不过起初被隐藏起来。Metro风格应用程式在他们自己的界面中并没有菜单,而是借用置于Settings charm中的特制菜单。

根据用户的反馈,微软逐渐宽松了这种无界面元素的规则。在Windows 8.1中,标题栏被引入但处于隐藏的状态,除非用户将滑鼠滑越于荧屏顶端,否则它决不会现身。Windows 10引入了平板模式,平板电脑安装后会自动开启这种模式;而在桌面或笔电中它被默认是关闭的,但却可手动开启与关闭。当这种模式关闭时,运行于桌面的Metro风格应用程式有可见的标题栏,大小也是可调的。当平板模式开启后,Metro风格应用回退至Windows 8.1时的样式,所有应用程式都以最大化呈现占据著整个荧屏,不可调节尺寸。[1][2][3]

此外,Windows 10也将设定Charm移除,被一种称之为“汉堡菜单”的系统菜单变体所取代。

分发和授权

此前,Windows可以安装来自于任何地方的应用程式,无论是随身碟还是网际网。但对于Metro风格应用程式来说,只能够透过Windows商店来购买安装。购买而来的Metro风格应用程式与账户绑定,因此无论身处何处,都可通过同一帐户安装于不同的设备中。然而在Windows 10中安装次数得以受限。

多任务

Windows 8之前,任务栏被用于抽选正在运行的程式,而在Windows 8中运行中的Metro风格应用程式是通过荧屏左侧特定的应用选择器来选取。[4]

生命周期

在Metro风格应用程式出现以前,软体的运转与结束都可由用户控制,比如双击图标开始,单击关闭按钮结束。然而Metro应用程式是沉浸式的,可能在用户还未开启它们时,系统已将其启用;而当用户关闭后,系统可能还在保留它们在后台工作。Metro风格应用程式的生存周期是由Windows应用管理员根据系统资源利用情形而自行管理的。

开发

Windows运行时

传统的应用程式是通过使用Windows API库函数在计算机语言下开发的,人们可以自由选择喜爱的开发工具与开发语言。然而要开发Metro风格应用程式便须使用WinRT运行时库,并且对于系统函数的调用加以限制,未能资质验证通过的应用是无法在Windows商店中上架的。

并不是每个使用WinRT运行时库的应用都是Metro风格应用;WinRT中的有些功能也可被桌面应用程式所利用。[5]


Metro风格应用程式只能使用微软自家的开发工具开发。虽然声称可以在多种语言下互操作,但自行尝试实现对窗口运行时的绑定将导致失败。根据Embarcadero Technologies的首席科学家Allen Bauer所说,这里有些编程接口几乎是所有程式开始者所必须调用的,但是却得到微软的禁止,除非是使用微软自家的Visual C++运行时才行。[6][7][8]

通用应用

可同时运行于智慧型电话个人电脑游戏终端HoloLens的应用称之为通用应用。这是通过使用通用应用接口来完成的,最早出现于Windows 8.1和Windows Phone 8.1中。Visual Studio 2013 with Update 2起可以开发这类应用程式。[9][10]Windows 10为开发通用应用而引入了通用Windows平台10。使用Visual Studio 2015可以利用这一平台开发这样的应用。早先的Windows 8.1、Windows Phone 8.1的应用需要经过修改后才可迁移至此平台。[11][12]

特定Windows平台并不是一个不同于WinRT的开发库,相反只是它的扩展。通用应用不再是为特定作业系统而编写的,相反,它们定位于一个或多个不同的设备,比如桌面、移动、电玩XBox以至于物联网。只要设备能力允许,那么它们便可运行。一个通用应用可以在智慧型电话和平板上运行,并提供差不多的体验。运行于智慧型电话的通用应用在连接到荧屏后会可能会与运行于平板之上相同。[13]

APPX

APPX是用于分发和安装Metro风格应用程式文件格式,它使用于桌面和移动版的Windows[14]。 为了统一桌面版和移动版中的应用,在Windows Phone 8.1中,XAP文件格式也被APPX取代。[15]APPX文件仅兼容Windows Phone 8.1和之后的版本[16]

Windows电话市场允许用户将APPX文件下载至SD卡中并手动安装它们。但在桌面系统,如Windows 8,这样的做法是被禁止的,除非用户可得到开发者许可或使用在商业域中的电脑。[17]

安全性

Windows软体只要它们希望便有使用和改变他们生态系统的能力。Windows账户权限,用户账户控制面板和杀毒软体尝试在应用试图这么做前通知并让用户干预他们的做法,以至于免于它们带来的威胁。然而Metro风格应用软体运行于沙盒中,是无法永远改变Windows作业系统的生态环境的。它们需要权限才可访问硬体资源,比如网际录影机和麦克风,而且它们也仅能使用用户文档,比如我的文档。微软进一步的协调这些应用,并当在发现它们带来安全和隐私问题时删除它们。[18][19]

参见

参考资料

  1. ^ Seifert, Dan. The nine most important updates in Windows 10. The Verge. Vox Media. 29 July 2015 [2015-08-15]. (原始内容存档于2020-11-08). 
  2. ^ Warren, Tom. Windows 10 review. The Verge. Vox Media. 28 July 2015. (原始内容存档于2021-02-24). 
  3. ^ Bott, Ed. Windows 10: A new beginning. ZDNet. CBS Interactive. 28 July 2015. (原始内容存档于2020-10-29). 
  4. ^ Switch between open apps. Microsoft Surface manual. Microsoft. [31 December 2013]. (原始内容存档于2015-12-03). 
  5. ^ Windows Runtime APIs for desktop apps. MSDN. Microsoft. [31 July 2015]. (原始内容存档于2018-02-03). 
  6. ^ Grange, Eric. Why no native WinRT support in Delphi XE3?. DelphiTools. 23 August 2012 [13 January 2014]. (原始内容存档于2021-01-26). 
  7. ^ Anderson, Tim. Third-party compilers locked out of Windows Runtime development. Tim Anderson's ITWriting. 23 August 2012 [13 January 2014]. (原始内容存档于2018-02-03). 
  8. ^ Bauer, Allen. HTML5 Builder. Embarcadero Developer Network. Embarcadero Technologies. 22 August 2012 [13 January 2014]. (原始内容存档于2020-06-14). 
  9. ^ Waheed, Ahmed. A first look at the Windows 10 universal app platform. Microsoft Gulf Technical Community blog. Microsoft. 2 March 2015 [2015-08-15]. (原始内容存档于2015-07-15). 
  10. ^ Appel, Rachel. Modern Apps : Build Universal Apps for the Windows Platform. MSDN Magazine (Microsoft). September 2014, 29 (9) [2015-08-15]. (原始内容存档于2018-10-03). 
  11. ^ Migrate apps to the Universal Windows Platform (UWP). MSDN. Microsoft. [31 July 2015]. (原始内容存档于2017-07-28). 
  12. ^ Move from Windows Runtime 8.x to UWP. Windows Developer Center. Microsoft. [31 July 2015]. (原始内容存档于2015-12-09). 
  13. ^ Guide to Universal Windows Platform (UWP) apps. Windows Developers Center. Microsoft. [31 July 2015]. (原始内容存档于2016-02-21). 
  14. ^ App packages and deployment (Windows Store apps) (Windows). [2015-08-15]. (原始内容存档于2014-03-30). 
  15. ^ Windows Phone 8.1 includes universal apps and lots of feature updates - The Verge. [2015-08-15]. (原始内容存档于2015-07-13). 
  16. ^ How to Install Appx File on Windows Phone 8.1. [2015-08-15]. (原始内容存档于2015-04-25). 
  17. ^ How To Sideload Modern Apps on Windows 8 - HowToGeek. [2015-08-15]. (原始内容存档于2021-04-11). 
  18. ^ Ziegler, Chris. Microsoft talks Windows Store features, Metro app sandboxing for Windows 8 developers. The Verge. Vox Media. 17 May 2012 [12 January 2013]. (原始内容存档于2021-04-13). 
  19. ^ Rosoff, Matt. Here's Everything You Wanted To Know About Microsoft's Upcoming iPad Killers. Business Insider. 9 February 2012 [12 January 2013]. (原始内容存档于2013-01-22).