title: why android is built on a VM (Dalvik)
body: <p>I am curious to know what made google choose to develop android's framework on java VM.</p>
  
  <p>In the process of writing code for android for nearly 6 months now, I observed that running code on a VM in a resource limited platform is really slow. There is a lot of overhead involved. I know that java is portable etc etc, is it not possible at all to use native languages and get both performance and features offered by a VM ? For performance oriented applications one still ends up writing native code and wrap it with JNI,</p>
  
  <p>So why did google choose this particular stack : </p>
  
  <ol>
  <li>Arm based core (understandable, ARM is the best for mobile devices)</li>
  <li>Linux (Open source)</li>
  <li>Java VM (My question)</li>
  </ol>
  
  <p>EDIT : I know java - JVM runs on par with C++ applications on my server, but not on android.
  With respect to android its not the case - As a matter of my experience, a C++ code wrapped with JNI runs far faster than java code (note I have even checked with exact same code from a static block in java) I will agree with your answer on any other platform.</p>