As odd as it may seem, I cringe every time I think about developing on Android. It's not the development that gets me. Honestly, I can't stand the emulator. It takes so long to boot up, and is such a resource hog when running. The iPhone emulator is also a resource hog, but I can close it without anticipating a 2 minute bootup when I build my application.
The provisioning profiles are a huge pain, I regularly switch between computers / wipe my computers and every time getting started with iOS is enough hassle for me to put it off a few weeks
Part that its a split, android has a shell which can massively aid debugging, Xcodes integration with gdb seems better / easier than the android debugger, for me that still swings it 70/30 towards android
Every Android developer I know (myself included) has a variety of Android devices that they actually test on. It's a lot faster, and much more realistic.
You only need experienced it once for a day, if you want to. Do you restart your emulator every time you compile/build your app? You don't have to. Once the emulator run, you can build and run your application into emulator within no time.
The problem with that is it is still a pretty big resource hog. It's fine when I'm on my iMac, but on my MBA/2GB/1.4Ghz it just brings my system to a crawl.
It's a shame the Android emulator doesn't use x86 and wrap the host OpenGL APIs. Currently it emulates ARM (with qemu IIRC?) and then has the emulated ARM processor emulate OpenGL with "PixelFlinger".
I'm another Android developer who only ever tests on a device. I wonder if running Android x86 in something like VMWare might be better?
I'd worry about relying on Android-x86 at the moment as it's not an officially backed project from any OEM. However, Intel and Google have promised first-class support for x86 soon; so virtualized Android will likely be more trustable at that point.
FWIW, the Google TV (Android 3.1) SDK can run in KVM on Linux (current Google TV hardware is Atom-based); some of the work is already there.
Yes, because the Android emulator is actually an emulator. The iOS "emulator" is a simulator. It doesn't emulate the ARM instructions or run an actual OS instance. The Android emulator does.
Of course, the best option is to connect your Android device and test/debug on the device itself.