When we started Gluon nearly a decade ago, one of our key goals was to make Java a first-class citizen on mobile. We built a toolchain that allowed developers to run Java and JavaFX applications on iOS and Android devices. That solution still exists today, and developers can continue to use it.
However, over time it has become increasingly hard to maintain. Every new release of iOS, Android, the AOT compiler, the JVM components or the JDK required patches and adjustments. We realized this approach doesn’t scale – especially if we want mobile Java to be a sustainable, long-term option for the wider community.
That’s why we are now taking a different path, one that focuses on maintainability and openness. With the work being done in the OpenJDK Mobile project, it’s possible to build OpenJDK directly for mobile targets. That’s a fantastic step forward. But a working JDK build is only part of the story: what developers really need is a reliable, repeatable process that takes them from an OpenJDK build all the way to running real applications on mobile devices.
To support this, we created a new GitHub-based community site: openjdk-mobile.github.io. Here we document the missing steps, share scripts and GitHub Actions that automate much of the work, and publish nightly builds that help us detect regressions early. Our focus is on sustainability: we don’t want to patch one JDK version for one iOS release. We want the OpenJDK head to continuously work on mobile.
Currently, we already have a working pipeline that runs a HelloWorld application on iOS. From here, the road ahead includes:
- Adding support for the iOS Simulator and Android
- Improving performance and exploring Leyden-based optimizations
- Bringing back JavaFX applications at the same quality level as desktop
- Exposing Java libraries as native mobile libraries
This is not a small effort, and we at Gluon can’t do it alone. That’s why we are reaching out to the community. The openjdk-mobile organization on GitHub is open to contributions from anyone interested in helping Java thrive on mobile.
We believe that no miracle is needed – Java was designed to be portable, and it should run on mobile as a first-class citizen. It’s just a matter of making it happen, together.