Tips Mengatasi APK Size yang Bengkak karena mensupport x86 di Unity

Dennis Ganda
Beyond The Code
Published in
5 min readJul 7, 2016

Apabila anda cukup familiar dengan platform Android tentu anda mengetahui bahwa ada 2 jenis arsitektur processor smartphone Android yang beredar di pasaran :

  • ARMv7 , contohnya merk Qualcomm, Mediatek, etc.
  • x86, yang sampe sekarang masih ekslusif dipegang oleh Intel

Untungnya kebanyakan game engine jaman sekarang sudah mampu mensupport kedua jenis arsitektur tersebut. Dan apabila anda membuat game dengan menggunakan Unity anda dapat membuat APK yang mampu mensupport ARMv7 dan x86 sekaligus, cukup buka Build Setting -> Switch Platform ke Android bila belum -> Player Setting -> Other Settings -> Device Filter -> Pilih FAT (ARMv7 + x86) .

FAT APK Mode

Namun ada satu kelemahan besar yang dimiliki oleh mode FAT ini : ukuran APK yang sangat besar . Mengapa demikian? karena di dalam satu APK unity seperti memasukkan 2 unity library sekaligus : yang satu support ARMv7, yang satunya support x86. Uji build APK FAT yang berisi satu scene kosong tanpa asset sekaligus menghasilkan APK berukuran 19,5 MB . hampir 20 MB digunakan untuk library unity

Sedangkan uji build 2 APK berbeda yang menggunakan ARMv7 dan x86 menghasilkan APK yang masing — masing berukuran 11,1MB dan 11,5 MB. Wow! berbeda 8 MB atau sekitar 40% perbedaan ukuran antara FAT dan non FAT (disini saya pun sesungguhnya cukup kaget karena sebelumnya beda ukuran APK hanya sekitar 5MB saja)

catatan : Uji build menggunakan Unity 5.3.4

Perbedaan ukuran APK seperti ini jelas menjadi masalah apalagi bila game anda adalah game casual simple yang seharusnya tidak berukuran lebih dari 20MB. Atau apabila anda membuat game yang cukup besar tetapi tidak ingin mencapai ukuran 50MB karena policy Google Play Store mengatakan bahwa APK yang berukuran 50 MB hanya bisa didownload via wifi (correct me on this one if I’m wrong)

Lantas bagaimana solusinya?

Solution : Multiple APK

Untungnya di Google Play anda dapat mengupload 2 APK atau lebih ke dalam production phase (istilah untuk APK yang siap dipublish dan bisa didownload). 2 APK atau lebih dapat dimasukkan ke dalam production phase dengan syarat masing — masing APK mensupport arsitektur yang berbeda, ukuran screen yang berbeda , atau OpenGL version yang berbeda. info lengkap dapat dilihat di situs official android developer .

Satu hal yang penting juga adalah APK yang disupport harus menggunakan version code yang berbeda. Di unity kita bisa mengubah version code di Other Settings -> Bundle Version Code

Dengan menggunakan cara ini kita dapat membuat 2 APK yang berbeda , build APK ARMv7 dan build APK x86.

Namun ada catatan penting : Google Play akan selalu berusaha memberikan apk dengan version code paling tinggi, dan apabila version code ARMv7 lebih tinggi dibandingkan version code x86 Google Play akan memberikan APK yang ARMv7 meskipun device yang mendownload berarsitektur x86. Namun tidak sebaliknya, apabila version code x86 lebih besar dan device yang mendownload adalah ARMv7 maka google tetap akan memberikan APK ARMv7.

Warning google play ketika version code x86 lebih besar daripada armv7

Hal ini penting karena percuma kita membuat 2 jenis apk apabila yang didownload user akhirnya hanya salah satu versi saja. Karena hal itu saya memiliki beberapa rule dalam membuat multiple APK , follow these steps and you’re good to go:

  1. Version code x86 harus lebih tinggi dari ARMv7 (x86 > ARMv7)
  2. Version code ARMv7 berangka ganjil dan x86 berangka genap
    misal : version code ARMv7 : 13 , version code x86 : 14
  3. Upload ARMv7 terlebih dahulu baru kemudian yang x86

langkah — langkah di atas akan memudahkan anda ketika mengupload apk di Google Play.

Mengupload Multiple APK ke Google Play

Mungkin anda akan bingung bagaimana caranya mengupload multiple APK ke Google Play apalagi bila anda baru pertama kali mempublish game ke Google Play. Hal ini disebabkan karena tampilan default Google Play hanya mengijinkan satu APK yang ada di dalam production phase dan bila kita mengupload APK baru maka APK yang sebelumnya akan di unpublish.

Untuk dapat mengupload multiple APK kita harus berpindah ke advance mode dengan memencet tombol Switch to advance mode yang terletak di kanan atas layar. Kemudian setelah memasuki advance mode barulah kita bisa memasukkan banyak apk sekaligus ke dalam production phase. Upload 2 APK yang telah dibuat dan anda akan mendapatkan list 2 version apk yang siap dipublish. Apabila ada APK sebelumnya yang memiliki konfigurasi yang sama maka APK tersebut akan otomatis di-unpublish

Selanjutnya silakan lanjutkan proses publishing anda: menambah deskripsi, icon, screenshot, featured images, pricing , game rating dll. Apabila anda telah siap untuk mempublish game klik publish dan tunggu sampai game anda siap didownload di Google Play.

Contoh game yan sukses terpublish. BonBon Gagal Diet *shameless promote*

===========================

Aaaaaand there you go! anda telah sukses membuat game yang mensupport arsitektur ARMv7 dan x86 sekaligus tanpa mengorbankan file size. manfaatkan sisa 8MB tadi untuk hal — hal yang bermanfaat bagi game anda. Semoga tips ini cukup berguna bagi anda. Sampai jumpa di artikel Beyond The Code selanjutnya! :)

-Beyond The Code-
Hal — hal teknis di luar coding yang wajib kamu tahu dalam game development

--

--

Dennis Ganda
Beyond The Code

certified grammar nazi | orang penting di @amagineGames | pecinta hal2 random ~Bersahabat, Dekat, Seru dan Menantang alias BDSM~