Jangan berharap dengan aplikasi android di Linux Desktop

Kalian mungkin pindah ke Linux dengan sedikit ekspektasi bahwa kompatibilitas ke aplikasi android akan baik, denger waydroid lah, yang penting sama sama Linux lah

Udah jadi pertanyaan harian

“Aduh bang kepingin main game A android di Linux, katanya bisa bang?”

“Bang sama sama Linux kernel pasti gampang kan?”

No boy, tidak mesti

Meskipun avarage desktop distro dan android sama sama menggunakan Linux kernel, tetapi ada perbedaan yang tajam

“Tapi bang aplikasi windows aja yang beda banget kok bisa kenapa aplikasi android yang sama sama pake Linux kernel susah?”

Pertanyaan bagus, jawabanya bisa disingkat jadi Perbedaan target CPU, Google yang terkadang lebih kikir dari Microsoft, System Lock Down dimana semua aspect android kalau ilang satu aja bisa bikin aplikasi gak bisa jalan, perbedaan jalanya aplikasi

Tentu saja kalau disebutin satu satu nanti jadi blogspot jadi cukup aja beberapa dan simplifikasi karena ini grup pasti pertanyaan nya dasar jadi aku gak yakin member awam akan paham

1.Mulai dari dasar saja target platform ARM vs X86

ARM processor ala snapdragon, mediatek dkk dan X86 secara fundemental berbeda, kalau aku sebutin, again ini nanti jadi blogspot tapi buat orang awam gini aja

ARM itu berdasarkan RISC(Reduced Instruction Set Computer, sementara X86 itu CISC (Complex Instruction Set Computer) dari namanya sudah beda tapi anggap aja RISC lebih simple dan spesifik sementara CISC itu general dan interchangeable (mostly)

Contoh paling gampang, dulu kalau kalian bajak laut game android, pasti pas download apk dari website penuh iklan gak jelas, pasti disuruh milih Andreno vs Mali vs Tegra, nah antara aplikasi game antar device misal GPU andreno nya snapdragon dan Mali nya mediatek aja itu dulu biasanya di compile terpisah, karena emang secara fisik kedua GPU itu “beda” Dalam implementasi ARM (dan ini alasan update driver di HP android itu gak pernah terjadi) , sementara X86 itu generic, aplikasi yang jalan di Intel akan jalan di AMD

2.Cara aplikasi android jalan dan cara aplikasi Linux jalan

Gampangan nya aplikasi android jalan sebagai virtual machine super kenceng (makanya developer aplikasi android suka nya java/kotlin) namanya Android Runtime/ART nah karena semua aplikasi itu jalan dalam wadahnya sendiri sendiri makanya kalian kalau nyadar gak akan diminta nge install library x atau y yang berbeda berbeda drastis dengan linux yang biasanya tanpa pake overhead (kecuali aplikasi kotlin/java) dimana aplikasi berjalan secara langsung dan akan secara dinamis memakai library yang ada di sistem

Android milik Google

Android milik Google

3.filesystem yang berbeda

Linux pake namanya Filesystem Standard Hierarchy (FHS)

/

/bin

/usr

/home

Tahu lah ya

Kalau android tidak, jika kalian punya aplikasi Zarchiver, kalian terus pencet yang symbol file dengan anak panah dan titik dua terus pencet sampai file root, hasilnya akan berbeda

4.Android tidak memakai X11 atau Wayland

Cukup tau lah ya, tapi disiplay server android itu beda jauh sama X11 dan Wayland,cuma kebetulan aja Wayland itu lebih ringan buat implementasi android (ehem waydroid) di Desktop

5.Yang terakhir android C Library nya bukan GLibC maupun Musl tapi Bionic

Anggap aja tulang punggung semua aplikasi , itu namanya standard library, biasanya Desktop itu Glibc atau Musl tapi karena google itu kikir dan gak mau kena lisensi open source mereka bikin library sendiri namanya Bionic

Kalau kalian pengguna langka yang pake Linux Musl pasti tahu setan nya gimana caranya njalahin aplikasi GlibC di Linux Musl perlu chroot lah, terus bikin sub file system sendiri, sekarang bayangkan buat android (dan alasan kenapa meskipun satu kernel kebanyakan solusi di Linux itu containerisasi dan bukan full translasi kek wine)

6.Kernel yang dipake android itu berbeda dengan yang Desktop

Kernel android nama aslinya Android Common Kernel (ACK) tapi karena berdasarkan Linux ya terlanjur pada ngertinya kernelnya sama dengan Desktop, tidak Lee, beberapa bagian di edit khusus seperti patch buat Binder IPC dan ashmem

Okeh bisa dilihat secara dasar android aja udah berbeda, salah satu bagian aja gak ada itu bisa tumbang semuanya, tapi sebenarnya bisa aja di akali, tetapi akal akalan nya untuk sekarang masih bisa dibilang “belum matang”

Cara paling mudah buat jalanin aplikasi android di Linux itu pakai namanya waydroid

Tetapi waydroid itu container alias kalian nge install android diatas desktop kalian, itupun banyak banget prasyaratnya

Jujur aja, gak lebih bagus dari emulator di windows yang sebenarnya agak ironis tapi well, banyak sih masalahnya

1.pastiin kernel mu ada binder module paling cepet pake kernel kek zen, cachyos atap xanmod

2.pastiin kalau desktop environment pakai nya wayland (contoh gampang kek KDE-Gnome-Cosmic)

3.pastiin GPU mu itu AMD kalau gak Intel, kau pake NVIDIA nanti lambat nya minta ampun ini karena waydroid buat konek dengan hardware perlu driver open source, dan Nvidia gak punya driver open source, kau pake NVIDIA yowes

Okay 3 syarat ini terpenuhi? Okeh

Follow aja guide disini

https://docs.waydro.id/usage/install-on-desktops

Quick QnA

1.Waduh bang kok gak ada aplikasi google apps?

Ya karena secara fundemental lisensi google yang bukan open source dan waydroid yang open source itu tabrakan, toh google bikin Bionic sebagai library khusus karena mereka ogah urusan sama lisensi sumber terbuka

2.aduh bang gak bisa buka google play device Certificate error

Selamat datang di masalah kedua, aplikasi google entah kenapa perlu sertifikasi device

https://docs.waydro.id/faq/google-play-certification

Tanpa ini google Play mu gak akan buka, dan btw google punya hak buat cabut sertifikasi tanpa sepengetahuan kita

3.okeh udah device certificate kok gak ada aplikasi yang aku mau?

Aplikasi android dibuat secara khusus untuk prosessor ARM (Mediatek,Snapdragon dkk) yang berbeda jauh dengan x86-64 (Intel dan AMD) google play dalam kondisi standar hanya akan menunjukan aplikasi yang compaitible dengan x86 yang berarti 70% aplikasi tidak bisa digunakan

Perlu nya namanya libhoudini dan Libndk sebagai translasi layer biar aplikasi ARM bisa jalan di X86

https://github.com/casualsnek/waydroid_script

4.aduh bang udah semua itu kok ada game nya lambat?

Aplikasi bawaan ARM, akan mengalami sebuah perlambatan karena di perlu translate dulu ke X86, makanya meskipun pakai translation layer, dan punya direct acces ke hardware waydroid itu *bisa lebih lambat* dibanding emulator di windows kek bluestack, karena translate layer nya itu bisa dibilang masih bayi, belum matang

Jujur emang lucu sih Linux bisa lebih cepet jalanin aplikasi windows pake wine tapi perlu diingat wine sudah dikembangkan selama 30 tahun sementara waydroid Itu baru 3 tahun, dan kalau kalian masih inget Anbox yang merupakan inspirasi nya waydroid itu dari 2017 yang artinya baru 9 tahun, developer masih perlu jalan panjang buat ngakalin OS nya mbah google for now saranku sih, android ya di HP aja dah, kalau mau aneh aneh pastiin spek mu cukup, kalau gak yowes pake Genymotion aja.

Leave a Reply

Your email address will not be published. Required fields are marked *