Software Overview

Sun Java™ Wireless Client Software 2.0

May 2007

 

Sun Java™ Wireless Client Software is a MIDP stack. It is a flexible, high quality implementation that you can port to your own device.

Architecture

Sun Java Wireless Client Software consists of four fundamental layers, as shown in the following diagram.

The cream-colored portion shows the extent of Sun Java Wireless Client Software. Applications (MIDlets) run on top of Sun Java Wireless Client Software, and Sun Java Wireless Client Software knows how to make the device do things.

The JavaCall™ API distills the platform requirements of the entire platform to a single set of functions that must be ported. All porting is done at the same layer, and the functions are consistently named and well documented.

Portable Common Services Library (PCSL) is a layer of low-layer services that are used by CLDC, MIDP, and some of the optional APIs. This is already bound to the JavaCall API so you will not have to port it.

Connected, Limited Device Configuration (CLDC) is an implementation of JSR 139. It includes a virtual machine and core Java Platform, Micro Edition (Java ME platform) application APIs. This piece is also bound to the JavaCall API and does not need porting.

Mobile Information Device Profile (MIDP) is an implementation of JSR 118. Along with optional APIs, it provides a wide range of application services. Again, this layer is already bound to CLDC, PCSL, and the JavaCall API, so no porting is necessary.

Information on porting Sun Java Wireless Client Software is in the Porting Guide. The comprehensive JavaCall API reference contains specific information on every function and every argument.

JSR 239 Java Binding for the OpenGL® ES API is an exception. It has such close ties to low-level APIs that defining JavaCall API functions for it is redundant. For JSR 239, direct binding to the OS layer is more appropriate.

It is possible to port Sun Java Wireless Client Software to your device without the JavaCall API, although it is likely to be more difficult. In this case, you port PCSL, CLDC, and the native portions of MIDP and optional APIs directly to your device's operating system.

Because the JavaCall API is a recent innovation, the Porting Guide has information on porting PCSL, CLDC, and MIDP without using the JavaCall API.

Getting Started

Here is a road map for getting started with a port to your own device. Your actual steps are likely to vary, but this list provides a general idea of where you're going and how to get there.

  1. Begin by building one of the reference implementations of Sun Java Wireless Client Software. This acquaints you with the build system, gets the fundamental parts of your tool chain set up, and allows you to begin exploring the structure of the source code. The Build Guide is designed to get you up and running with a reference port in a short amount of time.
  2. Next, get the tools you need to build for your own device. Most often the key to success is a cross-compiler for the processor and operating system that runs your device.
  3. Copy stubs and create the necessary infrastructure for building for your device. This verifies that you have a working set of tools and can generate executable files for your device.
  4. Fill in the stubbed functions. This is the long, slow part.