Bagikan melalui


Menambahkan dukungan Arm ke aplikasi Windows Anda

Perangkat berbasis arm menjadi semakin populer karena sifat hemat daya mereka, masa pakai baterai yang lebih lama, dan daya pemrosesan yang mengesankan, selain dukungan Windows on Arm untuk Neural Processing Units (NPU) yang disetel untuk AI yang semakin populer dan beban kerja Pembelajaran Mesin.

Panduan ini akan membahas langkah-langkah untuk menambahkan dukungan ke aplikasi Windows Anda untuk perangkat yang didukung oleh prosesor Arm64. Panduan juga akan mencakup cara untuk mengatasi potensi masalah atau pemblokir (seperti dependensi atau plug-in pihak ke-3) yang dapat 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 yang bagus ke depannya, panduan ini akan 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, driver Kernel harus dibangun sebagai Arm64 asli. Tidak ada emulasi yang ada di kernel. Ini terutama berdampak pada 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.

Catatan

Progresif Web Apps (PWAs) sudah akan 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:

Jika Anda memperbarui aplikasi Windows untuk mendukung Arm menggunakan perangkat berbasis Intel x64 atau x86 (kompilasi silang), Anda dapat menggunakan:

Ada beberapa faktor yang perlu dipertimbangkan saat memilih antara kompilasi silang atau kompilasi asli seperti perangkat keras yang tersedia dan kesederhanaan eksekusi pengujian.

Catatan

GCC, dukungan GNU Compiler Collection ditargetkan untuk waktu dekat.

Langkah-langkah untuk menambahkan dukungan asli Arm64

Untuk memperbarui aplikasi Anda agar berjalan secara asli di Arm64:

  1. Menambahkan konfigurasi Arm64 ke proyek Anda di Visual Studio
  2. Menguji dan men-debug aplikasi Arm64 yang baru dibuat
  3. Membuat dan menguji aplikasi Anda di perangkat Arm

Setelah mengonfirmasi bahwa aplikasi Anda telah berhasil dioptimalkan untuk perangkat Arm:

  1. Memperbarui alat penginstal dan menerbitkan aplikasi yang diperbarui
  2. Merencanakan pembaruan yang sedang berlangsung

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:

  1. Buka solusi Anda (kode proyek) di Visual Studio (lihat prasyarat untuk versi yang didukung).
  2. Di menu drop-down "Platform Solusi" pada toolbar Standar (atau di menu "Build"), pilih Configuration Manager...
  3. Buka menu drop-down "Platform solusi aktif" dan pilih Baru...>.<
  4. Di menu drop-down "Ketik atau pilih platform baru", pilih ARM64 dan pastikan bahwa nilai "Salin pengaturan dari" diatur ke x64 dengan 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 tercakup dalam Pemecahan Masalah di bawah ini.

(Opsional): Jika Anda ingin memverifikasi secara langsung bahwa biner aplikasi Anda sekarang dibuat untuk Arm64, Anda dapat membuka direktori proyek di PowerShell (klik kanan proyek aplikasi Anda di Visual Studio Penjelajah Solusi dan pilih Buka di Terminal). Ubah direktori sehingga direktori baru bin\ARM64\Debug atau Rilis proyek Anda dipilih. 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:

  1. Tutup jendela "Platform solusi aktif".
  2. Ubah pengaturan build dari Debug ke Rilis.
  3. Di menu drop-down "Build", pilih Bangun Ulang Solusi dan tunggu proyek dibangun kembali.
  4. Anda akan menerima output "Bangun Ulang Semua berhasil". Jika tidak, lihat bagian Pemecahan Masalah di bawah ini.

Setelah biner dibuat untuk aplikasi Anda untuk mendukung Arm64, Anda harus mengujinya. Itu akan mengharuskan memiliki perangkat atau komputer virtual yang menjalankan Windows di Arm.

Jika Anda melakukan pengembangan pada perangkat Windows di Arm, maka Anda memiliki penyiapan yang mudah dengan penelusuran kesalahan lokal Visual Studio. Jika mengkompilasi silang (menggunakan perangkat yang tidak berjalan pada prosesor Arm), maka Anda akan 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 Azure.

Langkah 3 - Membuat dan menguji aplikasi Anda di perangkat Arm

Menambahkan lulus 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 -- ini bisa menjadi perangkat keras Windows on Arm yang sebenarnya, menggunakan salah satu perangkat Arm yang tercantum di atas, atau Komputer Virtual, dari VM yang tercantum di atas.

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 yang dikompilasi silang untuk Arm64.

Langkah 4 - Perbarui penginstal Anda dan terbitkan aplikasi yang diperbarui

Jika Anda menerbitkan ke Microsoft Store, setelah membuat versi Arm64 dari aplikasi Anda dengan mengikuti langkah-langkah di atas, Anda dapat memperbarui paket aplikasi yang ada di Microsoft Store dengan mengunjungi dasbor Pusat Mitra Anda dan menambahkan biner ARM64 yang baru dibuat ke pengiriman.

Jika aplikasi Anda belum diterbitkan 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 Petunjuk Klien Agen Pengguna untuk mendeteksi kapan pelanggan Anda mengunjungi dari perangkat Windows di Arm dan menawarkan versi arm-native yang diperbarui dari aplikasi Anda. Tidak seperti string agen pengguna, Petunjuk Klien Agen Pengguna memungkinkan Anda membedakan pelanggan di Arm dari pelanggan di perangkat x86.

Langkah 5 - Merencanakan pembaruan yang sedang berlangsung

Sekarang setelah aplikasi Anda diterbitkan versi Arm64, Anda harus memastikan bahwa aplikasi tetap diperbarui dengan cara yang sama seperti versi aplikasi Anda lainnya. Yang terbaik adalah menjaga versi dan fitur tetap selaras di seluruh arsitektur untuk menghindari kebingungan pelanggan di masa depan.

Pemecahan Masalah

Masalah umum yang dapat 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

Jika Anda tidak dapat membangun karena dependensi, baik internal, dari pihak ke-3, atau dari pustaka sumber terbuka, Anda harus menemukan cara untuk memperbarui dependensi tersebut untuk mendukung arsitektur ARM64 atau menghapusnya.

  • Untuk dependensi internal, sebaiknya bangun kembali dependensi untuk dukungan ARM64.

  • Untuk dependensi pihak ke-3, sebaiknya ajukan permintaan agar pemeliharaan dibangun kembali dengan dukungan ARM64.

  • Untuk dependensi sumber terbuka, pertimbangkan untuk memeriksa vcpkg untuk melihat apakah versi dependensi yang lebih baru yang menyertakan dukungan ARM64 ada yang dapat Anda perbarui. Jika tidak ada pembaruan, pertimbangkan untuk berkontribusi pada penambahan dukungan ARM64 ke paket sendiri. Banyak sumber terbuka pengusaha akan berterima kasih atas kontribusi tersebut.

  • Organisasi Linaro juga bekerja sama dengan bisnis dan komunitas sumber terbuka untuk mengembangkan perangkat lunak pada teknologi berbasis Arm. Anda dapat mengajukan permintaan dengan Linaro Service Desk untuk membantu memperbarui dukungan paket untuk dependensi yang hilang yang terkait dengan Windows di Arm.

  • Pertimbangkan untuk menggunakan Arm64EC. Versi dependensi Arm64EC dapat digunakan untuk membangun kembali aplikasi sambil tetap menggunakan dependensi versi x64. Kode x64 apa pun, termasuk kode dari dependensi, dalam proses Arm64EC akan berjalan di bawah emulasi di aplikasi Anda. (Dependensi versi Arm64 tidak akan dapat digunakan dalam kasus ini.)

  • Pilihan terakhir adalah menghapus dan/atau mengganti dependensi pada proyek aplikasi Anda.

Kode ditulis untuk arsitektur tertentu selain Arm64

Aplikasi Anda bergantung pada driver kernel

Driver kernel diperlukan untuk dibangun sebagai Arm64 asli. Tidak ada emulasi yang ada di kernel. Ini terutama berdampak pada 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 diperlukan untuk 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 di 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:

Serta kerangka kerja pihak ketiga, termasuk:

Butuh bantuan? Manfaatkan layanan App Assure kami

App Assure Arm Advisory Service tersedia untuk membantu pengembang membangun aplikasi yang dioptimalkan arm. Layanan ini selain janji kami yang ada: aplikasi Anda akan berjalan di Windows di Arm, dan jika Anda mengalami masalah, Microsoft akan membantu Anda memulihkannya. Pelajari selengkapnya.

Daftar untuk Windows Arm Advisory Services.