P800/P802

White Paper, January 2003

Java

Java is a widely used and extensible programming platform, which makes the development of personalized applications and content much easier. Originally developed by Sun in 1991, Java is a programming language used to develop applications – utility programs, games, plug-ins etc. – for different hardware and software platforms. Users of Java-enabled devices can install new applications and games to make their devices more personal and adapt them to specific needs.

Sun marketed Java as a “write once, run anywhere” concept, which at the time was a good description of Java’s strength. Simply put, Sun based the Java concept on two parts, the Java application and the Java interpreter, known as the Java Virtual Machine (JVM). A Java application cannot run by itself, it needs an interpreter that translates the code and runs the program. This was really the secret behind Java’s ability to work on various platforms. A developer could write an application without having to think about different computers and operating systems as long as hardware and software manufacturers included Java Virtual Machines in their products.

Even if “write once, run anywhere” still applies to some degree, the evolution of handheld computers and telecommunications forced Sun to adapt Java to the requirements of mobile devices with small displays and slow connections. This has led, among other things, to the development of PersonalJava and subsequently to Java 2 Micro Edition, (J2ME).

PersonalJavaTM

PersonalJava, also known as pJava, is an edition of Java appropriate for mobile devices such as PDAs. It is suited to more powerful mobile phones and PDAs, such as the P800, and has a richer development environment and can interact more extensively with the P800 functionality compared to J2ME MIDP/CLDC.

PersonalJava was transferred into the J2ME platform in 1999, becoming the J2ME CDC/Personal Profile. However, CDC/Personal Profile has not really taken off yet and, pending its breakthrough, PersonalJava will still be a powerful option for years to come.

The P800 includes Symbian’s implementation of PersonalJava according to the Sun Microsystems ‘PersonalJava Application Environment Specification (PJAE)’ version 1.1.1, January 7, 1999. That version corresponds to a Sun JDK 1.1.7 implementation.

PersonalJava applications can make use of the following services:

TCP/IP network communication

Graphical User interface library – AWT widgets are mapped on to Symbian OS controls where applicable)

JavaBeans support

Virtual Keyboard and Jog Dial (up, down, select) input

File System access

Time/Date sensing

JNI – Java Native Interface

PersonalJava applications are typically transferred to the P800 from a connected PC.

PersonalJava applications are used in FO mode. If the flip is closed, the application will receive an event and may choose to close or continue running in the background. There is no UI available in FC mode.

71