Windows 傳統上在由 x86/x64 處理器提供支援的電腦上執行,但最近也會在由 Arm 處理器提供支援的裝置上執行。
Arm 支援的裝置特別有趣,因為 Arm 架構的節電本質可讓這些裝置提供較長的電池使用時間,同時提供絕佳的效能。 Arm 系統單晶片 (SoC) 通常包括其他關鍵功能,例如強大的 CPU、GPU、Wi-Fi 和行動數據網絡,以及用於加速 AI 工作負載的神經處理器單元 (NPU)。
建置在 Arm 上執行的 Windows 應用程式
Windows 10 可讓現有的未修改 x86 應用程式在 Arm 裝置上執行。 Windows 11 新增了在 Arm 裝置上執行未經修改的 x64 Windows 應用程式的功能。 這種在 Arm 裝置上執行 x86 和 x64 應用程式的能力讓最終使用者確信,即使在新的 Arm 支援的裝置上,他們大多數現有的應用程式和工具也能正常運作。
為了獲得最佳效能、回應能力和電池續航力,使用者需要擁有 Arm 原生 Windows 應用程式,這表示開發人員需要建置或移植 Arm 原生 Windows 應用程式。
檢查應用程式是否在 Arm 上受支援:Windows on Arm Ready Software。 此網站是您取得 Windows 裝置上許多應用程式和遊戲相容性資訊的來源,這些應用程式和遊戲在 Arm 架構上執行,並正在積極維護中。
虛擬機器
您可以使用 Azure 上的 Ampere Altra Arm 處理器來建立及部署 Windows 11 Arm64 VM。 在這篇快速入門文章中了解運作方式。
深入了解如何在 Arm 虛擬機器上使用 Windows:
- Arm 虛擬機器上的 Windows 常見問題集
- Azure 虛擬機器採用 Ampere Altra Arm 型處理器:正式發行
- 使用 Terraform 部署 Arm 型的 Azure Kubernetes Service (AKS) 叢集 - ARM 開發人員中樞
- 深入了解透過雲端裝載的持續整合/持續部署 (CI/CD) 建置和測試自動化,例如 Azure DevOps 或 GitHub。
Arm 開發人員裝置
想要在 Windows 上構建和測試 Arm 原生應用程序的開發人員比以往任何時候都有更多的選擇。
Copilot+ PC 透過各種設備製造商提供神經處理單元 (NPU) 以及最新的 AI 功能和運算能力。 其中許多 PC 使用基於 Arm 的 Snapdragon® X 系列處理器,該處理器提供每秒 45 兆次運算 (TOPS)。
Windows Dev Kit 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 原生 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。 若要詳細了解 .NET 8 對 Arm 的支援以及 Arm64 的效能改進,請造訪 .NET 部落格:.NET 8 中的 Arm64 效能改進 (2023 年 10 月)。
-
.NET 6 Arm64 SDK: 根據預設,如果您
dotnet run使用 Arm64 SDK 的 .NET 6 應用程式,它會以 Arm64 的形式執行。 使用該dotnet-runtimeinfo工具來探索 .NET 執行的環境。 若要深入了解,請參閱Arm64 支援的 .NET 6 部落格公告。 - VC++ 工具鏈 (Arm Developer) 是 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 現在可用於 Windows on Arm,有兩種版本: 1. 您可以在 Arm VM 或 Arm 裝置上裝載的自我裝載執行器,以及 2. GitHub 託管的執行程序 (目前僅可在私人測試版中使用,但即將推出正式版本)。
- Docker 桌面:容器是一個流行的部署目標,原因有很多——簡化的開發工作流程、隔離和安全性、高效的資源利用率、可移植性和可重複性。 Docker 桌面現在在 Arm 上的 Windows 上原生運行。
注意
Arm 一詞是在 Arm64 (通常也稱為 AArch64) 處理器上執行桌面版 Windows 的電腦的簡寫。 Arm32 一詞是 32 位 Arm 架構的簡寫 (在其他檔中通常稱為 Arm) 。 由 Arm 支援的電腦也提供絕佳的應用程式相容性,並可讓您執行現有的未修改 x86 win32 應用程式而無需修改。 Arm 應用程式以原生方式執行,而沒有任何模擬,而 x86 和 x64 應用程式則以模擬方式在 Arm 裝置上執行。
Arm64EC - 協助更新 Windows 應用程式以在 Arm 上執行
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 C++ 可轉散發套件,請捲動至 [所有下載] 區段下方,然後展開 [其他工具和架構] 下拉式功能表。 此處列出了適用於 Visual Studio 2022 的 Microsoft Visual C++ 可轉散發套件。 請務必勾選 Arm64 選項按鈕,然後按 [下載]。
- 如果您使用舊版 Visual Studio,請選取頁面底部的 [舊版下載] 連結,以搜尋與您的 Visual Studio 版本相關聯的下載。
當使用者從 Microsoft Store 在 Arm 裝置上安裝您的應用程式時,Windows 11 會自動選取可用的應用程式最佳版本。 如果您將 x86、Arm32 和 Arm64 版本的應用程式提交至 Microsoft Store,作業系統會自動安裝應用程式的 Arm64 版本。 如果您只提交應用程式的 x86 和 Arm32 版本,作業系統會安裝 Arm32 版本。 如果您只提交應用程式的 x86 版本,作業系統會安裝該版本,並在模擬下執行。
當指定應用程式架構的選擇項目時,請選擇 32 位元 x86 版本,以在 Arm 電腦上的 Windows 上執行應用程式的 32 位元版本。 如果應用程式的 x64 Win32 版本無法運作,大部分的應用程式都有可用的 x86 版本。
如需架構的詳細資訊,請參閱應用程式套件架構。
用程式保證 Arm 諮詢服務
我們的 將 Arm 支援新增至 Windows 應用程式 的指引會逐步解說如何建立應用程式的 Arm 最佳化版本。 如果您遇到停滯狀態,應用程式保證 Arm 諮詢服務可助您一臂之力。 這項服務是我們現有承諾的補充:您的應用程式會在 Arm 上的 Windows 上執行,如果您遇到任何問題,Microsoft 會協助您補救。 深入了解。
註冊 Windows Arm Advisory Service。
其他資源
- Satya Nadella 的組建 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 影片簡報)
- 部落格:對 Arm 開發的 Windows 10 支援原始公告
- 回報錯誤 (bug)