Universal Windows Platform是Windows 8和Windows Phone应用程序的WinRT的替代品吗?

Hap*_*ace 16 windows-8 windows-runtime windows-8.1 win-universal-app windows-10

Universal Windows Platform是Windows 8和Windows Phone应用程序的WinRT的替代品吗?我的意思是,有一个WinRT平台专门为Windows 8开发Metro应用程序.现在,它被UWP取代,不是吗?

ILO*_*ABN 22

这是正确的,UWP是所有Windows设备未来的新平台(Win 10+).然而,WinRT并没有被UWP取代,而是取而代之的是UWP,使得UWP成为更广泛的API集,可以在更多设备上使用.正如微软自己所说:

随着这种发展,针对UWP的应用程序不仅可以调用所有设备通用的WinRT API,还可以调用特定于运行应用程序的设备系列的API(包括Win32和.NET API).

UWP平台支持"通用设备系列"类API,然后在所有Windows平台(Xbox,电话,桌面等)上支持.您可以使用一些可以限制应用范围的扩展系列,例如"移动设备系列".

但是,可以在运行时优雅地检查和使用这些特定的设备系列API.例如,您可以在手机上使用GPS显示自己的位置,但不能在Xbox上启用该功能.

我希望这个答案对您有所帮助,如果您对此有任何疑问,我建议您阅读有关UWP平台的文章:

资料来源:https://msdn.microsoft.com/library/windows/apps/dn894631.aspx

祝你有美好的一天!

  • *所有Windows设备*......微小的脚注:"ALL"排除了绝大多数Windows设备(运行Windows XP,Vista,7,8或8.1的设备). (4认同)

Max*_*ini 8

这有点令人困惑,因为在Windows 8.x中,"Windows Runtime"实际上用于指代一些不同的东西:

  1. 用于定义和使用Windows API的新模式(以及支持代码/ OS组件),在大多数情况下,主要取代"Win32"(即扁平C风格)和新API的经典COM.这实际上是关于语言互操作:允许Windows团队(以及可能的其他人)在C++中创建组件,这些组件公开不依赖于GC或像CLR这样的运行时的API,但仍然觉得从C#或JavaScript,无需手动编写包装器.

  2. 遵循上述模式的一组Windows API.

  3. 用于构建和运行新型Windows应用程序的新平台/环境,旨在具有移动和Web应用程序的一些特性,从而减少系统安全性,可靠性,性能,电池寿命等方面的潜在问题.就是随着Windows 10演变成UWP的原因.

在Windows 8天中,这些应用程序在8.0的公开预览期间被称为"Metro风格应用程序",并在RTM之前正式称为"Windows应用程序应用程序".这些应用程序的平台/环境 ...官方并没有真正的名称(除了"Metro风格应用程序的平台").非正式地,人们(包括在微软)有时将其称为"Metro"(一整套蠕虫本身)或......"WinRT".

那么,WinRT"正确"(定义1和2)与非官方WinRT定义(3)又名UWP又称以前无名的"Metro风格应用程序平台"之间的关系是什么?好吧,由于WinRT和新的应用程序平台都是在Windows 8中引入的,当时大多数WinRT API都是针对新平台的.当时的应用程序平台(以及商店政策)对允许在应用程序中使用哪些旧版Win32 API的限制更多 - 大多数情况下,这不是任何技术限制,更多是关于希望使用新应用程序的团队作为清理膨胀的Win32 API表面的借口.但从技术上讲,WinRT通常是新Windows API的常见模式,无论是否在UWA中使用,"UWA vs.经典应用"和"WinRT vs. Win32"大多是独立的; 随着时间的推移,他们逐渐启用了更多的WinRT API,以便在UWA之外使用,并放宽了在应用程序中使用大量遗留Win32 API的政策(并且还继续为某些用例引入新的扁平C风格API).

总而言之,说"UWP取代WinRT"在技术上并不准确,虽然可以理解,因为这些东西很混乱.UWP取代了无名应用平台(3); 本质上它只是一个更新版本,已被移植到其他设备类型并与经典桌面UI集成.WinRT在其正确的定义(1)中,仍然是用于UWA甚至在UWAs之外的新Windows API的基础.