Menjalankan Aplikasi Android di Linux Menggunakan Genymotion

Ketika Stallman menganjurkan penyebutan GNU/Linux untuk banyak sistem operasi yang menggunakan kernel Linux, banyak orang menganggap seakan dia "gila hormat" dan berkilah sebaiknya mulai juga menambahkan Xorg, KDE dan lainnya yang bukan GNU tiap kali merujuk Linux.

Dan kini kita mendapati Android, yang berdasar kernel Linux tapi tidak menggunakan perkakas GNU. Apakah Android itu Linux? Tapi ia tidak bisa menjalankan aplikasi Linux, dan aplikasi Android pun tidak bisa dijalankan di Linux.

Saya tidak akan mendebat semantik GNU/Linux ataukah Android/Linux, yang pasti karena perkembangan Android yang "meledak" membuatnya memiliki banyak pilihan aplikasi menarik. Nah, saya lebih tertarik bagaimana agar bisa menjalankan aplikasi-aplikasi Android tersebut di lingkungan desktop GNU/Linux.

Langsung begitu saja menjalankan APK di GNU/Linux pastinya tidak bisa.
Rintisan Google untuk menjalankan APK sebagai Chrome Apps sempat melambungkan asa, namun akhirnya kandas karena Google menghentikan proyek ini.
Dan baru-baru ini muncul proyek Shashlik yang tampaknya memiliki tujuan yang lebih ambisius.

Tidak diragukan lagi Shashlik memang menarik, namun ia masih jauh dari "siap pakai", dan utamanya saya sendiri belum pernah mencoba. Jadi kita lewatkan dulu Shashlik dan membahas yang telah nyata terbukti bisa digunakan untuk menjalankan APK di GNU/Linux; Genymotion.

Sebenarnya Genymotion tidak benar-benar bisa membuat kita menjalankan APK di atas lingkungan GNU/Linux sebagaimana kita bisa menjalankan software Windows di GNU/Linux dengan menggunakan wine. Melainkan ia menyediakan lingkungan mesin virtualisasi yang mengemulasi lingkungan Android.
Genymotion sendiri bukan tanpa kelemahan; (1) ia berdasar android-x86, yang artinya mungkin banyak APK yang akan tidak bisa dipakai di Genymotion karena umumnya APK dikompilasi untuk prosesor ARM, (2) integrasinya dengan lingkungan desktop Linux tidak sebaik virtualisasi lain, dan (3) Genymotion membutuhkan sumber daya yang besar.

Dengan sedemikian banyak kelemahannya, saya tetap menyarankan kepada Anda yang berminat menjalankan APK di komputer GNU/Linux untuk memasang Genymotion. Karena bisa dikata, tidak ada alternatif lain yang sematang Genymotion.
Tentu saja, disamping kelemahan-kelemahan di atas, ada juga keuntungan kita menggunakan Genymotion. Misalnya saja; (1) menjaga hape Android tetap langsing karena tidak banyak memasang aplikasi, (2) bisa mencoba-coba banyak aplikasi tanpa takut merusak sistem, dan (3) menjalankan aplikasi Android dengan spesifikasi emulator yang tinggi.

Memasang Genymotion

Jika Anda juga telah berketetapan hati hendak memasang Genymotion, mari ikuti langkah demi langkah memasang Genymotion di bawah ini.

  • Buat akun di situs resmi Genymotion. Tulis username, surel (email), password kemudian klik Create an account.

    Laman pendaftaran Genymotion

  • Buka kotak masuk surel yang tadi ditulis dalam pendaftaran. Cari surat dari Genymotion, kemudian klik tautan dalam surat tersebut untuk melakukan aktivasi.

  • Unduh Genymotion dari https://www.Genymotion.com/download.

  • Berkas Genymotion yang baru kita unduh bukanlah berupa berkas .deb, rpm atau lainnya yang bisa mengurus dependensinya sendiri, melainkan hanya berupa berkas biner. Jadi sebelum memasang Genymotion kita terlebih dahulu harus memasang VirtualBox, dependensi utamanya, secara manual.

    sudo apt install virtualbox
    
  • Mulai pemasangan Genymotion dengan menjadikan berkas biner genymotion executable. Dicontohkan nama berkas binernya adalah genymotion-2.11.0-linux_x64.bin.

    sudo chmod +x genymotion-2.11.0-linux_x64.bin
    
  • Ada dua skenario dalam memasang Genymotion:

    1. Jika memasang sebagai user biasa, maka Genymotion akan dipasang pada direktori di mana berkas binernya berada. Tentunya user tersebut harus memiliki hak tulis di direktori tersebut. Genymotion yang dipasang dengan cara ini hanya bisa digunakan oleh si pemasang itu sendiri.

    2. Jika memasang sebagai root atau menggunakan sudo, maka Genymotion akan dipasang di /opt/genymobile/genymotion. Genymotion yang dipasang menggunakan cara ini bisa digunakan oleh banyak akun dalam sistem.
      Saya sarankan untuk memasangnya sebagai root saja.

      sudo ./genymotion-2.11.0-linux_x64.bin
      

Menjalankan Genymotion

Jika Genymotion lancar terpasang, ia bisa dipanggil dengan banyak cara tergantung desktop yang digunakan. Misal untuk Gnome 3, kita cukup menekan tombol SUPER dan mengetik nama genymotion kemudian menekan ENTER pada ikon Genymotion yang muncul.
Namun tentu saja, cara manual akan selalu bekerja tidak memandang apapun desktop yang kita gunakan. Buka terminal dan panggil Genymotion menggunakan perintah berikut:

/opt/genymobile/genymotion/genymotion

Ketika perdana menjalankan Genymotion, akan muncul jendela untuk memilih jenis lisensi yang digunakan. Karena saya tidak memiliki lisensi apapun, jadinya memilih Personal Use.

Dan karena belum memiliki perangkat Android virtual, kli Yes untuk menerima tawaran mengunduh virtual device.

Jendela Genymotion yang menawarkan user untuk mengunduh perangkat Android virtual

Mengunduh perangkat Android virtual mengharuskan kita untuk login terlebih dahulu, jadi masukkan username dan password di langkah ini.

Jendela Genymotion yang meminta user untuk login terlebih dahulu sebelum mengunduh virtual device

Pilih perangkat Android virtual yang hendak diunduh. Perangkat dengan versi Android teranyar mungkin tidak akan berjalan mulus karena belum stabil, juga tidak perlu memilih perangkat dengan spesifikasi lebih tinggi dari komputer karena akan percuma saja.

Jendela Genymotion untuk memilih jenis perangkat Android virtual yang hendak diunduh

Tunggu pengunduhan hingga selesai. Kebanyakan perangkat Android virtual-nya berukuran sekitar 300MB sampai 400MB.
Setelah pengunduhan selesai, perangkat Android virtual bisa langsung dijalankan. Berikut tampilan Genymotion yang berhasil saya pasang.

Tips and tricks

Android Debug Bridge (ADB)

ADB adalah perkakas yang memungkinkan komputer berkomunikasi dengan perangkat Android melalui baris perintah. Genymotion membawa perkakas ADB-nya sendiri. Jadi jika dalam komputer kita ternyata belum terpasang ADB, kita bisa menggunakan ADB bawaan Genymotion. Terutama jika Anda bukanlah seorang pengembang perangkat lunak Android, pastinya tidak memiliki perkakas bernama aapt yang sangat berguna jika kita menginginkan fitur pemasangan software Android secara drag and drop ke jendela Genymotion.

Atur penggunaan ADB melalui jendela Settings ➜ ADB, dan pilih:

  • Use Genymotion Android tools (default) untuk menggunakan ADB bawaan Genymotion.
  • Use custom Android SDK tools untuk menggunakan ADB dari Android SDK atau ADB yang dipasang oleh package manager.

ARM Translation

Seperti telah disinggung di atas, Genymotion adalah berdasar android-x86, sebuah emulator Android yang berjalan di komputer berprosesor x86. Sementara umumnya Android kini berjalan di atas prosesor ARM. Karenanya, jangan kaget jika nanti Anda mendapati software Android dibutuhkan ternyata tidak bisa dipasang di Genymotion.

Beruntung, telah ada pustaka yang memungkinkan perangkat lunak Android yang dirancang hanya untuk ARM bisa dipasang dan dijalankan di atas emulator x86. Nama pustaka tersebut adalah ARM Translation, atau kini lebih dikenal sebagai libhoudini.

Untuk lebih jelasnya, silakan baca artikel Memasang ARM Translation di Genymotion.

Memasang Google Applications

Google applications atau biasa disingkat GApps adalah kumpulan perangkat lunak yang membentuk ekosistem Google di Android, diantaranya adalah Play Store, Calendar, Gmail dan Maps. Saya pribadi tidak terlalu bergantung kepada GApps di hape Android, terlebih di Genymotion. Namun sayangnya, banyak aplikasi Android yang menolak untuk dipasang jika dalam sistem tidak terdapat GApps. Dan Genymotion memakai AOSP sebagai dasar custom Android-nya, jadi ia tidak memiliki gapps.

Beruntung, pada Genymotion rilis terkini, memasang gapps ini mudah caranya. Cukup dengan menekan tombol GAPPS yang terletak di pojok kanan atas jendela Genymotion, maka ia akan otomatis mengunduh dan kemudian memasang Open GApps pico yang berukuran sekitar 75MB.

Berbagi berkas dengan komputer host

Agar perangkat Android virtual yang dijalankan di guest VirtalBox bisa mengakses sarana penyimpanan komputer host, kita bisa menggunakan fitur Shared Folder dari VirtualBox.
Agar tutorialnya singkat, kita akan membuat shared folder ini menggunakan baris perintah saja.

  • Jalankan terminal dan kemudian ketik perintah berikut untuk mendaftar mesin virtual apa saja yang dikelola VirtualBox dalam komputer.

    VBoxManage list vms
    
  • Misal hasil perintah tersebut di dalam komputer saya:

    "Windows 7" {bac1c8f5-7258-47ea-b68e-baac01fb9f43}
    "Test" {78911cbc-3d78-44c3-a908-38784cd7c76f}
    "Samsung Galaxy S7 - 7.1.0 - API 25 - 1440x2560" {f9c4626a-dd49-4e8d-bf63-6f18b2528a11}
    

    Perangkat Android virtual adalah mesin bernama Samsung Galaxy S7 - 7.1.0 - API 25 - 1440x2560 dan ID {f9c4626a-dd49-4e8d-bf63-6f18b2528a11}

  • Dicontohkan saya akan membagi berkas di direktori /home/iza dan menamai shared folder ini dengan nama iza:

    VBoxManage sharedfolder add "Samsung Galaxy S7 - 7.1.0 - API 25 - 1440x2560" --name "iza" --hostpath "/home/iza" --automount
    
  • Akhirnya, isi direktori /home/iza akan bisa langsung diakses dari dalam perangkat Android virtual di direktori /mnt/shared/iza

Membuat launcher perangkat Android virtual

Rutinitas menjalankan perangkat Android virtual akan terasa membosankan jika kita akan lumayan sering menggunakannya. Buat skrip berikut untuk memintas rutin dan langsung menjalankan perangkat Android virtual:

  • Gunakan perintah VBoxManage list vms seperti contoh di atas untuk mengetahui nama dan ID mesin virtual perangkat Android kita. Misal namanya adalah Samsung Galaxy S7 - 7.1.0 - API 25 - 1440x2560 dan ID-nya {f9c4626a-dd49-4e8d-bf63-6f18b2528a11}.

  • Buat berkas launcher berikut dan simpan di $HOME/.local/share/applications. Jika pemintas ini ingin agar bisa digunakan oleh semua user, letakkan di /usr/share/applications.

    [Desktop Entry]
    Encoding=UTF-8
    Version=1.0
    Name=Samsung Galaxy S7 - 7.1.0 - API 25
    Comment=Starts the VirtualBox machine Samsung Galaxy S7 - 7.1.0 - API 25 - 1440x2560
    Type=Application
    Exec=/opt/genymobile/genymotion/player -s -n "Samsung Galaxy S7 - 7.1.0 - API 25 - 1440x2560" --startvm "f9c4626a-dd49-4e8d-bf63-6f18b2528a11"
    Icon=phone
    
  • Kini, dalam Gnome 3, saya hanya perlu menekan tombol SUPER dan mengetikkan kata "Samsung" kemudian menekan tombol ENTER untuk menjalankan perangkat Android virtual. Untuk desktop lain tinggal disesuaikan saja dengan workflow-nya, tapi pastinya launcher ini akan muncul di menu aplikasi.

Mengunci posisi layar

Beberapa aplikasi ketika dijalankan akan memutar tampilan layar genymotion 90 derajat berlawanan atau searah jarum jam. Gunakan aplikasi pengunci layar agar tampilan layar menetap. Saya sendiri memakai dan menyarankan aplikasi Rotation Lock Adaptive (Free) yang sayangnya kini telah menghilang dari google Play.

Saya sudahi artikel sampai di sini. Kesimpulannya, walau Genymotion ditujukan bagi pengembang perangkat lunak Android, namun kita yang awam pun akan bisa banyak mengambil manfaat darinya. Ingin mencoba-coba kinerja aplikasi tapi enggan "mengotori" hape? Takut hape error atau melambat jika memasang banyak aplikasi? Ingin menjalankan aplikasi Android tapi spesifikasi hape tidak kuat? Maka Genymotion cocok untuk Anda.
Pastinya masih banyak kegunaan lain yang luput saya tulis.