Google Android Emulator

If you want to test, run and debug your Android apps without using a physical Android based mobile then you just need the Android Emulator for your needs. The Emulator is a virtual android mobile device running on your computer to enable you to easily develop, test and prototype all your Android applications. The Android Emulator is as good as physical mobile except that it cannot place or receive phone calls. It can mimic all the hardware and software features of a real mobile phone and can even reproduce your applications together with other Android apps running concurrently.

The Android Emulator lets you to fine-tune your application by providing a platform from where not only your Android app runs but also invokes other apps, play audio and videos, network with other users. If you need to debug your prototype Android app you can do so from the Emulator itself that provides a host of debug capabilities, which includes a console to log kernel output, reproduce application interrupts and latency effects on the data channel.

The Android Emulator provides a full system stack including the kernel level and some preinstalled apps like Dialer that can be accessed from your Android applications. Other features of the Android Emulator include:

Skinnable mobile device UI

Customisable key mappings

Options for controlling the emulated environment behaviour

It needs to be mentioned though that the Android Phone Emulator does not display the phone in the same dimension but a different one and also critical functionality like making and receiving calls, or open actual websites. Apart from these limitations the Google Android Mobile Emulator is a very handy tool for developers who want to run, test and debug their Android application thoroughly before putting it up for online distribution.

The Android system image distributed in the SDK contains ARM machine code for the Android Linux kernel, the native libraries, the Dalvik VM, and the various Android package files. The emulator's QEMU layers provide dynamic binary translation of the ARM machine code to the OS and processor architecture of your development machine.