3 ms·
Android does not have a Java VM, and it does not run Java bytecode. Dalvik bytecode is more compact, and more CPU efficient, and the more recent ART runtime is
by Zigurd 9y ago
Android does not have a Java VM, and it does not run Java bytecode. Dalvik bytecode is more compact, and more CPU efficient, and the more recent ART runtime is even more efficient and performant. But it isn't a JVM.
- pjmlp 9y agoJust like all the vendors selling commercial JDKs for the embedded market. They also offer customized versions fine tuned for their deployment scenarios, doing Java bytecode to either native (AOT) or their own proprietary bytecode format when generating the firmware image. Or for example, IBM Java running on IBM i mainframe, where Java bytecodes used to be translated into the TIMI bytecodes, just like any other IBM i application.
- Zigurd 9y agoThe Dalvik and ART runtimes differ in that the do not run Java bytecodes. Every commercial embedded jvm, open source jvm, and me jvm I have seen all run Java bytecodes and you can use any toolchain that makes .jar files with these vms. Unless the translation you mention can happen at runtime, it isn't a jvm.
- pjmlp 9y agoIt happens at deployment time, as mentioned. Firmware does not change during runtime.