Home > Developer > Development Method for Java Application

Development Method for Java Application

What is mobile Java

J2ME (Java 2 Platform, Micro Edition) is the Java platform for embedded software development.

But J2ME's Java runtime environment for mobile devices, CLDC ( Connected Limited Device Configuration ), imposes heavy restrictions on CPU and memory.

mobile Java Specifications

The CLDC profile for NTT DoCoMo is DoJa. A number of other carriers such as au, SoftBank and WILLCOM use MIDP ( Mobile Information Device Profile ) for their CLDC profile.

Carrier J2ME / CLDC Profile Service Name
NTT DoCoMoDoJa i-appli
auMIDP EZ-appli (Java) / Open appli ( Java )
SoftBankMIDP S! Appli
WILLCOMMIDP Java appli

* DoJa and MIDP profiles are versioned, and the APIs are different in each version.

mobile Java Development Kits

Mobile Java SDKs for each carrier can be downloaded from the following URLs. ( pages are written in Japanese )

NTT DoCoMo

http://www.nttdocomo.co.jp/service/imode/make/content/iappli/index.html

au

EZ Appli ( Java ): http://www.au.kddi.com/ezfactory/tec/spec/ezplus.html

Open appli ( Java ): http://www.au.kddi.com/ezfactory/tec/spec/openappli.html

SoftBank

http://developers.softbankmobile.co.jp/dp/tool_dl/java/

WILLCOM

J2ME Wireless Toolkit 2.2

Skins for the Emulator

Building mobile Java Applications

Mobile Java applications consist of a JAR file which is compiled and packaged code, and an ADF file that includes the application name and its properties ( ex: size ).

DoJa and MIDP Profile Differences

Their method definitions are almost identical, but their entry points ( called application class ) are different. A DoJa application's extension name for its ADF is JAM, while MIDP's is JAD.

ProfileApplication ClassUI ClassADF File Extension
DoJaIApplicationPanelJAM
MIDPMIDletFormJAD

* J2ME CLDC level functions can share threads within different profiles, for cases such as access to a local resource file. Profile level functions that save data to memory, or manipulate UI components cannot be shared.

Mobile Java Source Code and ADF file

//  HelloWorld in DoJa
import com.nttdocomo.ui.*;
public class HelloWorldApplication extends IApplication {
    public HelloWorldApplication() {}

    public void start() {
        Panel panel = new Panel();
        panel.add(new Label("HelloWorld"));
        Display.setCurrent(panel);
    }
}
// JAM file
LastModified = Mon, 30 May 2005 16:44:40
AppClass = HelloWorldApplication
AppName = HelloWorldApplication
PackageURL = HelloWorld.jar
AppSize = 471
// HelloWorld in MIDP
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class HelloWorldApplication extends MIDlet {
    public HelloWorldApplication() {}

    protected void destroyApp(boolean unconditional) {}
    protected void pauseApp() {}

    public void startApp() {
        Form form = new Form("");
        form.append("HelloWorld");
        Display.getDisplay(this).setCurrent(form);
    }
}
// JAD dile
MIDlet-Jar-Size: 951
MIDlet-Jar-URL: HelloWorld.jar
MIDlet-Name: HelloWorld
MIDlet-Vendor: Sophia Cradle, Inc.
MIDlet-Version: 1.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-1.0
MIDlet-1: HelloWorld,,HelloWorldApplication