I'm currently working as a Product Manager for Symbian Devices Java Runtime. I've had different roles in my past career doing Java UI team leading and architecture work for Java. I've also participated Java API design both in Eclipse (eSWT) and JCP (MIDP 1 & 2, PDAP), as well as design of the Nokia Java APIs like Nokia UI API.
Aleksi | 02 November, 2009 18:37
I participated Symbian Exchange in London last week. We had a small Birds of Feather session there about Runtimes on Symbian. For that I prepared a small roadmap presentation giving out information of what new features our future Java Runtime releases will contain for developers. It's a roadmap and work in progress so any changes should be expected.
At the BOF I also discussed of our contribution of our runtime code to Symbian Foundation. Basically the idea is that for Symbian^3 we plan to get all of our libraries code (except Web Services as it's not Nokia owned code). Ken Walker from IBM talked of what they will provide on VM and core libraries level. They will provide J9 VM+CLDC/CDC/FP libraries in the binary release under an RND license. This means that developers will have a fully functional runtime from Symbian Foundation for java me applications as it appears in current S60 devices. Nokia plans to utlise EPL license for our contribution. Since many of the core libraries are already available in Apache Harmony there's pretty good open source mobile java library set then available with business friendly OS licenses. We are planning that the first contributed release would be made out of our JRT 2.0/2.1 release. A beta release of that for S60 5.0 devices is already available via beta labs.
It should be noted that the library set and runtime, java app installer of Java Runtime are all implemented also in cross-platform manner. So most of the implementation modules are not tied to Symbian specific APIs or programming constructs. We've used as much as possible Java and then basic C/C++ APIs and refrained from using Symbian specific constructs where not necessary. When they have been necessary they are isolated clearly from the rest of the code. Our team ensures that the code works perfect on Symbian devices, so we integrate it closely to the platform services but at the same time it would be possible to take the code and integrate it to other platforms by others. If this would happen it would make less fragmentation as same implementation would be used in other devices too.
In JRT 2.0 the UI is still Symbian/Avkon based but we have already started Qt migration for UI too. The Qt based UI implementation is still on going (and it the main part of our JRT 3.0 release). That will then make LCDUI and eSWT tookits to be also cross-platform and easily portable to other platforms too. In JRT 2/3 the MMAPI is still based on MMF (Symbian multimedia FW), but there's also standard cross-platform Khronos API coming called OpenMAX that may allow us to make cross-platform MMAPI in future. Well, Qt is adding open source Phonon multimedia API too which currently lacks features for MMAPI but perhaps it will be better in future too, so let's see.
We also have smaller enhancements in process for example, we have very good VM technology in S60 devices from IBM which allos full JNI access. However, due to security issues we haven't opened JNI access to public (available for partners currently). We are working on a mechanism to allow native access with JNI for java apps. The idea is that apps would packaged as SIS files and thus behave like native apps. We would provide native launcher stub for which native capabilities could be defined for the java/native app hybrid. The idea is that generally one could use Java but then only access native in those parts Java Runtime lacks some API set. If you are interested in this let us know.
Another small thing we are working is a way to launch native applications from Java, and allowing native applications to launch Java applications with launch parameters passed to Java. The parameters would be passed as Java system properties and platform request would be used to launch native apps. There's already now localapp: URI scheme in our Java Runtime so this would enhance it.
Commentsopinali | 03/11/2009, 01:02
I don't mean to start a debate about mobile platforms and APIs, but just state a simple fact: JavaFX is the clear way forward for the JavaME platform; this is Sun's plan and very likely also Oracle's. If you don't embark the JavaFX bandwagon, you are basically relegating JavaME to a legacy status (wrt competition from iPhone, Flash 10.1, etc.). Small improvements from MIDP 3.0, LWUIT etc., or even IBM's eSWT, are not enough to keep JavaME relevant in higher-end devices and you know it. And no I don't want to use Symbian-specific native APIs, or any native API, or any vendor-specific API at all (I'd rather move to Android).
ovjo12 | 03/11/2009, 09:55
Yesterday I found this interesting news about Aplix plan to have JavaME on top of Android ( http://www.aplixcorp.com/en/ and here is the press release: http://www.aplixcorp.com/en/release/2009/pr07012009om.html), they have also added Aplix' MIDP 3.0 Platform, http://www.aplixcorp.com/en/products/midp30/ .
Last post thought that MIDP 3.0 was very small improvements from MIDP 2.0, but I think Android with JavaME/MIDP3.0 look like a very good Java platform for the future!
I really don't know so much about JavaFX Mobile or MIDP 3.0, but I would like to found the same JavaME-platform on different vendors phones, it makes my life much easier with less fragmentations.
Some years ago I was very excited about Nokia's plans for supporting eRCP, but nothing happen with that, any plans for eRCP?. With MIDP 3.0 you at least get JavaME/CDC something more closer to JavaSE.
Now Sun talk a lot about JavaFX Mobile, but phone manufacture less, this make my life hard.
I don't know if is worth time also try to learn JavaFX Mobile?
It look like different mobile player don't work together nowadays?
ovjo12 | 03/11/2009, 10:11
This is also something I would like to see in the future, support for Java on Nokia's Maemo platform:
http://talk.maemo.org/showthread.php?t=31678
bcaroll | 03/11/2009, 10:20
Since QT is the GUI for Maemo it think it is very interesting that there is a possible plan for QT apis in the JRT.
adammathewjones | 19/11/2009, 08:53
That's really interesting news. I think that most of the implementation modules are not tied to Symbian specific APIs or programming constructs.
boat fenders
Keep on doing this very good work
ovjo12 | 03/11/2009, 00:18
Keep on doing this very good work!
I really like when companies like Nokia are able to publish a JavaME roadmap. It makes mobile developers life much easier. One question, what about MIDP 3.0, any plans for that?
What do you think will we get MIDP 3.0 in the future?