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 – Robert Harvey Jun 8 '16 at 23:03
  • 3
    @kamilk: Xamarin will run on Android already. – Robert Harvey Jun 8 '16 at 23:05
  • 1
    @RobertHarvey ..and iOS and Windows. – kamilk Jun 8 '16 at 23:07
  • 4
    @kamilk: Yep. That's called "cross-platform," and it already works. No need for Java. – Robert Harvey Jun 8 '16 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 Jun 8 '16 at 23:27

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.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.