BlueStacks + Eclipse: Speeding up Debugging and Testing of Android Applications
Android emulator called BlueStacks has already been described many times but either in general or too little, or meagre. Meanwhile, the project has developed and it is now ready for use for testing and debugging Android applications. Why do it? Because BlueStacks runs much (no, even much-much) faster than the standard Android SDK emulator. Below, I will describe the niceties of BlueStacks usage, configuring from Eclipse, will give some measuring of running speed and will tell about some flies in the ointment.
Installation
All as usual — download and install. Beware, when being installed on Win7, the emulator has hung, and solidly – together with Windows. Of course, it has spoilt the first impression, but having been rebooted, BlueStacks started well. In general, all this can be taken for forced reboot in the course of installation — close the important applications before running the installation.
Start
It starts from the icon on the desktop or from the quick menu in the task tray. On my PC, the start-up takes 25 sec., while the standard emulator takes 58 sec. Of course, the start-up is a trifle as it is done a couple of times a day at maximum, but it’s a pleasant trifle.
Debugging from Eclipse
If you first start BlueStacks and then Eclipse, Eclipse will find the emulator (it can be verified in the Devices tab.)
If you restart the emulator and/or Eclipse, the connection can be broken. It can be restored with the command
adb connect 127.0.0.1
The adb utility is part of Android SDK (I have it at C:\Users\%MyUser%\android-sdk\platform-tools)
Now, your Android application will be installed and started not from the standard emulator but from BlueStacks.
Running Speed (Subjectively)
After months of work on the standard and slow emulator, it will look like magic with its instant responses. A new screen opens (by the handler on the button) before your finger returns after clicking the mouse button. All those network asynchronous requests that made the process bar of the standard emulator crawl very slowly now hardly make the process bar appear. And the most important is that in the course of debugging the Variables tab in Eclipse can be opened instantly where scores of object properties can be seen at the same time instead of looking for 10 sec. as they update from the top to the bottom. In general, one can really work now.
Running Speed (Objectively)
Installation and Hello World Start-Up
First deployment test with the emulator running from Run in Eclipse to the Hello World sign.
Standard emulator: 28 sec.
BlueStacks: 7 sec.
Cycle
The running time of this code was measured:
long startTime = System.currentTimeMillis();long a = 0;Random rnd = new Random();for (int i = 0; i < 10000000; i++){ a += rnd.nextLong();}long estimatedTime = System.currentTimeMillis() – startTime;Log.d(Long.toString(a), Long.toString(estimatedTime));
Standard emulator: 41 sec.
BlueStacks: 2.3 sec.
Static page request from the LAN web server.
Standard emulator: 4 sec.
BlueStacks: 0.8 sec.
FAQ
It’s paid, isn’t it?
Nope. At least not yet.
Where is the fly then?
While using BlueStacks (for a couple of weeks), I have found three flies:
- Sometimes it hangs: same as at installation – together with Windows. Where ‘sometimes’ means once per 2-3 days of ten-hours running. As BlueStacks takes 1 min. at the most to reboot and spares me loads of time and nerves, I found it an admissible sacrifice.
- It installs some applications in the emulator and shows them in a special Recommended bar. Maybe, someone pays for them (although the web-site says the opposite).Anyway, it means only some additional traffic and a few icons as no one makes you start them.
- Sometimes, with BlueStacks running on the parent OS, the navigation arrows (up, down, left and right) stop functioning. The questions “why?” and “how to remedy it?” remain unanswered so far.
Does BlueStacks run on Linux and Mac?
On Mac it does and on Linux it doesn’t so far.
Can I change the screen size and orientation?
Partly. There are a couple of configurations between which you can switch. Random size remains so far inaccessible.