views:

148

answers:

2

Compared to the iPhone and Windows Phone 7 equivalents it's takes forever to start up - is it realistic to expect this to improve over time ?

+5  A: 

I wouldn't bet my money that it will improve significantly. That is because Android uses a QEMU-based emulator (compared to IPhone's simulator).

Because the IPhone is simulated, it can translate instructions to native processor code on the host machine, which is way faster than the QEMU alternative.

The great advantage with emulation is that the code that is run on the emulator si actually the code that will be running on the physical device, so a possible round of bugs is avoided.

Now, on improving the speed of the Android emulator, you could:

  • open the emulator and not close it for every launch; (re)installing an application in an open emulator is almost instantaneous

  • use the -no-boot-anim command line switch when starting the emulator; this will improve somewhat the startup time

  • use a real device to test your application with

the_void
Yeah I learned fairly quickly not to close it after every deploy!
Alan B
Android has a simulator lurking in the sources from the very early days (build the sim-eng target), but its use is deprecated and I don't think it has ever worked in the published sources (something breaks around release time and nobody notices). Even with tons of asserts and additional checks enabled it can reach the home screen in a few seconds. It's primarily useful for running valgrind.
fadden
Actually QEMU is binary translator (ie. what you call a 'simulator'), but the Android emulator is based on very old QEMU source and never picked any of the improvements made to the mainline QEMU.
Filip Navara
A: 

Also, if you right click on the process in the eclipse and select Disconnect it will greatly speed up the emulator, but of course you won't be able to debug.

swinefeaster