Share via


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:

Selecting armeabi and armeabi-v7a

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-v7ayapı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.