Bagikan melalui


Arsitektur CPU

Xamarin.Android mendukung beberapa arsitektur CPU, termasuk perangkat 32-bit dan 64-bit. Artikel ini menjelaskan cara menargetkan aplikasi ke satu atau beberapa arsitektur CPU yang didukung Android.

Gambaran Umum Arsitektur CPU

Saat menyiapkan aplikasi untuk rilis, Anda harus menentukan arsitektur CPU platform mana yang didukung aplikasi Anda. Satu APK dapat berisi kode mesin untuk mendukung beberapa arsitektur yang berbeda. Setiap koleksi kode khusus arsitektur dikaitkan dengan Antarmuka Biner Aplikasi (ABI). Setiap ABI mendefinisikan bagaimana kode mesin ini diharapkan berinteraksi dengan Android pada waktu proses. Untuk informasi selengkapnya tentang cara kerjanya, lihat Perangkat Multi-Core & Xamarin.Android.

Cara Menentukan Arsitektur yang Didukung

Biasanya, Anda secara eksplisit memilih arsitektur (atau arsitektur) saat aplikasi Anda dikonfigurasi untuk Rilis. Saat aplikasi Anda dikonfigurasi untuk Debug, opsi Gunakan Runtime Bersama dan Gunakan Penyebaran Cepat diaktifkan, yang menonaktifkan pemilihan arsitektur eksplisit.

Di Visual Studio, klik kanan proyek Anda di bawah Penjelajah Solusi dan pilih Properti. Di bawah halaman Opsi Android, periksa bagian Properti kemasan dan verifikasi bahwa Gunakan Shared Runtime dinonaktifkan (menonaktifkan ini memungkinkan Anda untuk secara eksplisit memilih ARI mana yang akan didukung). Klik tombol Tingkat Lanjut dan, di bawah Arsitektur yang didukung, periksa arsitektur yang ingin Anda dukung:

Selecting armeabi and armeabi-v7a

Xamarin.Android mendukung arsitektur berikut:

  • armeabi – CPU berbasis ARM yang mendukung setidaknya set instruksi ARMv5TE. Perhatikan bahwa armeabi tidak aman untuk utas dan tidak boleh digunakan pada perangkat multi-CPU.

Catatan

Pada Xamarin.Android 9.2, armeabi tidak lagi didukung.

  • armeabi-v7a – CPU berbasis ARM dengan operasi floating-point perangkat keras dan beberapa perangkat CPU (SMP). Perhatikan bahwa armeabi-v7a kode mesin tidak akan berjalan pada perangkat ARMv5.

  • arm64-v8a – CPU berdasarkan arsitektur ARMv8 64-bit.

  • x86 – CPU yang mendukung set instruksi x86 (atau IA-32). Set instruksi ini setara dengan instruksi Pentium Pro, termasuk instruksi MMX, SSE, SSE2, dan SSE3.

  • x86_64 CPU yang mendukung set instruksi 64-bit x86 (juga disebut sebagai x64 dan AMD64).

Xamarin.Android default ke untuk armeabi-v7aBuild rilis . Pengaturan ini memberikan performa yang jauh lebih baik daripada armeabi. Jika Anda menargetkan platform ARM 64-bit (seperti Nexus 9), pilih arm64-v8a. Jika Anda menyebarkan aplikasi ke perangkat x86, pilih x86. Jika perangkat x86 target menggunakan arsitektur CPU 64-bit, pilih x86_64.

Menargetkan Beberapa Platform

Untuk menargetkan beberapa arsitektur CPU, Anda dapat memilih lebih dari satu ABI (dengan mengorbankan ukuran file APK yang lebih besar). Anda dapat menggunakan opsi Hasilkan satu paket (.apk) per ABI yang dipilih (dijelaskan dalam Set Packaging Properties) untuk membuat APK terpisah untuk setiap arsitektur yang didukung.

Anda tidak perlu memilih arm64-v8a atau x86_64 untuk menargetkan perangkat 64-bit; dukungan 64-bit tidak diperlukan untuk menjalankan aplikasi Anda pada perangkat keras 64-bit. Misalnya, perangkat ARM 64-bit (seperti Nexus 9) dapat menjalankan aplikasi yang dikonfigurasi untuk armeabi-v7a. Keuntungan utama mengaktifkan dukungan 64-bit adalah memungkinkan aplikasi Anda untuk mengatasi lebih banyak memori.

Catatan

Mulai Agustus 2018, aplikasi baru akan diperlukan untuk menargetkan API level 26, dan mulai Agustus 2019 aplikasi akan diperlukan untuk menyediakan versi 64-bit selain versi 32-bit.

Informasi Tambahan

Dalam beberapa situasi, Anda mungkin perlu membuat APK terpisah untuk setiap arsitektur (untuk mengurangi ukuran APK Anda, atau karena aplikasi Anda memiliki pustaka bersama yang khusus untuk arsitektur CPU tertentu). Untuk informasi selengkapnya tentang pendekatan ini, lihat Membangun APK Khusus ABI.