Running Android Applications without a Virtual Machine
Android has gained significant popularity in the smartphone market since its introduction in 2007. While Android applications are written in Java, Android uses its own virtual machine called Dalvik. Other smartphone platforms, most notably Apple’s iOS, do not permit the installation of any kind of virtual machine. App developers who want to publish their applications for different platforms are required to re-implement the application using the respective native SDK. In this paper we describe a cross-compilation approach, whereby Android applications are cross-compiled to portable C code. With this approach it is not necessary to have a Dalvik virtual machine deployed on the target platform. We describe different aspects of our cross-compiler, from byte code level cross-compilation, memory management, to API mapping. A prototype of our cross-compiler called XMLVM is available under an Open Source license.
KeywordsVirtual Machine Garbage Collection Android Application Garbage Collector Code Instruction
Unable to display preview. Download preview PDF.
- 2.Dahm, M.: Byte code engineering. Java Informations Tage, 267–277 (1999)Google Scholar
- 5.Google, Inc. The Dalvik virtual machine, http://en.wikipedia.org/wiki/Dalvik_virtual_machine
- 6.JDOM. Java DOM-API (2004), http://www.jdom.org/
- 7.Kay, M.: Saxon: The XSLT and XQuery Processor, http://saxon.sourceforge.net/
- 8.Lindholm, T., Yellin, F.: The Java Virtual Machine Specification, 2nd edn. Addison-Wesley Pub. Co. (April 1999)Google Scholar
- 9.Puder, A.: A Cross-Language Framework for Developing AJAX Applications. In: PPPJ. International Proceedings Series. ACM, Lisboa (2007)Google Scholar
- 10.Puder, A.: Cross-Compiling Android Applications to the iPhone. In: PPPJ. International Proceedings Series. ACM, Vienna (2010)Google Scholar
- 12.W3C. XSL Transformations (1999), http://www.w3.org/TR/xslt