Android’s Dalvik Virtual Machine
I recently wrote a paper on Android’s Dalvik virtual machine. I’m relatively new to the mobile development space and I was intrigued by some the design decisions that were made. Why couldn’t Android run on the Java platform as opposed to being “Java source code that compiles to the Dalvik executable format.” The JVM as a platform has become something much bigger than Java the language. So why has Google been investing enormously in technologies based on Java the language while building alternative deployment platforms to the JVM (GWT to JavaScript, Google App Engine, and now Dalvik)?Sun had invested enormous amounts of money and energy in the JVM (hopefully Oracle will continue and I can’t see why they wouldn’t especially since they own two of the main JVM implementations), so why start from scratch. Since my knowledge of mobile architectures was, and really still is, somewhat limited, I thought digging into the Dalvik architecture would help shed some light on this question. There is a huge amount information available on the JVM, but there is very little available on the Dalvik VM.  That is to be expected since it is a relatively new platform under rapid development. Given that, I thought I would post the paper as a source for others looking for more information on the subject. You can find it here. Continue reading