Çoğu Android telefonda ARM çipset bulunur. Ancak birçok ChromeOS cihazda x86 çipleri kullanılır. Bu fark, Kotlin veya Java ile yazılmış uygulamalar için önemli değildir. Ancak oyun motorlarıyla oluşturulanlar da dahil olmak üzere Android NDK'da yazılan uygulamalarda cihazdaki yonga seti önemli bir sorun olabilir.
İdeal olarak, Android NDK kodu içeren tüm uygulamalar dört ana Android ABI'si (Uygulama İkili Arayüzleri) ile birlikte gönderilmelidir: armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86_32) ve x86_64.
Bu sayede her cihaz için en iyi performans ve en düşük pil tüketimi sağlanır. Örneğin, cmake tabanlı bir build.gradle dosyası şunları içerebilir:
externalNativeBuild {
cmake {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
}APK boyutu
Monolitik bir APK'daki her ABI, APK'nın boyutunu artırır. Bu durum, kullanıcılarınızın disk kullanımını ve uygulama indirme boyutunu etkileyebilir ve Play Store'un boyut sınırlarına takılabilir. Bunu önlemenin en iyi yolu Android App Bundle kullanmaktır. Uygulama paketleri, Android Studio'da dört ABI'yi de kolayca paketlemenize olanak tanır ancak kullanıcılarınız için indirme boyutunu artırmaz. Ayrıca, kullanıcıların büyük oyun içeriklerini yalnızca istendiğinde indirmesine olanak tanıyan Dynamic Delivery'den yararlanmayı kolaylaştırır. App Bundle'ı kullanamıyorsanız benzer davranışlar için eski çoklu APK'yı kullanabilirsiniz.
32 bit ile 64 bit arasındaki fark
Tüm Android uygulamaları 64 bit derleme sürümü sağlamalıdır. 32 bit derleme, hem ARM hem de x86 cihazlarda isteğe bağlıdır. Daha fazla bilgi için Android 64 bit dokümanlarını inceleyin.
Yalnızca 64 bit derlemeler sunmak, gereken derleme hedefi sayısını ve test yüzeyinizi azaltır ancak oyununuzu çalıştırabilecek cihaz türlerini de sınırlar. Örneğin, diğer donanım sınırlamaları nedeniyle birçok eski Chromebook, 64 bit CPU'ya sahip olmasına rağmen yalnızca 32 bit Android uygulamalarını çalıştırabilir. Uygulamanızın bu cihazlarda çalışabilmesi için hem 32 bit hem de 64 bit desteği ekleyin.
Not: Tüm yeni ve güncellenen uygulamaların 64 bit uygulama sürümünü içermesi gerekir. Play Store, 64 bit'i destekleyen cihazlara 32 bit uygulamalar sunmayı durdurdu. Birçok Chromebook'ta 64 bit desteği bulunur. ChromeOS'te uygulamanızın kullanıcıları için sürekliliği sağlamak amacıyla uygulamanızı en kısa sürede 64 bit sürümünü içerecek şekilde güncellemenizi öneririz.
ARM çevirisi
x86 Chromebook'lar, mümkün olduğunda ARM kodunu çevirmeye çalışır. Ancak çeviri, performansı yavaşlatır ve pil kullanımını artırır. Basit oyunlar bile en iyi kullanıcı deneyimi için x86 derlemeleri sunmayı düşünmelidir. x86 derlemeleri sağlayamıyorsanız bazı x86 Chromebook'ların arm64 kodunu çeviremediğini unutmayın. Bu durumda, derlemelerinize hem arm32 hem de arm64 ABI'lerini eklemeniz gerekir.
arm32 çevirisi Android özellikli tüm Chromebook'larda kullanılabilirken arm64 kodu tüm Chromebook'larda çevrilemez. Bu nedenle, oyununuzda yalnızca arm64 yapı hedefleri varsa çok sayıda ChromeOS cihazda kullanılamaz. x86 ikili dosyalarını gönderemiyorsanız derlemelerinize hem arm32 hem de arm64 ABI'lerini ekleyin.
| Dahil edilen ABI'ler | ChromeOS desteği |
|---|---|
arm64 | Yetersiz |
arm32/arm64 | Tamam (çeviriyle birlikte) |
arm32/arm64/x86_32/x86_64 | En iyi |