|
|
|
|
|
by pjmlp
4620 days ago
|
|
Sorry, but your comment reads out as Google PR about Dalvik. Even with your published books I am not buying it. The only thing you are right about is that bytecode is more space efficient than native code. Everything else is easily done in native code as well, it is just a matter of the OS providing support for it, there is nothing special about having to be a VM. |
|
Contrast this with the history of the CLR in Windows mobile devices. It was not taken seriously as an application platform. None of the built-in apps used it, never mind it being the basis for system programming. Android is a Java OS in a more meaningful way than running a CLR for some subclass of apps, which certainly doesn't make Windows a "C# OS."
Try writing a non-game Android application with every Activity component as a NativeActivity subclass. It will be painful to code, more painful to debug, and it will disappoint in performance.
I'm not just shilling for Google's architectural decisions. Prior to Android being released, I was working on wireless device OS that used Linux and a Java VM for userland software. I am very familiar with the performance increment obtainable using a JIT in a mobile device, and, as an alternative, in using a precompiled Java runtime. As in Android, the heavy-duty pixel-pushing in that OS was done in a graphics stack implemented in native code. Much of Android's widget set is also in native code. Unless you choose to do heavy computation on an Android device, you are not going to get a large advantage from a JIT, especially if your bytecode interpreter actually does perform 2X better than Java.
As for heavy computation on Android devices that's what Renderscript is for.