Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Boehm, H.: Bounding space usage of conservative garbage collectors. SIGPLAN NoticesĀ 37(1), 93ā100 (2002)
Dahm, M.: Byte code engineering. Java Informations Tage, 267ā277 (1999)
Davis, B., Beatty, A., Casey, K., Gregg, D., Waldron, J.: The case for virtual register machines. In: IVME 2003: Proceedings of the 2003 Workshop on Interpreters, Virtual Machines and Emulators, pp. 41ā49. ACM, New York (2003)
Dixon, R., McKee, T., Vaughan, M., Schweizer, P.: A fast method dispatcher for compiled languages with multiple inheritance. SIGPLAN NoticesĀ 24, 211ā214 (1989)
Google, Inc. The Dalvik virtual machine, http://en.wikipedia.org/wiki/Dalvik_virtual_machine
JDOM. Java DOM-API (2004), http://www.jdom.org/
Kay, M.: Saxon: The XSLT and XQuery Processor, http://saxon.sourceforge.net/
Lindholm, T., Yellin, F.: The Java Virtual Machine Specification, 2nd edn. Addison-Wesley Pub. Co. (April 1999)
Puder, A.: A Cross-Language Framework for Developing AJAX Applications. In: PPPJ. International Proceedings Series. ACM, Lisboa (2007)
Puder, A.: Cross-Compiling Android Applications to the iPhone. In: PPPJ. International Proceedings Series. ACM, Vienna (2010)
Shi, Y., Casey, K., Ertl, M.A., Gregg, D.: Virtual machine show- down: Stack versus registers. ACM Trans. Archit. Code Optim.Ā 4(4), 1ā36 (2008)
W3C. XSL Transformations (1999), http://www.w3.org/TR/xslt
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
Ā© 2012 ICST Institute for Computer Science, Social Informatics and Telecommunications Engineering
About this paper
Cite this paper
Puder, A. (2012). Running Android Applications without a Virtual Machine. In: Venkatasubramanian, N., Getov, V., Steglich, S. (eds) Mobile Wireless Middleware, Operating Systems, and Applications. MOBILWARE 2011. Lecture Notes of the Institute for Computer Sciences, Social Informatics and Telecommunications Engineering, vol 93. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-30607-5_12
Download citation
DOI: https://doi.org/10.1007/978-3-642-30607-5_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-30606-8
Online ISBN: 978-3-642-30607-5
eBook Packages: Computer ScienceComputer Science (R0)