Windows 传统上在由 x86/x64 处理器提供支持的计算机上运行,但最近也在由 Arm 处理器提供支持的设备上运行。
由 Arm 提供支持的设备特别有吸引力,因为 Arm 体系结构的节能特性使这些设备能够在提供更长电池使用时间的同时提供出色的性能。 芯片上的 Arm 系统(SoC)通常包括其他关键功能,例如强大的 CPU、GPU、Wi-Fi 和移动数据网络,以及用于加速 AI 工作负载的神经处理器单元(NPU)。
生成在 Arm 上运行的 Windows 应用
Windows 10 支持在 Arm 设备上运行未经修改的现有 x86 应用。 Windows 11 增加了在 Arm 设备上运行未修改的 x64 Windows 应用的功能。 这种在 Arm 设备上运行 x86 和 x64 应用的功能使最终用户确信,大多数现有应用和工具即使在新的 Arm 驱动的设备上也能运行良好。
为了获得最佳性能、响应能力和电池使用时间,用户想要并且需要 Arm 本机 Windows 应用,这意味着开发人员需要生成或移植 Arm 本机 Windows 应用。
检查某个应用程序是否支持在 Arm 上运行:Windows on Arm 就绪软件。 此站点是许多在 Arm 体系结构上运行且正在积极维护的 Windows 设备上的应用和游戏的兼容性信息的源。
虚拟机
可以在 Azure 上使用基于 Ampere Altra Arm 的处理器创建和部署 Windows 11 Arm64 VM。 请在这篇快速入门文章中了解操作方法。
详细了解如何使用基于 ARM 的 Windows 虚拟机
- 基于 ARM 的 Windows 虚拟机常见问题解答
- 正式发布采用基于 Ampere Altra Arm 的处理器的 Azure 虚拟机
- 使用 Terraform 部署基于 Arm 的 Azure Kubernetes 服务 (AKS) 群集 - ARM 开发人员中心
- 详细了解如何通过在云端托管的持续集成/持续部署 (CI/CD)(例如 Azure DevOps 或 GitHub)构建和测试自动化。
Arm 开发人员设备
想要在 Windows 上生成和测试 Arm 本机应用的开发人员拥有比以往更多的选项。
Copilot+ 电脑 通过各种设备制造商提供神经处理单元(NPU)和最新的 AI 功能和计算能力。 其中许多电脑都使用基于 Arm 的 Snapdragon® X 系列处理器,该处理器每秒提供 45 万亿次运算(TOPS)。
Windows 开发工具包 2023 (代码名称“Project Volterra”)不再可供购买,但它仍然是一种可行的基于 Arm 的设备,支持 Windows 开发、AI 研究和测试,以便将 AI 集成到应用和体验中。
在 Arm 上支持现有的 Windows 应用
Arm 上的 Windows 运行本机 Arm 应用,以及许多未修改的 x86 和 x64 应用。 为了获得最佳性能和电池寿命,请尽可能构建应用程序以适应 Arm 原生。 可以使用许多不同的工具和技术生成 Windows 应用,包括本机 C/C++ Win32 应用、经典 .NET Framework WinForms/WPF 应用、新式 .NET 或 MAUI 应用,甚至使用 Java、Python、Node.js等构建的应用。
查找 Arm 开发工具
Microsoft持续提供 ARM 原生开发人员工具集更新,以构建和移植能够本地运行于 Windows ARM 设备的应用程序,正如针对 x64 时一样简单。 在 Arm 上支持面向 Arm 的应用开发。
- 原生 Arm 的 Visual Studio 包括 Visual C++、.NET 和 .NET Framework 和 Java,使开发人员能够在基于 Arm 的设备上原生构建和调试 Arm 应用。 了解详细信息:Arm64 Visual Studio 正式发布!(2022 年 11 月)、Visual Studio 2022 17.7 中的 MSVC ARM64 优化(2023 年 9 月)。
- Visual Studio Code 本机支持 Arm,并且可以安装在 Arm 设备上。 VS Code C++ 扩展还提供 C++ IntelliSense 和生成支持,用于开发在 Arm64 设备上本机运行的 Windows 应用程序。
- .NET 6+ 已支持 Arm,适用于本机 Arm 执行和 x64 仿真。 若要开发直接在本地运行于 Arm64 设备上的 .NET 应用,请安装针对 Arm 的新版本 Visual Studio 2022 17.4 和 .NET 8 Arm64 SDK。 若要详细了解面向 Arm 的 .NET 8 支持和面向 Arm64 的性能改进,请访问 .NET 博客: .NET 8 中的 Arm64 性能改进(2023 年 10 月)。
-
.NET 6 Arm64 SDK: 默认情况下,如果使用
dotnet runArm64 SDK 的 .NET 6 应用,它将作为 Arm64 运行。 使用该工具dotnet-runtimeinfo可发现 .NET 正在运行的环境。 请参阅有关 Arm64 支持的 .NET 6 博客公告了解详细信息。 - VC++ 工具链(Arm 开发人员) 是 Arm 生成的 Arm 体系结构版本的 GNU 工具链,使合作伙伴、开发人员和社区能够使用最新 Arm 体系结构中的新功能,以及来自开源项目 GCC、Binutils、glibc、Newlib 和 GDB 的新功能。
- OpenJDK 中面向 Arm 的 Java 支持:宣布在 ARM 上为 Windows 提供 OpenJDK(2020 年 6 月)
- GitHub Actions:GitHub Actions(GitHub 的 CI/CD 工作流引擎)是许多开发人员工作流不可或缺的一部分。 它们使用此工具持续生成、测试和部署应用。 GitHub Actions 现在以两种风格适用于 Arm 上的 Windows:1。 可在 Arm VM 或 Arm 设备上托管的自托管运行器,以及 2。 GitHub 托管的运行程序(目前发布了专用 beta 版,但正式版本即将发布)。
- Docker Desktop:容器是一个常用的部署目标,原因有很多 - 简化的开发工作流、隔离和安全性、高效的资源利用率、可移植性和可重现性。 Docker 桌面现在在 Windows Arm 版本上原生运行。
注意
术语 Arm 是指在 Arm64(也称为 AArch64)处理器上运行桌面版本 Windows 的个人电脑的简写。 术语 Arm32 是 32 位 Arm 体系结构的简写(在其他文档中通常称为 Arm )。 由 Arm 提供支持的电脑还提供出色的应用程序兼容性,支持运行未经修改的现有 x86 win32 应用程序。 Arm 应用可无需任何仿真以本机方式运行,而 x86 和 x64 应用则通过仿真在 Arm 设备上运行。
Arm64EC - 有关更新在 Arm 上运行的 Windows 应用的帮助
Arm64EC(“仿真兼容”)使你可以以增量方式生成新应用或移植现有应用,以尽可能利用本机 Arm 性能,同时利用现有的 x64 代码和库,直到完全迁移。 了解详细信息:
有关开发在 Arm 设备上运行的 Windows 应用的其他技巧
使用 MSIX 打包应用进行分发。 有关 MSIX 如何支持 Arm 和 Arm64 的详细信息,请参阅应用包体系结构:Arm 和 Arm64。
并非所有 Visual Studio 项目都配置为从 Arm 设备开始调试 (F5) 时在本地启动项目。 你可能需要配置 Visual Studio 进行远程调试,即使应用在本地运行。 有关详细信息,请参阅远程调试。
要在 Visual Studio 上查找并安装推荐的包,请访问 Visual Studio 下载页面。
- 对于 Visual Studio 2022 远程工具,请滚动到“所有下载”部分下方,然后展开“Visual Studio 2022 工具”下拉菜单。 其中列出了适用于 Visual Studio 2022 的远程工具 。 请务必选中“Arm64”单选按钮,然后选中“下载”。
- 对于 Microsoft Visual C++ 可再发行程序包,请滚动到“所有下载”部分下方,然后展开“其他工具和框架”下拉菜单。 其中列出了 Microsoft Visual C++ Redistributable for Visual Studio 2022。 请务必选中“Arm64”单选按钮,然后选中“下载”。
- 如果使用较旧版本的 Visual Studio,请选择页面底部的 “旧下载” 链接以搜索与 Visual Studio 版本关联的下载。
当用户从 Microsoft 应用商店在 Arm 设备上安装应用时,Windows 11 会自动选择可用的应用的最佳版本。 如果将 x86、Arm32 和 Arm64 版本的应用提交到 Microsoft 应用商店,作系统会自动安装应用的 Arm64 版本。 如果仅提交应用的 x86 和 Arm32 版本,操作系统将安装 Arm32 版本。 如果仅提交应用的 x86 版本,作系统将安装该版本,并在仿真下运行它。
在选择应用体系结构时,请选择 32 位 x86 版本,以在基于 Arm 的 Windows 电脑上运行应用的 32 位版本。 如果应用的 x64 Win32 版本不起作用,则大多数应用都有可用的 x86 版本。
有关体系结构的详细信息,请参阅应用包体系结构。
应用保证 Arm 咨询服务
我们指导 将 Arm 支持添加到 Windows 应用 ,逐步讲解如何创建应用的 Arm 优化版本。 如果遇到问题,应用保证 Arm 咨询服务可以提供帮助。 除了我们现有的承诺之外,此服务还有:你的应用在 Arm 上的 Windows 上运行,如果遇到任何问题,Microsoft有助于修正它们。 了解详细信息。
其他资源
- Satya Nadella 在 Build 2022 主题演讲中宣布推出“Project Volterra”
- x86 仿真在 Arm 上的工作原理
- 排查 x86 桌面应用问题
- 排查 ARM UWP 应用问题
- Arm 上的程序兼容性疑难解答
- 使用 WDK 生成 Arm64 驱动程序:生成 Arm64 驱动程序的说明。
- 在 Arm 上调试 x86 应用 | 在 Arm 上调试 x86 应用的指南。
- 视频:生成 Arm64 Win32 C++ 应用
- 面向开发人员的基于 Arm 的 Windows 10(Microsoft Build 2018 视频演示)
- 博客:Windows 10 支持 Arm 开发的原始公告
- 报告 bug