The justification that I\'ve seen for shall we say \"Bastardizing\" the Java bytecodes in Android was performance. (I suspect there is another reason.) However by changing the
Wikipedia: Dalvik virtual machine:
Unlike most virtual machines and true Java VMs which are stack machines, the Dalvik VM is a register-based architecture.
Being optimized for low memory requirements, Dalvik has some specific characteristics that differentiate it from other standard VMs:
- The VM was slimmed down to use less space.
- Dalvik has no just-in-time compiler.
- The constant pool has been modified to use only 32-bit indexes to simplify the interpreter.
- It uses its own bytecode, not Java bytecode.
Moreover, Dalvik has been designed so that a device can run multiple instances of the VM efficiently.
Edit: See Wikipedia: Open Handset Alliance. The founding member includes Intel, Motorola, Qualcomm, and Texas Instruments. ARM joined an year later in December, 2008. So, I guess it didn't make sense for these companies to rely on a proprietary technology by then non-member, when the goal was to create opensource iPhone/Blackberry competitor.