In my opinion the google guys are a little too fond of their dalvik vmAndroid was meant to run on several different architectures seamlessly. It may well be most popular on arm but then you get the issue of ARMv6 and ARMv7 and then on ARMv6 in particular issues about whether or not the CPU has a hardware FPU or not. Then there are a few devices that run on MIPS rather than arm (particularly in china) and a few x86. I think that is the perfect time to be using a VM rather than native code, although it does seem that they give options for compiling separate binaries for each platform.
Anyway, seems to be alot of useful insight on the subject in this thread.