How to develop Java ME applications on Symbian
This article provides information on how to set up the development environment and test and debug Java ME applications for the Symbian platform. It also provides guidance on finding additional resources for the deployment of MIDlets on Symbian.
Java on Symbian
The core Java ME libraries, JSR 139, the Connected Limited Device Configuration (CLDC) 1.1 and JSR 118, the Mobile Information Device Profile (MIDP) 2.0, have been supported by Symbian devices since S60 2nd Edition Feature Pack 2.
In order to run or debug your code on a Symbian device the emulated Symbian Runtime Environment, a Symbian SDK is required. The table below shows a list of all CLDC 1.1-enabled Symbian platforms and their corresponding support for MIDP:
|Symbian Platform||CLDC version||MIDP version||SDK|
|Nokia Belle||1.1||2.1||Symbian Belle SDK 1.0|
|Symbian Anna||1.1||2.1||Symbian^3 SDK 1.0|
|Symbian^3||1.1||2.1||Symbian^3 SDK 1.0|
|S60 5th Edition||1.1||2.1||Nokia N97 SDK 1.0/S60 5th Edition SDK 1.0.1|
The minimum system requirements vary per Symbian SDK. In order to find more information, on whether a Symbian SDK can be installed on your computer, read the release notes at the top of the unzipped installation directory. As an example, the Symbian^3 SDK 1.0 has the following minimum requirements:
- 1 GHz Pentium PC with 1 GB of memory
- At least 3 GB free disk space
- Local administrator rights
- Java™ Runtime v1.5.0 or higher
- Microsoft™ Windows XP Professional SP2
- Active Perl 5.6.1 build 635 or higher
The Symbian SDKs, unlike the Series 40 and Nokia Asha SDK, do not come bundled with a development environment. They can be however integrated with Eclipse (either standalone or with Nokia’s IDE for Java ME) or NetBeans.
Symbian development with Nokia’s IDE for Java ME
If you have already developed or you are considering developing Java ME applications with Nokia’s IDE for Java ME on Series 40 or Asha software platforms, you can integrate the Symbian SDK of your choice to the IDE and use it as your single development environment for all platforms. The Nokia IDE for Java ME comes with a Device SDK Selector tool that allows online installation of Series 40 and Nokia Asha SDKs only. In order to add a Symbian SDK to the IDE, you need to use the manual installation as follows:
- Download and install the Symbian SDK of your choice, by clicking on the corresponding link provided in the table above.
- Download and install Nokia IDE for Java ME (Eclipse).
- Select Window > Preferences > Java ME > Device Management and click Manual Install
- In the Manual Device Installation window, click Browse and select the top directory on your local drive where you have installed the Symbian SDK. A list of detected Symbian devices that are ready to be added to the IDE will be shown.
- Click Finish and select OK to dismiss the Preferences window.
- You can now follow the guide for creating your first MIDlet in Nokia IDE for Java ME found here.
While the Series 40 and Nokia Asha platforms come with a single device per execution environment, the Symbian SDKs support two. In order to choose between executing your MIDlet on your computer (Emulator) or deploying it on your Symbian phone (Symbian Device), you need to double click on the name of the Symbian SDK, as it appears in the Runtime section of the Application Descriptor:
In the Edit Configuration window select the appropriate Device from the drop down list as shown below:
How to read the offline version of Java Developer’s Library
The offline Java Developer’s Library for Symbian is a good reference point for Symbian Development. It describes the Java ME development environment for Java Runtime 2.3 for Symbian, which is the latest Symbian platform supported by Nokia Belle devices. In addition, the Library can be used for the development of MIDlets targeting previous Symbian releases. The implementation notes section of the Library, describes the changes between releases on different Symbian platforms for each supported API. You need to always consult the implementation notes, in order to see if a certain feature as described in the Developer’s Guide or an API method you plan to use is supported on your target Symbian platform.
The Java Developer’s Library contains information that is valid for both the Series 40 and Symbian platforms. When the behavior of a component or an API is different between Series 40 and Symbian, the difference is described in the same article. In order to make the distinction as clear as possible, these articles are divided into paragraphs that start as follows:
- “On Series 40 devices…”, for Series 40 specific
- “On Symbian devices…”, for Symbian specific content
There are exceptions to this rule. The Touch UI section for example, is divided into subsections that describe the Touch interaction separately for Series 40 and Symbian.
Information on integrating a Symbian SDK to a standalone Eclipse version or NetBeans can be found in the Java Developer's Library for Symbian:
- > Getting Started > Setting up the development environment > Configuring Eclipse
- > Getting Started > Setting up the development environment > Configuring NetBeans.
A short guide on how to develop your first Symbian MIDlet in Eclipse and NetBeans is available in the library here:
- > Getting Started > Setting up the development environment > Creating your first MIDlet in Eclipse
- > Getting Started > Setting up the development environment > Creating your first MIDlet in NetBeans
For resources regarding testing your MIDlet on your computer (Symbian Emulator) or deploying it on your Symbian phone, see:
- > Getting Started > Working with MIDlets > Testing MIDlets > Mobile device emulator
- > Getting Started > Working with MIDlets > Testing MIDlets > Diagnostics and tracing > EcmtAgent
Information about debugging on Symbian is available in the library at:
- > Getting Started > Working with MIDlets > Testing MIDlets > Debugging
Nokia Maps API for Java ME can be used with Symbian platforms. If you are already developing with Nokia IDE for Java ME you can find the library and its documentation as a plugin within the SDK, or alternatively you can fetch the latest version from here.