Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Perangkat berbasis arm menjadi semakin populer karena sifat hemat daya mereka, masa pakai baterai yang lebih lama, dan daya pemrosesan yang mengesankan. Windows on Arm mendukung Unit Pemrosesan Neural (NPU) yang disetel untuk menghadapi beban kerja AI dan Pembelajaran Mesin yang semakin populer.
Panduan ini mencakup langkah-langkah untuk menambahkan dukungan ke aplikasi Windows Anda untuk perangkat yang didukung oleh prosesor Arm64. Ini juga menyediakan panduan tentang cara mengatasi potensi masalah atau pemblokir, seperti dependensi atau plug-in pihak ketiga, yang mungkin mengganggu pembuatan versi aplikasi Anda berbasis Arm64.
Emulasi pada perangkat berbasis Arm untuk aplikasi Windows x86 atau x64
Versi arm Windows 10 mencakup teknologi emulasi yang memungkinkan aplikasi x86 yang tidak dimodifikasi yang ada berjalan di perangkat Arm. Windows 11 memperluas emulasi tersebut untuk menjalankan aplikasi Windows x64 yang tidak dimodifikasi di perangkat bertenaga Arm.
Meskipun kemampuan untuk meniru perangkat x64 dan x86 di Arm adalah langkah maju yang bagus, panduan ini membantu Anda menambahkan dukungan Arm-native sehingga aplikasi Anda dapat memanfaatkan keuntungan performa asli dan kualitas unik perangkat bertenaga Arm64, termasuk:
- Mengoptimalkan konsumsi daya aplikasi Anda untuk memperpanjang masa pakai baterai perangkat.
- Mengoptimalkan performa untuk CPU, GPU, dan NPU untuk mempercepat alur kerja, terutama saat bekerja dengan AI.
Selain itu, Kernel driver perlu dikompilasi sebagai asli Arm64. Kernel ini tidak termasuk emulasi. Batasan ini terutama memengaruhi skenario virtualisasi. Untuk aplikasi yang menggunakan driver perangkat yang memerlukan akses langsung ke internal OS atau perangkat keras yang berjalan dalam mode kernel, bukan mode pengguna, dan yang belum diperbarui untuk mendukung prosesor Arm64, lihat Membangun Driver Arm64 dengan WDK.
Nota
Progresif Web Apps (PWAs) sudah dijalankan dengan performa Arm64 asli.
Prasyarat
Jika Anda memperbarui aplikasi menggunakan perangkat berbasis Arm (kompilasi asli - menghasilkan kode untuk platform yang sama tempat Anda menjalankan), Anda dapat menggunakan:
Visual Studio 2022 v17.4 atau yang lebih baru. Ini adalah rilis GA pertama Visual Studio yang secara asli mendukung pembuatan dan debugging aplikasi Arm64 pada prosesor berbasis Arm. Versi Arm64 asli Visual Studio 2022 17.4 dan Microsoft Visual C++ (MSVC) memberikan performa yang jauh lebih baik dibandingkan dengan versi yang ditiru sebelumnya.
(Opsional) LLVM (Clang) v12+ atau yang lebih baru . LLVM 12 menambahkan rilis biner resmi yang dihosting di Windows pada Arm64, termasuk compiler Clang, LLD Linker, dan pustaka runtime compiler-rt.
Jika Anda memperbarui aplikasi Windows untuk mendukung Arm menggunakan perangkat berbasis Intel x64 atau x86 (kompilasi silang), Anda dapat menggunakan:
- Visual Studio 2022 v17.10 (Disarankan)
- Visual Studio 2019 v16.x
- Visual Studio 2017 v15.9 dan seterusnya (UWP, Desktop Bridge, Win32 C++)
- LLVM (Clang) v12+
Pertimbangkan beberapa faktor saat memilih antara kompilasi silang atau kompilasi asli, seperti perangkat keras yang tersedia dan kesederhanaan eksekusi pengujian.
Nota
GCC, dukungan untuk GNU Compiler Collection ditargetkan pada waktu dekat.
Langkah-langkah untuk menambahkan dukungan asli Arm64
Untuk memperbarui aplikasi agar berjalan secara asli di perangkat Arm64:
- Menambahkan konfigurasi Arm64 ke proyek Anda di Visual Studio
- Menguji dan men-debug aplikasi Arm64 yang baru dibuat
- Membuat dan menguji aplikasi Anda di perangkat Arm
Setelah mengonfirmasi bahwa aplikasi Anda dioptimalkan untuk perangkat Arm:
- Memperbarui alat penginstal dan menerbitkan aplikasi yang diperbarui
- Merencanakan pembaruan berkelanjutan
Langkah 1 - Menambahkan konfigurasi Arm64 ke proyek Anda di Visual Studio
Untuk menambahkan platform solusi ARM64 baru dengan target debug dan rilis ke proyek aplikasi x64 atau x86 yang ada:
- Buka solusi Anda (kode proyek) di Visual Studio (lihat prasyarat untuk versi yang didukung).
- Di menu drop-down "Platform Solusi" pada toolbar Standar (atau di menu "Build"), pilih Configuration Manager...
- Buka menu drop-down "Platform solusi aktif" dan pilih <Baru...>.
- Pada menu drop-down "Ketik atau pilih platform baru", pilih ARM64 dan pastikan bahwa nilai "Salin pengaturan dari" diatur ke x64 serta kotak centang "Buat platform proyek baru" diaktifkan, lalu pilih OK.
Selamat! Anda telah mulai menambahkan dukungan Arm ke aplikasi Anda. Selanjutnya, periksa untuk melihat apakah Solusi Arm64 Anda berhasil dibangun.
Jika Solusi Anda tidak berhasil dibangun, Anda harus menyelesaikan masalah yang menyebabkan build gagal. Alasan yang paling mungkin adalah bahwa dependensi tidak tersedia untuk ARM64, yang dibahas dalam bagian Pemecahan Masalah di bawah ini.
(Opsional): Untuk memverifikasi bahwa biner aplikasi Anda dibuat untuk Arm64, buka direktori proyek Anda di PowerShell (klik kanan proyek aplikasi Anda di Penjelajah Solusi Visual Studio dan pilih Buka di Terminal). Ubah direktori agar direktori baru bin\ARM64\Debug atau Rilis proyek Anda terpilih. Masukkan perintah: dumpbin /headers .\<appname>.exe (mengganti <appname> dengan nama aplikasi Anda). Gulir ke atas di hasil output terminal Anda untuk menemukan bagian FILE HEADER VALUES dan mengonfirmasi baris pertama adalah AA64 machine (ARM64).
Langkah 2 - Uji dan debug aplikasi Arm64 yang baru dibuat
Untuk memeriksa apakah solusi Arm64 Anda berhasil dibangun setelah menambahkan platform solusi Arm64 ke proyek Anda di Visual Studio:
- Tutup jendela Platform solusi aktif .
- Ubah pengaturan build dari Debug ke Rilis.
- Di menu tarik turun Build, pilih Membangun Kembali Solusi dan tunggu hingga proyek selesai dibangun kembali.
- Anda menerima output Kompilasi Ulang Semua berhasil. Jika tidak, lihat bagian Pemecahan Masalah .
Setelah biner dibuat untuk aplikasi Anda untuk mendukung Arm64, Anda ingin mengujinya. Pengujian tersebut memerlukan perangkat atau komputer virtual yang menjalankan Windows di Arm.
Jika Anda mengembangkan pada perangkat Windows pada Arm, maka Anda memiliki kemudahan penyiapan dengan debugging lokal Visual Studio. Jika Anda melakukan kompilasi silang (menggunakan perangkat yang tidak berjalan pada prosesor Arm), maka Anda ingin menggunakan penelusuran kesalahan jarak jauh pada perangkat Windows di Arm atau komputer virtual untuk memungkinkan pengalaman pengembangan Anda di Visual Studio saat menjalankan aplikasi Arm64 di perangkat lain.
Perangkat keras Windows di Arm atau komputer virtual tersedia untuk pengujian
Jika Anda mencari perangkat keras untuk digunakan untuk integrasi berkelanjutan (CI) dan pengujian, ini adalah beberapa perangkat Windows dengan prosesor berbasis Arm64:
Untuk bantuan menyiapkan komputer virtual (VM) yang menjalankan Windows di Arm untuk mendukung CI dan pengujian, lihat Mulai Cepat: Membuat Windows di komputer virtual Arm di portal Microsoft Azure.
Baca pengumuman blog Azure tentang ketersediaan umum untuk Azure Virtual Machines dengan prosesor berbasis Ampere Altra Arm dengan kemampuan untuk menjalankan versi Windows 11 Pro dan Enterprise berbasis Arm64.
Pelajari selengkapnya tentang Windows 11 di Arm Insider Preview (VHDX) untuk membuat Windows lokal di Arm VM menggunakan Hyper-V dan Windows Insider VHDX. *VM Arm64 hanya didukung pada perangkat yang memenuhi prasyarat. Membuat VM Arm64 tidak didukung pada perangkat keras x64 - Anda perlu menghosting VM di cloud, lihat tautan mulai cepat di atas.
Lihat video "Tanya pakar: Buat Aplikasi dengan Azure VM berbasis Ampere".
Langkah 3 - Membuat dan menguji aplikasi Anda di perangkat Arm
Menambahkan tahap otomatisasi pengujian adalah pertimbangan penting untuk strategi Integrasi Berkelanjutan dan Pengiriman Berkelanjutan (CI/CD) Anda. Untuk solusi Arm64 yang berjalan di Windows, penting untuk menjalankan rangkaian pengujian Anda pada arsitektur Arm64. Arsitektur ini bisa menjadi perangkat keras Windows on Arm yang sebenarnya, menggunakan salah satu perangkat Arm yang tercantum sebelumnya, atau Komputer Virtual, dari VM yang tercantum sebelumnya.
Mengkompilasi aplikasi lebih nyaman ketika dilakukan pada komputer yang sama dengan pengujian, tetapi dalam banyak kasus tidak diperlukan. Sebagai gantinya, Anda dapat mempertimbangkan untuk memperluas infrastruktur build yang ada untuk menghasilkan output hasil kompilasi silang untuk Arm64.
Langkah 4 - Perbarui penginstal Anda dan terbitkan aplikasi yang diperbarui
Jika Anda menerbitkan ke Microsoft Store, setelah membuat aplikasi versi Arm64 dengan mengikuti langkah-langkah sebelumnya, Anda dapat memperbarui paket aplikasi yang ada di Microsoft Store dengan mengunjungi dasbor Pusat Mitra dan menambahkan biner ARM64 yang baru dibuat ke pengiriman.
Jika Anda belum menerbitkan aplikasi di Microsoft Store, Anda dapat mengikuti instruksi untuk membuat pengiriman aplikasi berdasarkan apakah Anda ingin mengirimkan MSI atau EXE, paket MSIX, PWA, atau Add-on Aplikasi.
Jika Anda membangun alat penginstal Anda sendiri, Anda harus memastikannya dapat menginstal versi Arm64 baru Anda dengan sukses. Sebagian besar kerangka kerja alat penginstal, seperti WiX, Squirrel, InnoSetup, InstallAware, dan lainnya mendukung Windows di Arm tanpa masalah.
Jika Anda menawarkan alat penginstal aplikasi dari halaman web, Anda dapat menggunakan User-Agent Petunjuk Klien untuk mendeteksi kapan pelanggan Anda mengunjungi menggunakan perangkat Windows di Arm, dan menawarkan versi aplikasi Anda yang telah diperbarui menjadi native-Arm. Tidak seperti string agen pengguna, petunjuk klien User-Agent memungkinkan Anda membedakan pelanggan di Arm dari pelanggan di perangkat x86.
Langkah 5 - Merencanakan pembaruan yang sedang berlangsung
Setelah memublikasikan versi Arm64 aplikasi, Anda ingin memastikan bahwa aplikasi tetap diperbarui dengan cara yang sama seperti versi aplikasi Anda lainnya. Jaga agar versi dan fitur tetap selaras di seluruh arsitektur untuk menghindari kebingungan pelanggan di masa mendatang.
Penyelesaian Masalah
Masalah umum yang mengganggu atau memblokir Anda menambahkan versi Arm64 dari aplikasi Windows x64 atau x86 yang ada meliputi:
- Dependensi yang tidak dikompilasi untuk ARM64 memblokir Anda dari build yang berhasil.
- Kode ditulis untuk arsitektur tertentu selain Arm64.
- Aplikasi Anda bergantung pada driver kernel.
- Kau terjebak dan butuh bantuan.
Dependensi yang tidak dikompilasi untuk ARM64 memblokir Anda dari build yang berhasil
Jika Anda tidak dapat membuat aplikasi karena dependensi, baik internal, dari pihak ketiga, atau dari pustaka sumber terbuka, Anda perlu memperbarui dependensi tersebut untuk mendukung arsitektur ARM64 atau menghapusnya.
Untuk dependensi internal, bangun kembali dependensi untuk dukungan ARM64.
Untuk dependensi pihak ketiga, minta pengurus untuk membangun kembali dependensi dengan dukungan ARM64.
Untuk dependensi sumber terbuka, periksa vcpkg untuk melihat apakah versi dependensi yang lebih baru menyertakan dukungan ARM64 yang dapat Anda perbarui. Jika tidak ada pembaruan, pertimbangkan untuk berkontribusi pada penambahan dukungan ARM64 ke paket sendiri. Banyak pengelola sumber terbuka menghargai kontribusi tersebut.
Organisasi Linaro bekerja sama dengan bisnis dan komunitas sumber terbuka untuk mengembangkan perangkat lunak tentang teknologi berbasis Arm. Anda dapat mengirimkan permintaan di Linaro Service Desk untuk membantu memperbarui dukungan paket untuk setiap dependensi yang hilang yang terkait dengan Windows pada Arm.
Gunakan Arm64EC. Versi dependensi Arm64EC dapat digunakan untuk membangun kembali aplikasi sambil tetap menggunakan dependensi versi x64. Kode x64 apa pun, termasuk kode dari ketergantungan, dalam proses Arm64EC dijalankan dalam mode emulasi di aplikasi Anda. (Dependensi versi Arm64 tidak dapat digunakan dalam kasus ini.)
Hapus dan ganti dependensi pada proyek aplikasi Anda.
Kode ditulis untuk arsitektur tertentu selain Arm64
- Anda perlu memodifikasi kode assembly spesifik CPU atau pemanggilan fungsi intrinsik inline untuk mencocokkan instruksi dan fungsi yang tersedia pada CPU Arm. Untuk panduan, lihat: Menggunakan Assembly dan Intrinsics dalam Kode C atau C++.
Aplikasi Anda bergantung pada driver kernel
Driver kernel harus dibangun sebagai Arm64 asli. Kernel tidak memberikan emulasi apa pun. Batasan ini terutama memengaruhi skenario virtualisasi. Untuk aplikasi yang menggunakan driver perangkat yang memerlukan akses langsung ke internal OS atau perangkat keras yang berjalan dalam mode kernel (bukan mode pengguna), dan yang belum diperbarui untuk mendukung prosesor Arm64, lihat Membangun Driver Arm64 dengan WDK.
Selain itu, driver pada Windows harus dibangun sebagai Arm64 dan tidak dapat ditimulasi. Untuk aplikasi yang mengandalkan driver perangkat lunak yang belum diperbarui untuk mendukung prosesor Arm64, lihat Membangun Driver Arm64 dengan WDK.
Toolchain untuk Windows pada Arm
Selain dukungan untuk Visual Studio dan LLVM (CLANG) seperti yang dibagikan di bagian Prasyarat panduan ini, alat dan kerangka kerja berikut juga didukung untuk Arm64:
- .NET 7
- .NET 6 (LTS)
- .NET 5.0.8+
- .NET Framework 4.8.1
- clang-cl mengkompilasi kode C++ untuk Windows dan dapat berfungsi sebagai pengganti kompilator dan linker MSVC. Ini masih menggunakan header dan pustaka dari MSVC dan kompatibel dengan ABI milik MSVC.
Serta kerangka kerja pihak ketiga, termasuk:
- Qt untuk Windows, Boost C++ Library, Bazel, alat build dan pengujian sumber terbuka.
- Dukungan untuk GCC dan Mingw / GNU Toolchain untuk Windows on Arm sedang dikembangkan di Linaro.
- Untuk daftar yang lebih lengkap, lihat Windows On Arm (WOA) - Confluence (atlassian.net).
Butuh bantuan? Manfaatkan layanan App Assure kami
App Assure Arm Advisory Service tersedia untuk membantu pengembang membangun aplikasi yang dioptimalkan untuk Arm. Layanan ini selain janji kami yang ada: aplikasi Anda berjalan di Windows di Arm, dan jika Anda mengalami masalah, Microsoft membantu Anda memulihkannya. Pelajari selengkapnya.
Windows on Arm