Ask HN: Why is the Android emulator so slow?

8 points by pshapiro ↗ HN
Coming from an iOS mobile development background, the Android emulator is ridiculously slow. Anyone know why it's like that?

8 comments

[ 3.6 ms ] story [ 28.1 ms ] thread
The iOS "emulator" actually isn't; it's running native x86 code including all system frameworks. That makes it much faster than the Android emulator which has to fully emulate an ARM CPU.
This is correct but kind of just shifts the question to "Why doesn't Google do the same for Android?", particularly now that the Honeycomb SDK is out because the Android SDK emulator running Honeycomb is so slow as to be completely unusable even on my quad-core desktop system.
yes , same here . I cant even explored honeycomb as its emulator is too slo , that's why i prefer runing code direct to device . Its saves time.

adb has lots of problem

do what same for Android? go native? haven't tried honeycomb but if it's that slow I say post it as an issue to android dev
Go native for the dev "emulator" is what I meant, just like Apple does for the iOS SDK.

All of the tools the Android SDK uses to build APKs (even NDK ones) support x86 as a target and Android itself will run on x86. There are certainly some apps that require ARM specific (eg. NEON) instruction sets but those are in the vast minority compared to the whole of the Android App ecosystem and Honeycomb running on an emulated ARM isn't really a solution for even those folks, the emulator is basically useless for everyone now.

yes, it is slow when you start it up first time 'cause it has to load all the dependencies and stuff but it's not so bad once it starts up and when you test something. having more memory helps a lot. try it.
It is slow... one thing you can do is hook up a real phone to your computer and use it in place of the emulator.

another thing is... are you stopping and starting the emulator every time you do a new build? I was at first, but it's way faster to leave the emulator running. Then just run or debug and it will start in the current running emulator.