411 REFERENCE · Wikibooks
J2ME Programming/SymbianOS and J2ME
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
__TOC__
Introduction
This not a complete history of SymbianOS but in fact a summary of SymbianOS so that we as J2ME developers can determine what optional APIs we have access to by Operating System version and devices series version within the SymbianOS ecological infrastructure.
There are two main device platforms that are deployed on top of SymbianOS. Nokia created Series60 and licensed it to others like Samsung. UIQ(a Pen Based UI for Symbian) is a joint effort between Sony-Ericsson, Motorola and Symbian Ltd.
Base Set of MIDP, SymbianOS
A brief footnote before we begin on the J2ME Platform. Before the J2ME Platform SymbianOS came with two other Java platforms, embedded java on SymbianOS 5 and the personal java and javaphone combination on SymbianOS 6. Thus, PersonalJava and JavaPhone before the Personal Profile will be mentioned here to be accurate of what OS versions have that combination. Note: Although the underlying OS does not limit Heap size, persistent storage, and etc on the later versions of Symbian the JSRs do limit the jar, jad, and persistent storage sizes in the form of JSR 185(JTWI).
SymbianOS 6.x
In 2002 MIDP 1.0 was back ported to SymbianOS 6 versions. The SymbianOS versions that MIDP 1.0 was back ported to are SymbianOS 6.0 and SymbianOS 6.1(Standard Java Symbian On Java http://www.symbian.com/technology/standard-java.html)
Thus, we only have basic MIDP 1.0 on SymbianOS 6.0 and SymbianOS 6.1 on devices 2002 and onward.
MIDP
MIDP 1.0 except pausedApp is never called contrary to the MIDP 1.0 specification.
CLDC 1.0
Sun's KVM
Personal Java(pre Personal Profile)
Modified Personal Java 3.0.x(PesonalJava Application Environment 1.1.1a)
JDVMI for debug support over TCP/IP connection
JavaPhone 1.0
JavaPhone 1.0 APIs
Personal Java optional interfaces for serial communications, and secure socket communications (HTTPS is supported, javax.net.ssl is not implemented).
Java Telephony API(JTAPI)
Java Telephony Mobile
SymbianOS 7.0
Has the basic MIDP 1.0 implementation(SymbOS7.x Symbian OS Version 7.0 functional description http://www.symbian.com/technology/symbos-v7x-det.html)
MIDP
MIDP 1.0 except pausedApp is never called contrary to the MIDP 1.0 specification.
CLDC 1.0
Heap size, code size, and persistent storage size are unconstrained
Over-The-Air provisioning implemented
GCF including sockets implemented
KVM VM
Personal Java(pre Personal Profile)
Modified Personal Java 3.0.x(PesonalJava Application Environment 1.1.1a)
JDVMI for debug support over TCP/IP connection
JavaPhone 1.0
JavaPhone 1.0 APIs
Personal Java optional interfaces for serial communications, and secure socket communications (HTTPS is supported, javax.net.ssl is not implemented).
Java Telephony API(JTAPI)
Java Telephony Mobile
SymbianOS 7.0s
In this version of SymbianOS 7, MIDP 2.0 was introduced(Symbos-v7s Symbian OS Version 7.0s
functional description http://www.symbian.com/technology/symbos-v7s-det.html) This MIDP 2.0 implementation includes:
MIDP
Over-The-Air provisioning MIDP 2.0 implementation
Heap size, code size, and persistent storage size unconstrained
GCF implementation includes sockets, server sockets, datagram sockets, secure sockets, HTTPS and HTTP
WMA is implemented
Bluetooth is implemented excluding Push and the OBEX profile
CLDC1.0 implementation is supported
Sun's CLDC HI VM 1.0
There are two configuration sfor this SymbianOS 7.0s version, smartphones and communicators. The communicator version does include both MIDP 2.0 described above and this PersonalJava configuration:
Personal Java(pre Personal Profile)
Modified Personal Java 3.0.x(PesonalJava Application Environment 1.1.1a)
JDVMI for debug support over TCP/IP connection
JavaPhone 1.0
JavaPhone 1.0 APIs
Personal Java optional interfaces for serial communications, and secure socket communications (HTTPS is supported, javax.net.ssl is not implemented).
Java Telephony API(JTAPI)
Java Telephony Mobile
SymbianOS 8.0
This is the first MIDP 2.0 implementation on SymbianOS with full JTWI compliance(Symbos-v8x Symbian OS Version 8.0 functional description http://www.symbian.com/technology/symbos-v8x-det.html)
OTA MIDP 2.0 implementation
Full JTWI implementation of the new securtiy model allowing signed MIDlets
Heap size, code size, and persistent storage unconstrained
Full GCF support
WMA implemented
Bluetooth excluding OBEX profile implemented
CLDC1.1 implementation
MultiMedia JSR 135
3D Graphics JSR 184
File/PIM GCF JSR 75
Sun's CLDC HI 1.1 Vm with subset of JNI
SymbianOS 8.1
Implements MIDP 2.0 compliant with JTWI(Symbos-v8.1 Symbian OS Version 8.1 functional description http://www.symbian.com/technology/symbos-v81-det.html)
OTA MIDP 2.0 implementation
MIDP 2.0
CLDC 1.1
Heap size, code size, and persistent storage not constrained
GCF implementation including all socket implementations
PIM/FIle GCF JSR 75
MMedia JSR 135
3D Graphics JSR 184
Bluetooth implemented excluding OBEX profile
WMA
Sun's CLDC HI VM 1.0 with JNI subset
SymbianOS 9.1
Implements MIDP 2.0 and JTWI(Symbos-v91 Symbian OS Version 9.1 functional description http://www.symbian.com/technology/symbos-v91-det.html)
MIDP 2.0
CLDC 1.1
WMA
MMedia JSR 135
3D graphics JSR1 84
Bluetooth implemented excluding OBEX profile
JTWI security model
Heap size, code size, and persistent storage size are unconstrained
Sun's CLDC HI VM 1.0 with JNI subset
Other SymbianOS Flavors
Other Nokia Series
Series80
Device Platform 2.0
MIDP 2.0/CLDC 1.0 from underlying SymbianOS 7.0s, specifically the communicator SymbianOS 7.0s configuration
CDC and Personal Profile implemented with IBM's J9 VM
Series90
Device Platform 2.0
MIDP2.0 CLDC1.1 from underlying SymbianOS 8.0
Legacy closed source Nokia UI APi in packages com.nokia.mid.ui and com.nokia.mid.sound
Series60
Device Platform 1.0
Based on SymbianOS 6.1 with MIDP 1.0 and CLDC 1.0 and legacy Nokia UI APIs in packages com.nokia.mid.ui and com.nokia.mid.sound.
In Nokia UI API backlight is not supported
Device Platform 2.0
Feature Pack 1.0cs
Based on SymbianOS 7.0s providing MIDP 2.0 and CLDC 1.0
Supports MMAPI JSR 135
Supports the other JSRs from SymbianOS 7.0s
Feature Pack 2.0
Based on SymbianOS 8.0, actual kernel version is SymbianOS 8.0b with MIDP 2.0 and CLDC 1.1
All JSRs with SymbianOS 8.0 are supported
Feature Pack 3.0
Based on SymbianOS 8.1 providing MIDP 2.0 and CLDC 1.1
Supports all JSRs from SymbianOS 8.1
UIQ
UIQ 2.0
Based on SymbianOS 7.0 and provides MIDP 1.0 and CLDC 1.0
Supports the JSRs from SymbianOS 7.0
UIQ 2.1
Based on SymbianOS 7.0s and provides MIDP 2.0 and CLDC 1.0
Supports the JSRs from SymbianOS 7.0s
Conclusion
By using the information you can determine not only what versions of MIDP and CLDC are on the device but also what optional apis denoted by their JSR are accessible on the SymbianOS powered devices that you may be targeting your application development.
See Also
Wikibooks
J2ME Programming
Java Programming
References
Standard Java Symbian On Java http://www.symbian.com/technology/standard-java.html
SymbOS7.x Symbian OS Version 7.0 functional description http://www.symbian.com/technology/symbos-v7x-det.html
Symbos-v7s Symbian OS Version 7.0s functional description http://www.symbian.com/technology/symbos-v7s-det.html
Symbos-v8x Symbian OS Version 8.0 functional description http://www.symbian.com/technology/symbos-v8x-det.html
Symbos-v8.1 Symbian OS Version 8.1 functional description http://www.symbian.com/technology/symbos-v81-det.html
Symbos-v91 Symbian OS Version 9.1 functional description http://www.symbian.com/technology/symbos-v91-det.html
Trademark Notices
J2ME, Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All other Trademarks are property of their respective owners.