Android port status

Johan Vos johan at lodgon.com
Fri Dec 20 09:56:16 PST 2013


Hi,

As you might know, 2 months ago I started a community effort for "porting"
JavaFX to Android. Today, we released build 3 of the JavaFX Android
runtime, which can be downloaded at
https://bitbucket.org/javafxports/android/downloads/dalvik-sdk-b3.zip with
instructions on how to build applications at
https://bitbucket.org/javafxports/android/wiki/Building%20and%20deploying%20JavaFX%20Applications

Building the runtime itself is explained at
https://bitbucket.org/javafxports/android/wiki/Building%20the%20JavaFX%20Android%20Runtime

At this moment, most of the Ensemble suite runs on Android (positive
reports starting with Android 3.x).

The downloadable runtime is created using the bitbucket project at
https://bitbucket.org/javafxports/android-graphics-rt which is a fork of
the openjfx-graphics-rt mirror on bitbucket. We merge often, so all changes
made in openjfx-graphics should be in the Android runtime as well.

There are a number of issues left:
* touch map issues causing applications to crash if "touched too much". I
created a JIRA ticket for this and will create another one (related, but
not same cause) later.
* Java 7 only. Currently, applications cannot make use of Java 8 features.
Dalvik has no invokedynamic, so we can't do lambda's.
* we just started, so there will be plenty of other bugs.

We are also spending efforts in documentation and community interaction.
The google group javafxandroid has a pretty active mailinglist. Build 2 of
the runtime has been downloaded 291 times in 2 weeks, and build 3 has been
downloaded 60 times since it was released a couple of hours ago. So there
is definitely community interest and involvement.
Clearly, there is involvement from Oracle as well. Most of the effort so
far has been done by Tomas Brandalik and the Prague team. I was positively
surprised to see the amount of native code that was already available for
Android.

After a few discussions, it has been agreed that we should try to
synchronize as much as possible with the OpenJFX repositories, without
jeopardizing the stability and performance of the main ports, and without
running into legal trouble.

I will run a diff on the current code versus the OpenJFX code, and I will
try to create issues with patches for sending the changes back to OpenJFX.
Not all changes can go back to OpenJFX. We had to add a number of classes
that are missing on Dalvik and that are used by OpenJFX, and clearly we
can't commit those in OpenJFX.

We had to make a number of changes to JavaFX files as well, in order to
make them compile with JDK 1.7. Most of these were about removing Function
and adding implementations for the default interface methods on
ObservableList.
I have no clear opinion on how these changed files could somehow be used
from within OpenJFX, but I'm very open to suggestions.

Finally, keep in mind that this is a community effort. Nobody is paying for
this, and it is done in our spare time. I'm doing my best to move forward
as soon as I can, but I have other things to work on as well of course.
However, the collaboration between the Java community and Oracle (mainly
Tomas) has been great so far. It is in the interest of anyone working on or
with Java to show the world that JavaFX runs on Android devices.

- Johan


More information about the openjfx-dev mailing list