Sebagian besar ponsel Android memiliki chipset ARM. Namun, banyak perangkat ChromeOS yang menggunakan chip x86. Perbedaannya tidak penting untuk aplikasi yang ditulis dalam Kotlin atau Java. Namun, untuk aplikasi yang ditulis dalam Android NDK, termasuk yang dibuat dengan mesin game, chipset dalam perangkat dapat menjadi masalah penting.
Idealnya, semua aplikasi dengan kode Android NDK harus dikirimkan dengan empat ABI (Antarmuka Biner Aplikasi) Android utama: armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86_32), dan x86_64.
Hal ini memberikan performa terbaik dan konsumsi baterai terendah untuk setiap perangkat. Misalnya, file build.gradle berbasis cmake dapat berisi:
externalNativeBuild {
cmake {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
}
}Ukuran APK
Setiap ABI dalam APK monolitik meningkatkan ukurannya. Hal ini dapat memengaruhi penggunaan disk pengguna, ukuran download aplikasi, dan mungkin mencapai batas ukuran Play Store. Cara terbaik untuk menghindari hal ini adalah dengan menggunakan Android App Bundle. Dengan App Bundle, Anda dapat dengan mudah memaketkan keempat ABI dari dalam Android Studio, tetapi tidak meningkatkan ukuran download untuk pengguna. ABI juga mempermudah penggunaan Pengiriman Dinamis sehingga pengguna dapat mendownload konten game berukuran besar, hanya jika diminta. Jika App Bundle tidak memungkinkan, Anda dapat menggunakan multi-APK yang lama untuk perilaku serupa.
32 vs 64 bit
Semua aplikasi Android harus menyediakan versi build 64-bit. Build 32-bit bersifat opsional untuk perangkat ARM dan x86. Lihat dokumentasi Android 64-bit untuk mengetahui informasi selengkapnya.
Menyediakan build 64 bit saja tidak hanya akan mengurangi jumlah target build yang diperlukan dan permukaan pengujian, tetapi juga membatasi jenis perangkat yang dapat menjalankan game Anda. Misalnya, karena keterbatasan hardware lainnya, banyak Chromebook versi lama hanya dapat menjalankan aplikasi Android 32-bit, meskipun memiliki CPU 64-bit. Untuk memastikan aplikasi Anda dapat berjalan di perangkat ini, sertakan dukungan 32 dan 64-bit.
Catatan: Semua aplikasi baru dan yang diupdate harus menyertakan versi aplikasi 64 bit. Play Store telah berhenti menayangkan aplikasi 32 bit ke perangkat yang mampu menangani 64 bit. Banyak Chromebook memiliki dukungan 64-bit dan sebaiknya update aplikasi Anda sesegera mungkin untuk menyertakan versi 64-bit guna memastikan kontinuitas bagi pengguna aplikasi Anda di ChromeOS.
Terjemahan ARM
x86 Chromebook mencoba menerjemahkan kode ARM jika memungkinkan. Namun, terjemahan memperlambat performa dan meningkatkan penggunaan baterai. Bahkan game sederhana pun harus mempertimbangkan untuk menyediakan build x86 demi pengalaman pengguna terbaik. Jika Anda tidak dapat menyediakan build x86, perhatikan bahwa beberapa Chromebook x86 tidak dapat menerjemahkan kode arm64. Dalam hal ini, Anda harus menyertakan ABI arm32 dan arm64 dalam build Anda.
Meskipun terjemahan arm32 tersedia di semua Chromebook yang mendukung Android, tidak semua Chromebook dapat menerjemahkan kode arm64. Hal ini berarti bahwa jika game Anda hanya memiliki target build arm64, game tidak akan tersedia untuk sejumlah besar perangkat ChromeOS. Jika Anda tidak dapat mengirim biner x86, sertakan ABI arm32 dan arm64 di build Anda.
| ABI yang Disertakan | Dukungan untuk ChromeOS |
|---|---|
arm64 | Buruk |
arm32/arm64 | Oke (dengan terjemahan) |
arm32/arm64/x86_32/x86_64 | Terbaik |