通过


什么是通用 Windows 平台 (UWP)应用?

UWP 是为 Windows 创建客户端应用程序的多种方式之一。

注意

如果开始开发Windows应用,建议考虑使用 Windows 应用 SDKWinUI 而不是 UWP。 尽管仍受支持,但 UWP 未处于积极开发状态。 有关详细信息,请参阅 Start 开发Windows应用

若要下载开始创建 Windows 应用所需的工具,请参阅 安装 Windows 应用 SDK 的工具,然后编写您的第一个应用

UWP 在Microsoft开发故事中适合何处?

UWP 是创建在Windows 10和Windows 11设备上运行的应用的一种选择,可以与其他平台结合使用。 UWP 应用可以使用适用于 UWP 应用的 Win32 API 和.NET类(请参阅 uWP 应用的 API 集Dlls for UWP 应用.NET)。

UWP 应用的功能

UWP 应用是:

  • 安全:UWP 应用声明其访问哪些设备资源和数据 用户必须对该访问授权。
  • 能够在运行Windows的所有设备上使用通用 API。
  • 可以使用设备的特定功能并让 UI 适应不同的设备屏幕尺寸、分辨率和 DPI。
  • 可以从运行Windows 10或Windows 11的所有设备(或仅您指定的那些设备)的Microsoft Store中获取。 Microsoft Store提供了多种方式在应用中赚钱。
  • 能够在不对计算机构成风险或引起“计算机腐烂”的情况下安装和卸载。
  • 引人入胜:使用与Windows时间线和 Cortana 的“选取离开位置”交互的动态磁贴、推送通知和用户活动来吸引用户。
  • C#、C++、Visual Basic 和 JavaScript 中的可编程。 对于 UI,请使用 WinUI、XAML、HTML 或 DirectX。

让我们来更详细地看看这些。

安全

UWP 应用在其清单中声明所需的设备能力,如访问麦克风、位置、网络摄像头、USB 设备、文件等。 用户必须在应用被授予能力前确认并授权该访问。

适用于所有设备的通用 API 表面

Windows 10引入了通用 Windows 平台 (UWP),该通用 Windows 平台 (UWP)在运行Windows的每个设备上提供一个通用应用平台。 在所有Windows设备上,UWP 核心 API 都是相同的。 如果你的应用仅使用核心 API,无论你是否面向桌面电脑、Xbox、混合现实头戴显示设备等,它都会在任何Windows设备上运行。

使用 C++/WinRT 编写的 UWP 应用可以访问属于 UWP 的 Win32 API。 这些 Win32 API 由所有Windows设备实现。

扩展 SDK 公开特定设备类型的特殊能力

如果面向通用 API,则应用可以在运行Windows 10或更高版本的所有设备上运行。 但如果希望 UWP 应用利用设备特定的 API,也同样可以这样做。

扩展 SDK 让你可以为不同设备调用专用的 API。 例如,如果你的 UWP 应用面向 IoT 设备,则可以在项目中添加 IoT 扩展 SDK 以利用特定于 IoT 设备的功能。 有关添加扩展 SDK 的详细信息,请参阅使用扩展 SDK 编程的“扩展 SDK”部分。

可以编写您的应用,使其仅在特定类型的设备上运行,然后在 Microsoft Store 中将其分发限制为仅该类型的设备。 或者,你可以有条件地测试 API 在运行时的状态,并相应调整应用的行为。 有关详细信息,请参阅使用扩展 SDK 编程的“编写代码”部分。

自适应控件和输入

UI 元素通过调整其布局和比例响应应用所运行屏幕的尺寸和 DPI。 UWP 应用与多种输入类型(如键盘、鼠标、触控、触笔和游戏控制器)配合良好。 如果你需要进一步为特定屏幕大小或设备定制 UI,新的布局面板和工具将帮助你设计可以适应运行应用的不同设备和外形规格的 UI。

Windows操作系统驱动的设备

Windows可帮助你将 UI 定向到具有以下功能的多个设备:

  • 通用控件和布局面板可帮助你针对设备的屏幕分辨率优化 UI。 例如,按钮和滑块等控件将自动适应设备屏幕的尺寸和 DPI 密度。 布局面板根据屏幕尺寸帮助调整内容的布局。 自适应缩放根据不同设备的分辨率和 DPI 自动进行调整。
  • 通过常用的输入处理功能,可通过触控、触笔、鼠标、键盘或游戏控制器接收输入。
  • 工具可以帮助你设计出能够适应不同屏幕分辨率的 UI。

你的应用 UI 的某些方面将自动适应不同的设备。 但是,你的应用的用户体验设计可能需要根据正在运行该应用的设备进行调整。 例如,照片应用在手持式小型设备上运行时可以调整其 UI,以确保该用法是单手使用的理想之选。 当照片应用在台式机上运行时,UI 应进行调整以充分利用额外的屏幕空间。

有一个适用于所有设备的应用商店

统一的应用商店使应用在电脑、平板电脑、Xbox、HoloLens、Surface中心和物联网(IoT)设备等Windows设备上可用。 可以向 Microsoft Store 提交应用,并使其对所有类型的设备或仅对所选设备类型可用。 在一个位置提交和管理Windows设备的所有应用。 想要使用 UWP 功能实现现代化并在 Microsoft 应用商店中销售 C++ 桌面应用吗? 这样也可以。

UWP 应用与 Application Insights 集成以获得详细的遥测和分析 - 用于了解用户、改进应用的重要工具。

UWP 应用可以打包MSIX并通过Microsoft Store或其他方式分发。 无论采取哪种方式分发应用,MSIX 都允许对应用进行更新,请参阅从代码更新非应用商店发布的应用包

获取应用收益

可以选择如何获取应用收益。 可以通过多种方法利用你的应用盈利。 只需选择最适合自身的方式即可,例如:

  • 付费下载是最简单的选项。 只需指定价格即可。
  • 试用允许用户在购买前先试用你的应用,与更传统的“免费模式”选项相比,用户更易于发现你的应用并转而使用该应用。
  • 激励用户的促销价格。
  • 应用内购买。

向用户提供相关且实时的信息以吸引他们再次访问

保持用户积极使用你的 UWP 应用有多种方法:

  • 动态磁贴和锁屏磁贴可以从应用中显示与上下文相关且及时的信息。
  • 推送通知可提供实时提醒来引起用户的注意。
  • 用户活动功能使得用户能够继续他们在应用中的操作,无论是否在不同设备上进行。
  • “操作中心”整理来自您应用的通知。
  • 后台执行和触发器使你的应用仅在用户需要时才会运行。
  • 你的应用可以使用语音和蓝牙 LE 设备来帮助用户与周围的世界进行交互。
  • 集成 Cortana 以将语音命令功能添加到你的应用。

使用一种你已知道的语言

UWP 应用使用操作系统提供的本机 API Windows 运行时。 此 API 在 C++ 中实现,在 C#、Visual Basic、C++ 和 JavaScript 中受支持。 适用于编写 UWP 应用的部分选项包括:

  • XAML UI 和 C#、VB 或 C++
  • DirectX UI 和 C++
  • JavaScript 和 HTML
  • WinUI

准备工作

查看准备工作以下载创建应用所需的工具,然后编写第一个应用

设计应用

Microsoft设计系统命名为 Fluent。 Fluent Design System 是一套结合最佳实践的 UWP 功能,用于创建在各种 Windows 驱动的设备上表现出色的应用程序。 Fluent 体验能够适应各类设备,并提供自然的使用感受,从平板电脑到笔记本电脑,从电脑到电视,再到虚拟现实设备。 有关 Fluent Design 的简介,请参阅 UWP 应用的 Fluent Design 系统

除了确定应用外观和运行方式外,良好的设计还是确定用户如何与你的应用交互的过程。 用户体验极大地影响着用户对你的应用的满意度,所以请勿忽略此步骤。 Design 基础知识介绍了如何设计通用Windows应用。 请参阅设备入门,以帮助你全面考虑在你要针对的所有不同外形规格上使用应用的交互体验。

除了在不同设备上的交互外,还需规划应用以利用在多个设备之间运行的优势。 例如:

添加服务

向 Store 提交应用

Partner Center允许在一个位置管理和提交适用于Windows设备的所有应用。 请参阅 Publish Windows 应用和游戏了解如何在Microsoft Store中提交应用以供发布。

新功能简化了流程,同时给予您更多的控制。 你还会找到与付款详细信息组合的详细分析报告推广你的应用并与客户互动的方式,等等。

有关更多介绍性材料,请参阅生成适用于Windows 10设备的Windows应用简介

更多高级主题

通用 Windows 平台与Windows 运行时 API 的关系

如果您正在开发一个通用 Windows 平台 (UWP) 应用程序,那么将「通用 Windows 平台 (UWP)」和「Windows 运行时 (WinRT)」视为基本上可以视为同义词,可以让您获得很多好处和便利。 但是,我们可以深入研究这些技术,明确这些概念之间的具体差异。 如果你对这些概念感到好奇,本部分提供了终极解答。

Windows 运行时和 WinRT API 是Windows API 的演变。 最初,Windows 应用程序是用简单的 C 样式 Win32 API 编写的,其中添加了 COM API,还有是一个显著的例子。 以后的技术(如Windows 窗体、WPF、.NET和托管语言)也提供了一种独特的方法,以自己的 API 技术风格编写Windows应用。 在幕后,Windows 运行时是 COM 的下一个阶段。 在实际的应用程序二进制接口 (ABI) 层,其在 COM 中的根基是可见的。 但与 COM 不同,Windows 运行时旨在以更自然的方式从各种编程语言中调用。 因此,可通过所谓的语言投影访问Windows 运行时。 投影会隐藏 COM 详细信息,并为给定语言提供更自然的编程体验。 Windows 运行时 语言可以投影到 C#、Visual Basic、标准 C++、JavaScript 等语言中。 此外,一旦正确打包(请参阅 Desktop Bridge),即可从各种应用程序模型中生成的应用中调用 WinRT API:Win32、.NET、WinForms、WPF 和 UWP。

UWP 是基于Windows 运行时构建的应用程序模型。 从技术上讲,UWP 应用程序模型基于 CoreApplication,但根据所选编程语言,该详细信息可能会隐藏。 UWP 支持编写单个二进制文件,如果需要,可以将其发布到微软商店,并在上述多种设备形态上运行。 您 UWP 应用的设备适用范围取决于您限制应用调用的 Windows 运行时 API 的子集,或者您有条件地调用的这些 API。

希望本部分能够成功描述技术基础Windows 运行时 API 之间的差异,以及通用 Windows 平台的机制和业务价值。