The improvement to system stability is 非常重要 on a device like a cell phone.
安全性更为重要。Android 环境允许用户运行不完全信任的应用程序,这些应用程序可以利用手机的真正不愉快的方式而没有优秀的安全性。通过在虚拟机中运行所有应用程序,您可以保证没有应用程序可以利用操作系统内核,除非 VM 实现中存在缺陷。反过来,VM 实现可能很小,并且具有一个小的、定义良好的安全表面。
Perhaps most important, when programs are compiled to code for a virtual machine, they do not have to be recompiled for new hardware. The market for phone chips is diverse and rapidly-changing, so that's a big deal.
Also, using Java makes it less likely that the apps people write will be exploitable themselves. No buffer-overruns, mistakes with pointers, etc...