CPU Mimarileri
Xamarin.Android, 32 bit ve 64 bit cihazlar dahil olmak üzere çeşitli CPU mimarilerini destekler. Bu makalede, bir uygulamanın Android tarafından desteklenen bir veya daha fazla CPU mimarisine nasıl hedeflendiği açıklanmaktadır.
CPU Mimarilerine Genel Bakış
Uygulamanızı yayına hazırlarken, uygulamanızın hangi platform CPU mimarilerini desteklediğini belirtmeniz gerekir. Tek bir APK birden çok farklı mimariyi desteklemek için makine kodu içerebilir. Mimariye özgü her kod koleksiyonu bir Uygulama İkili Arabirimi (ABI) ile ilişkilendirilir. Her ABI, bu makine kodunun çalışma zamanında Android ile nasıl etkileşim kurması beklendiğini tanımlar. Bunun nasıl çalıştığı hakkında daha fazla bilgi için bkz . Çok Çekirdekli Cihazlar & Xamarin.Android.
Desteklenen Mimarileri Belirtme
Genellikle, uygulamanız Yayın için yapılandırıldığında açıkça bir mimari (veya mimari) seçersiniz. Uygulamanız Hata Ayıklama için yapılandırıldığında, Açık mimari seçimini devre dışı bırakmak için Paylaşılan Çalışma Zamanı Kullan ve Hızlı Dağıtım Kullan seçenekleri etkinleştirilir.
Visual Studio'da, Çözüm Gezgini altında projenize sağ tıklayın ve Özellikler'i seçin. Android Seçenekleri sayfasının altında Paketleme özellikleri bölümünü kontrol edin ve Paylaşılan Çalışma Zamanı Kullan'ın devre dışı bırakıldığını doğrulayın (bunu kapatmak hangi ABI'lerin desteklendiğini açıkça seçmenize olanak tanır). Gelişmiş düğmesine tıklayın ve Desteklenen mimariler'in altında, desteklemek istediğiniz mimarileri denetleyin:
Xamarin.Android aşağıdaki mimarileri destekler:
- armeabi – En az ARMv5TE yönerge kümesini destekleyen ARM tabanlı CPU'lar.
armeabi
İş parçacığı güvenli olmadığını ve çok CPU'lu cihazlarda kullanılmaması gerektiğini unutmayın.
Not
Xamarin.Android 9.2 itibarıyla armeabi
artık desteklenmemiştir.
armeabi-v7a – Donanım kayan nokta işlemleri ve birden çok CPU (SMP) cihazı olan ARM tabanlı CPU'lar. Makine kodunun
armeabi-v7a
ARMv5 cihazlarında çalışmayacağını unutmayın.arm64-v8a – 64 bit ARMv8 mimarisini temel alan CPU'lar.
x86 – x86 (veya IA-32) yönerge kümesini destekleyen CPU'lar. Bu yönerge kümesi, MMX, SSE, SSE2 ve SSE3 yönergeleri dahil olmak üzere Pentium Pro'nunkiyle eşdeğerdir.
64 bit x86 (x64 ve AMD64 olarak da adlandırılır) yönerge kümesini destekleyen CPU'ları x86_64.
Sürüm derlemeleri armeabi-v7a
için Xamarin.Android varsayılan değeridir. Bu ayar, değerinden armeabi
önemli ölçüde daha iyi performans sağlar. 64 bit ARM platformunu (nexus 9 gibi) hedeflediyseniz öğesini seçin arm64-v8a
. Uygulamanızı bir x86 cihazına dağıtıyorsanız öğesini seçin x86
. Hedef x86 cihazı 64 bit CPU mimarisi kullanıyorsa öğesini seçin x86_64
.
Birden Çok Platformu Hedefleme
Birden çok CPU mimarisini hedeflemek için, birden fazla ABI seçebilirsiniz (daha büyük APK dosya boyutu pahasına). Desteklenen her mimari için ayrı bir APK oluşturmak için Seçilen ABI başına bir paket oluştur (.apk) seçeneğini kullanabilirsiniz (Paketleme Özelliklerini Ayarlama bölümünde açıklanmıştır).
64 bit cihazları hedeflemek için arm64-v8a veya x86_64 seçmeniz gerekmez; uygulamanızı 64 bit donanımda çalıştırmak için 64 bit destek gerekmez. Örneğin, 64 bit ARM cihazları (Nexus 9 gibi) için armeabi-v7a
yapılandırılmış uygulamaları çalıştırabilir. 64 bit desteği etkinleştirmenin birincil avantajı, uygulamanızın daha fazla belleğe hitap etmesini mümkün kılmaktır.
Not
Ağustos 2018'den itibaren api düzeyi 26'yı hedeflemek için yeni uygulamalar gerekecek ve Ağustos 2019'dan itibaren uygulamaların 32 bit sürüme ek olarak 64 bit sürümleri sağlaması gerekecektir.
Ek Bilgi
Bazı durumlarda, her mimari için ayrı bir APK oluşturmanız gerekebilir (APK'nızın boyutunu azaltmak için veya uygulamanızın belirli bir CPU mimarisine özgü kitaplıkları paylaştığından). Bu yaklaşım hakkında daha fazla bilgi için bkz . ABI'ye Özgü API'ler oluşturma.