As a part of my master's thesis, I am carrying a research topic on why there are no cross platform mobile applications.

As applications developed in Java can run on any operating system using the JVM, I was wondering why there is no interpreter like JVM for mobile devices through which one application can run under various mobile operating systems like Android, iOS, Windows, etc.

Any help or resources will be highly appreciated.

  • 9
    There are cross-platform mobile applications. They're written in HTML5, Javascript and CSS3. There are also platforms that allow you to write cross-platform apps natively.. See also Apache Cordova Commented Jun 8, 2016 at 23:03
  • 3
    @kamilk: Xamarin will run on Android already. Commented Jun 8, 2016 at 23:05
  • 1
    @RobertHarvey ..and iOS and Windows.
    – kamilk
    Commented Jun 8, 2016 at 23:07
  • 4
    @kamilk: Yep. That's called "cross-platform," and it already works. No need for Java. Commented Jun 8, 2016 at 23:08
  • 7
    "why there are no cross platform mobile applications" can you define what you think this means? From my experience this is very much not the case today. Perhaps you specifically interested in running the same binary on multiple platforms rather than compiling for multiple targets (if so why do you think that matters)?
    – Jonah
    Commented Jun 8, 2016 at 23:27

1 Answer 1


As the co-founder of Codename One which does pretty much that I can answer that pretty easily.

You can cross compile (which is what we do) but you can't have a single binary that will work everywhere because mobile OS vendors don't allow it.

Apple doesn't allow JIT's and limits interpreters. All mobile devices include app isolation which prevents a global JVM from servicing other applications.

Android can't do a "proper" portable JVM because of licensing and interest conflicts with Sun/Oracle.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.