Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Zařízení založená na technologii ARM se stávají stále oblíbenějšími díky své úsporné energetické náročnosti, delší výdrži baterie a působivému zpracovatelskému výkonu. Windows on Arm podporuje neurální procesory (NPU) vyladěné pro stále oblíbenější úlohy umělé inteligence a strojového učení.
Tato příručka popisuje postup přidání podpory do aplikací pro Windows pro zařízení s procesory Arm64. Poskytuje také pokyny k řešení potenciálních problémů nebo blokování, jako jsou závislosti třetích stran nebo moduly plug-in, které můžou narušit vytváření verze aplikace založené na Arm64.
Emulace aplikací pro x86 nebo x64 Windows na zařízeních s ARM
Verze Arm pro Windows 10 zahrnují emulační technologii, která umožňuje spouštění stávajících nemodifikovaných aplikací x86 na zařízeních Arm. Windows 11 rozšiřuje emulaci tak, aby spouštěla nemodifikované x64 aplikace pro Windows na zařízeních s platformou Arm.
I když schopnost emulovat x64 a x86 na zařízeních Arm je skvělým krokem vpřed, tato příručka vám pomůže přidat podporu nativní pro Arm, aby vaše aplikace využila výhod nativních zvýšení výkonu a jedinečných kvalit zařízení s podporou Arm64, mezi které patří:
- Optimalizace spotřeby energie aplikace za účelem prodloužení životnosti baterie zařízení
- Optimalizace výkonu procesoru, GPU a NPU za účelem zrychlení pracovních postupů, zejména při práci s AI.
Ovladače jádra je navíc potřeba sestavit jako nativní Arm64. Jádro neobsahuje emulaci. Toto omezení má primárně vliv na scénáře virtualizace. U aplikací, které používají ovladače zařízení vyžadující přímý přístup k interním systémům operačního systému nebo hardwaru spuštěným v režimu jádra, a ne v uživatelském režimu a které se ještě neaktualizují, aby podporovaly procesory Arm64, najdete v tématu Sestavení ovladačů Arm64 pomocí WDK.
Poznámka:
Progresivní webové aplikace (PWA) se už spouštějí s nativním výkonem Arm64.
Požadavky
Pokud aplikaci aktualizujete pomocí zařízení založeného na arm (nativní kompilace – generování kódu pro stejnou platformu, na které používáte), můžete použít:
Visual Studio 2022 v17.4 nebo novější. Toto je první verze GA sady Visual Studio, která nativně podporuje kompilaci a debugování aplikací Arm64 na procesorech typu Arm. Nativní verze Arm64 (Visual Studio 2022 17.4) a Microsoft Visual C++ (MSVC) poskytují výrazně lepší výkon v porovnání s předchozími emulovanými verzemi.
(Volitelné) LLVM (Clang) v12+ nebo novější. LLVM 12 přidává oficiální binární verzi hostovanou pro Windows na Arm64, včetně kompilátoru Clang, LLD Linkeru a runtime knihoven compiler-rt.
Pokud aktualizujete aplikaci pro Windows tak, aby podporovala Arm pomocí zařízení s procesorem x64 nebo x86 Intel (křížové kompilace), můžete použít:
- Visual Studio 2022 v17.10 (doporučeno)
- Visual Studio 2019 v16.x
- Visual Studio 2017 verze 15.9 a novější (UWP, most pro desktop, win32 C++)
- LLVM (Clang) v12+
Při výběru mezi křížovou kompilací nebo nativní kompilací zvažte několik faktorů, jako je dostupný hardware a jednoduchost provádění testů.
Poznámka:
GCC, GNU Compiler Collection podpora je plánována na blízkou budoucnost.
Postup přidání nativní podpory Arm64
Aktualizace aplikace tak, aby běžela nativně na zařízeních s Arm64:
- přidání konfigurace Arm64 do projektu v sadě Visual Studio
- Testování a ladění nově vytvořené aplikace Arm64
- Sestavení a otestování aplikace na zařízeních Arm
Po potvrzení, že je vaše aplikace optimalizovaná pro zařízení Arm:
- Aktualizace instalačního programu a publikování aktualizované aplikace
- Plánování probíhajících aktualizací
Krok 1 : Přidání konfigurace Arm64 do projektu v sadě Visual Studio
Chcete-li přidat novou platformu řešení ARM64 s ladicími a vydávacími cíli do svého stávajícího projektu aplikace pro x64 nebo x86:
- Otevřete projektové řešení (kód projektu) v aplikaci Visual Studio (viz předpoklady podporovaných verzí ).
- V rozevírací nabídce "Platformy řešení" na panelu nástrojů Standard (nebo v nabídce "Sestavení") vyberte Configuration Manager...
- Otevřete rozevírací nabídku "Aktivní platforma řešení" a vyberte <Nový...>.
- V rozevírací nabídce 'Napište nebo vyberte novou platformu' vyberte ARM64 a ujistěte se, že hodnota 'Kopírovat nastavení z' je nastavená na x64 s zaškrtnutou možností 'Vytvořit nové platformy projektů', a poté vyberte OK.
Gratulujeme! Začali jste do aplikace přidávat podporu Arm. Dále zkontrolujte, jestli se vaše řešení Arm64 úspěšně sestaví.
Pokud se vaše řešení nepodařilo úspěšně sestavit, budete muset vyřešit problémy, které způsobují selhání sestavení. Nejpravděpodobnějším důvodem je, že závislost není k dispozici pro ARM64, což je popsáno níže v části Odstraňování problémů.
(Volitelné): Pokud chcete ověřit, že je binární soubor aplikace vytvořený pro Arm64, otevřete adresář projektu v PowerShellu (klikněte pravým tlačítkem na projekt aplikace v Průzkumníku řešení sady Visual Studio a vyberte Otevřít v terminálu). Změňte adresáře, aby byl vybrán nový projektový adresář bin\ARM64\Debug nebo výstupní adresář. Zadejte příkaz: dumpbin /headers .\<appname>.exe (nahraďte <appname> názvem vaší aplikace). Posuňte se ve výsledcích výstupu terminálu nahoru, abyste našli FILE HEADER VALUES oddíl a potvrdili, že první řádek je AA64 machine (ARM64).
Krok 2 – Testování a ladění nově vytvořené aplikace Arm64
Pokud chcete zkontrolovat, jestli se vaše řešení Arm64 po přidání platformy řešení Arm64 do projektu v sadě Visual Studio úspěšně sestaví:
- Zavřete okno Platformy aktivního řešení .
- Změňte nastavení sestavení z ladění na Release.
- V rozevírací nabídce Sestavení vyberte Znovu sestavit řešení a počkejte na opětovné sestavení projektu.
- Zobrazí se výstup opětovného sestavení – Vše bylo úspěšné . Pokud ne, přečtěte si část Řešení potíží .
Jakmile jsou binární soubory vytvořené pro vaši aplikaci pro podporu Arm64, chcete je otestovat. Toto testování vyžaduje mít zařízení nebo virtuální počítač s Windows na platformě Arm.
Pokud vyvíjíte na zařízení s Windows na Arm, máte snadné nastavení místního ladění ve Visual Studio. Pokud používáte křížovou kompilaci (používáte zařízení, které není spuštěné na procesoru Arm), pak chcete použít vzdálené ladění na zařízení s Windows na Arm nebo virtuální počítač, abyste umožnili svůj vývoj v prostředí Visual Studio a při běhu aplikace Arm64 na jiném zařízení.
Windows na hardwaru arm nebo virtuálních počítačích dostupných k testování
Pokud hledáte hardware, který se má použít pro kontinuální integraci (CI) a testování, jedná se o několik zařízení s Windows s procesorem založeným na Arm64:
Nápovědu k nastavení virtuálního počítače s Windows na Arm pro podporu CI a testování najdete v tématu Rychlý start: Vytvoření virtuálního počítače s Windows na arm na webu Azure Portal.
Přečtěte si blogové oznámení Azure o obecné dostupnosti virtuálních počítačů Azure s procesory založenými na Arm Ampere Altra s možností spouštění verzí Windows 11 Pro a Enterprise založených na Arm64.
Přečtěte si další informace o Windows 11 ve verzi Arm Insider Preview (VHDX) pro vytvoření místního virtuálního počítače Windows na Arm pomocí Hyper-V a programu Windows Insider VHDX. *Virtuální počítače Arm64 jsou podporovány pouze na zařízeních, která splňují požadavky. Vytváření virtuálních počítačů Arm64 není na hardwaru x64 podporované – virtuální počítač je potřeba hostovat v cloudu, viz výše uvedený odkaz pro rychlý start.
Podívejte se na video "Ptejte se experta: Vytváření aplikací pomocí virtuálních počítačů Azure založených na Ampere".
Krok 3 : Sestavení a otestování aplikace na zařízeních Arm
Přidání úspěšného testu automatizace je důležitým aspektem strategie kontinuální integrace a průběžného doručování (CI/CD). Pro řešení Arm64 spuštěná ve Windows je důležité spustit testovací sadu v architektuře Arm64. Tato architektura může být skutečný Windows na zařízení Arm, jak je uvedeno výše, nebo virtuální počítač z výše uvedených virtuálních strojů.
Kompilace aplikace je pohodlnější, když se provádí na stejném počítači jako testy, ale v mnoha případech se nevyžaduje. Místo toho můžete zvážit rozšíření stávající infrastruktury sestavení tak, aby vznikl křížově zkompilovaný výstup pro Arm64.
Krok 4– Aktualizace instalačního programu a publikování aktualizované aplikace
Pokud publikujete do Microsoft Storu, můžete po sestavení verze Arm64 aplikace podle předchozích kroků aktualizovat stávající balíček aplikace v Microsoft Storu tak, že přejdete na řídicí panel Partnerského centra a přidáte do odeslání nově vytvořené binární soubory ARM64.
Pokud aplikaci v Microsoft Storu ještě nepublikujete, můžete podle pokynů vytvořit odeslání aplikace na základě toho, jestli chcete odeslat MSI nebo EXE, balíček MSIX, PWA nebo doplněk aplikace.
Pokud sestavíte vlastní instalační program, měli byste zajistit, aby se nová verze Arm64 úspěšně nainstalovala. Většina instalačních architektur, jako jsou WiX, Squirrel, InnoSetup, InstallAwarea další podporují Windows na Arm bez problémů.
Pokud nabízíte instalační program své aplikace z webové stránky, můžete pomocí User-Agent Client Hints zjistit, kdy zákazník navštíví vaše stránky z zařízení s Windows na Arm, a nabídnout mu aktualizovanou verzi vaší aplikace optimalizovanou pro Arm. Na rozdíl od řetězce uživatelského agenta vám User-Agent Client Hints umožňují odlišit zákazníky používající Arm od zákazníků na zařízeních x86.
Krok 5 – Plánování probíhajících aktualizací
Teď, když publikujete verzi Arm64 aplikace, chcete mít jistotu, že zůstane aktualizovaná stejným způsobem jako ostatní verze aplikace. Udržujte verze a funkce v souladu s architekturami, aby se v budoucnu zabránilo nejasnostem zákazníků.
Řešení problémů
Mezi běžné problémy, které brání přidání verze Arm64 existující aplikace x64 nebo x86 pro Windows, patří:
- Závislost, která není zkompilována pro ARM64, blokuje úspěšné sestavení.
- Kód je napsán pro jinou architekturu než Arm64.
- Vaše aplikace spoléhá na ovladač jádra.
- Jste zablokovaný a potřebujete pomoc.
Závislost nekompilovaná pro ARM64 blokuje úspěšné sestavení.
Pokud nemůžete aplikaci sestavit kvůli závislosti, ať už interní, od třetí strany nebo z opensourcové knihovny, musíte tuto závislost aktualizovat tak, aby podporovala architekturu ARM64, nebo ji odebrat.
U interních závislostí znovu sestavte závislost pro podporu ARM64.
V případě závislostí třetích stran požádejte správce o opětovné sestavení závislosti s podporou ARM64.
V případě opensourcových závislostí zkontrolujte vcpkg , jestli novější verze závislosti zahrnuje podporu ARM64, na kterou můžete provést aktualizaci. Pokud žádná aktualizace neexistuje, zvažte přidání podpory ARM64 do balíčku sami. Mnoho opensourcových správců ocení příspěvek.
Organizace Linaro spolupracuje s firmami a opensourcovými komunitami na vývoji softwaru na technologiích založených na Arm. Můžete podat žádost v Linaro Service Desk pro pomoc s aktualizací podpory balíčků pro všechny chybějící závislosti související s Windows na Arm.
Použijte Arm64EC. Verze Arm64EC závislostí lze použít k opětovnému sestavení aplikace, přičemž se stále využívají verze x64 závislostí. Jakýkoli kód x64, včetně kódu ze závislostí, se v procesu Arm64EC spustí pod emulací ve vaší aplikaci. (V tomto případě nejsou použitelné verze závislostí Arm64.)
Odeberte a nahraďte závislost na projektu aplikace.
Kód se zapisuje pro jinou architekturu než Arm64.
- Potřebujete upravit sestavení specifické pro procesor nebo vložená volání vnitřních funkcí tak, aby odpovídaly dostupným instrukcím a funkcím procesoru Arm. Pokyny najdete v tématu: Použití sestavení a intrinziky vkódu v jazyce C nebo C++.
Vaše aplikace spoléhá na ovladač jádra.
Ovladače jádra musí být vytvořené jako nativní Arm64. Jádro neposkytuje žádnou emulaci. Toto omezení má vliv hlavně na scénáře virtualizace. U aplikací, které používají ovladače zařízení vyžadující přímý přístup k interním operacím operačního systému nebo hardwaru spuštěného v režimu jádra (nikoli v uživatelském režimu) a které ještě nejsou aktualizované, aby podporovaly procesory Arm64, najdete v tématu Sestavení ovladačů Arm64 pomocí WDK.
Kromě toho musí být ovladače ve Windows vytvořené jako Arm64 a není možné je emulovat. U aplikací, které se spoléhají na softwarové ovladače, které ještě nejsou aktualizované pro podporu procesorů Arm64, najdete v tématu Sestavení ovladačů Arm64 pomocí WDK.
Sada nástrojů pro Windows na Arm
Kromě podpory pro Visual Studio a LLVM (CLANG) jako sdílené v části Požadavky této příručky jsou podporovány také následující nástroje a architektury pro Arm64:
- .NET 7
- .NET 6 (LTS)
- .NET 5.0.8 nebo novější
- rozhraní .NET Framework 4.8.1
- clang-cl zkompiluje kód C++ pro Windows a může sloužit jako náhrada za kompilátor MSVC a linker. Stále používá hlavičky a knihovny z MSVC a je kompatibilní s MSVC.
Také frameworky třetích stran, mezi které patří:
- Qt for Windows, Boost C++ Library, Bazel, open source build and test tool.
- Podpora pro GCC a Mingw / GNU Toolchain pro Windows v Arm je probíhající v Linaro.
- Podrobnější seznam najdete v tématu Windows On Arm (WOA) - Confluence (atlassian.net).
Potřebujete pomoc? Využití naší služby App Assure
Služba App Assure Arm Advisory service je dostupná, aby vývojářům pomohla vytvářet aplikace optimalizované pro Arm. Tato služba je navíc naším stávajícím příslibem: vaše aplikace běží ve Windows na Arm a pokud narazíte na nějaké problémy, Microsoft vám pomůže je napravit. Další informace.
Windows on Arm