Earlier this month Nokia announced that it was contributing its Mobile Runtime for Java Applications (JRT) to the Symbian Foundation that it created following its acquisition of Symbian Software Limited in 2008. In all the JRT comprises around one million lines of Java and C++ source code for the runtime, an application installer and API libraries, along with test cases and documentation. It is licensed under the Eclipse Public License (EPL), and is available as part of the latest Symbian^3 Product Development Kit (account needed).
The Symbian Platform itself was re-licensed under EPL in February though some tools code remains under the Symbian Foundation License at the time of writing. The Foundation has publicly stated goal to make all of its code available under EPL by mid-2010.
In a blog post Jyrki Aarnos, package owner for JRT, and Aleksi Uotila, JRT product manager at Nokia said
This means that developers can write Java applications for Symbian^3 devices, like the recently announced Nokia N8. More importantly, the JRT is now open source so the community can modify and add to the JRT implementation under the terms of the Symbian Foundation’s EPL license.
The JRT is compatible with shipping Symbian devices and fully supports the Symbian^3 feature set with support for the following JSRs:
- JSR 118 MIDP 2.1
- JSR 139 Connected, Limited Device Configuration (CLDC) 1.1
- JSR 248 Mobile Service Architecture Subset for CLDC 1.0
- JSR135 Mobile Media API 1.2
- JSR 177 Security and Trust Services API for J2ME 1.0 (SATSA-APDU package)
- JSR 177 Security and Trust Services API for J2ME 1.0 (SATSA-CRYPTO package)
- JSR 177 Security and Trust Services API for J2ME 1.0 (SATSA-PKI package)
- JSR 179 Location API for J2ME 1.0.1
- JSR 184 Mobile 3D Graphics API for J2ME 1.1
- JSR205 Wireless Messaging API 2.0
- JSR 226 Scalable 2D Vector Graphics API for J2ME 1.1
- JSR 234 Advanced Multimedia Supplements 1.1 (audio3d)
- JSR 234 Advanced Multimedia Supplements 1.1 (music)
- JSR 256 Mobile Sensor API 1.2
- JSR 75 FileConnection and PIM API 1.0
- JSR 82 Java APIs for Bluetooth 1.1
On the graphics side Symbian^3 gains support for harware accelerated graphics and includes two non-standard APIs - Nokia's own UI API 1.4 and an implementation of the Eclipsse Standard Widget Toolkit (eSWT) UI API 1.0.3 from Eclipse's Rich Client Platform (eRCP) project.
The Virtual Machine has been provided to the Symbian Foundation by IBM under a separate license allowing it to be used for research and development purposes and for Java application development.
A development roadmap has been created for JRT where you can see the features that are being worked on, and opportunities for contribution.
As well as Java, developers writing for Symbian^3 can write native applications using C++ with built in support for the Qt cross-platform application and UI framework, and web technologies including built in PhoneGap Support.
Whilst Media attention currently tends to focus on the newer Android and iOS platforms, Symbian remains the market leader in smart-phone shipments with 47.2% of devices shipped in 2009 running the OS. RIM (BlackBerry) had a 20.8% share, Apple 15.1% (through the iPhone OS/iOS), Microsoft 8.8% (through Windows CE and Windows Mobile) and Google 4.7% (through Android).