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.


Virtual Machine Garbage Collection Android Application Garbage Collector Code Instruction 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Boehm, H.: Bounding space usage of conservative garbage collectors. SIGPLAN Notices 37(1), 93–100 (2002)CrossRefGoogle Scholar
  2. 2.
    Dahm, M.: Byte code engineering. Java Informations Tage, 267–277 (1999)Google Scholar
  3. 3.
    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)CrossRefGoogle Scholar
  4. 4.
    Dixon, R., McKee, T., Vaughan, M., Schweizer, P.: A fast method dispatcher for compiled languages with multiple inheritance. SIGPLAN Notices 24, 211–214 (1989)CrossRefGoogle Scholar
  5. 5.
    Google, Inc. The Dalvik virtual machine,
  6. 6.
    JDOM. Java DOM-API (2004),
  7. 7.
    Kay, M.: Saxon: The XSLT and XQuery Processor,
  8. 8.
    Lindholm, T., Yellin, F.: The Java Virtual Machine Specification, 2nd edn. Addison-Wesley Pub. Co. (April 1999)Google Scholar
  9. 9.
    Puder, A.: A Cross-Language Framework for Developing AJAX Applications. In: PPPJ. International Proceedings Series. ACM, Lisboa (2007)Google Scholar
  10. 10.
    Puder, A.: Cross-Compiling Android Applications to the iPhone. In: PPPJ. International Proceedings Series. ACM, Vienna (2010)Google Scholar
  11. 11.
    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)CrossRefGoogle Scholar
  12. 12.
    W3C. XSL Transformations (1999),

Copyright information

© ICST Institute for Computer Science, Social Informatics and Telecommunications Engineering 2012

Authors and Affiliations

  • Arno Puder
    • 1
  1. 1.Computer Science DepartmentSan Francisco State UniversitySan FranciscoUSA

Personalised recommendations