CPU Mimarileri

Xamarin. Android, 32-bit ve 64 bit cihazlar dahil olmak üzere çeşitli CPU mimarilerini destekler. Bu makalede, bir uygulamanın bir veya daha fazla Android tarafından desteklenen CPU mimarilerine nasıl hedefleneceği açıklanmaktadır.

CPU mimarilerine genel bakış

Uygulamanızı yayın için hazırlarken, uygulamanızın desteklediği platform CPU mimarilerini belirtmeniz gerekir. Tek bir APK, birden çok farklı mimariyi desteklemek için makine kodu içerebilir. Mimariye özgü her kod koleksiyonu, bir uygulama Ikili arabirimi (ABI) ile ilişkilendirilir. Her ABı, bu makine kodunun çalışma zamanında Android ile etkileşime geçmesini nasıl bekreceğ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 Sürümiçin yapılandırıldığında açıkça bir mimari (veya mimariler) seçersiniz. Uygulamanız hata ayıklamaiçin yapılandırıldığında, paylaşılan çalışma zamanını kullan ve hızlı dağıtım seçeneklerini kullan seçeneği etkin olur ve bu açık mimari seçimini devre dışı bırakır.

Visual Studio, Çözüm Gezgini altında projenize sağ tıklayın ve özellikler' i seçin. Android seçenekleri sayfasında paketleme özellikleri bölümünü kontrol edin ve paylaşılan çalışma zamanı kullan ' ın devre dışı olduğunu doğrulayın (bunu kapatmak, hangi ABR 'nin desteklenmesi gerektiğini açıkça seçmenizi sağlar). Gelişmiş düğmesine tıklayın ve desteklenen mimarilerde, desteklemek istediğiniz mimarilerin olup olmadığını denetleyin:

Armeabi ve armeabi-V7A seçme

Xamarin. Android aşağıdaki mimarileri destekler:

  • armeabi – en az ARMv5TE yönerge kümesini destekleyen ARM tabanlı CPU 'lar. armeabiİş parçacığı açısından güvenli olmadığına ve çok CPU cihazlarda kullanılmamalıdır.

Not

Xamarin. Android 9,2itibariyle, artık desteklenmemektedir.

  • donanım kayan nokta işlemleri ve birden çok CPU (SMP) cihazı olan armeabi-V7A – ARM tabanlı CPU 'lar. armeabi-v7aMakine kodunun ARMv5 cihazlarda çalıştırılmadığını unutmayın.

  • arm64-v8a – cpu 'ları 64-bit ARMv8 mimarisine göre.

  • x86 – x86 (veya ıa-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 eşdeğerdir.

  • x86_64 64 bit x86 ( x64 ve AMD64olarak da adlandırılır) yönerge kümesi destekleyen CPU 'lar.

Xamarin. Android armeabi-v7aarmeabi-v7a derlemeleri için varsayılan olarak kullanılacak. Bu ayar şundan önemli ölçüde daha iyi performans sağlar armeabi . 64 bitlik bir ARM platformunu (Nexus 9 gibi) hedefliyorsanız, öğesini seçin arm64-v8a . Uygulamanızı bir x86 cihazına dağıtıyorsanız, öğesini seçin x86 . Hedef x86 cihazı 64 bitlik bir CPU mimarisi kullanıyorsa, öğesini seçin x86_64 .

Birden çok platformu hedefleme

Birden çok CPU mimarilerini hedeflemek için birden fazla ABı seçebilirsiniz (daha büyük APK dosya boyutu masrafına). Desteklenen her mimaride ayrı bir APK oluşturmak için, SEÇILI ABI başına tek bir paket (. apk) oluştur ( paketleme özelliklerini ayarlamabölümünde açıklanmıştır) kullanabilirsiniz.

64 bitlik cihazları hedeflemek için arm64-v8a veya x86_64 seçmeniz gerekmez; 64 bit desteği, uygulamanızı 64 bit donanımda çalıştırmak için gerekli değildir. Örneğin, 64-bit ARM cihazları ( Nexus 9gibi) için yapılandırılmış uygulamaları çalıştırabilir . 64 bit desteğini etkinleştirmenin birincil avantajı, uygulamanızın daha fazla bellek adreslemelerine olanak tanımak.

Not

2018 Ağustos 'tan yeni uygulamaların API düzeyi 26 ' i hedeflemesi ve Ağustos 2019 ' den itibaren, 32-bit sürümüne ek olarak 64 bit sürümler sağlaması gerekir.

Ek Bilgi

Bazı durumlarda, her mimari için ayrı bir APK oluşturmanız gerekebilir (APK 'nizin boyutunu azaltmak için veya uygulamanızın belirli bir CPU mimarisine özgü olan paylaşılan kitaplıkları vardır). Bu yaklaşım hakkında daha fazla bilgi için bkz. derleme ABI-Specific APKs.