Search code examples
androidlinuxdevice-driver

Is Linux a common environment for Android developers?


I am asking this because apparently few devices have support for Linux. My device(Asus) doesn't have USB driver for Linux and Google USB driver is not compatible as well. Which brings me to the emulator. Is it a way to go? Or should I move to Windows?


Solution

  • Most smartphone OEMs' have developed drivers for Mac OS X and Windows, and have excluded Linux. Not only that, but Intel x86 virtualization (which makes your emulator as fast as a real device) works only on Windows, not Linux. However, in Linux you have a kernel module known as kvm that plays the role of HAXM on Windows. And kvm works with both Intel AND AMD.

    In light of this, you could consider Windows to ease the process of learning Android software development, or even better, use OS X, as it will also allow you to do iOS development (which is not possible on Windows). Moreover, OS X downloads smartphone drivers automatically when you plug the phone in, while on Windows you have to search for drivers on the web.

    Further considerations:

    • All Nexus devices work on Ubuntu Linux without hassles.
    • Many developers who work with NDK prefer using Linux as its easy to work with the NDK tools in a Linux environment, i.e. no need to use Cygwin / MinGW.

    See also:

    1. Which is the best platform to develop Android apps: Windows, MacOS or Linux?

    2. Does using Linux OS matter while developing Android apps?