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 DoCoMo | DoJa | i-appli |
au | MIDP | EZ-appli (Java) / Open appli ( Java ) |
SoftBank | MIDP | S! Appli |
WILLCOM | MIDP | 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
Skins for the Emulator
- W-ZERO3 ( Japanese ): http://www.saturn.dti.ne.jp/~npaka/kvm/midp2/
- WX310SA ( Japanese ): http://www.geocities.jp/willcomjavan/filesindex.html
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.
Profile | Application Class | UI Class | ADF File Extension |
---|---|---|---|
DoJa | IApplication | Panel | JAM |
MIDP | MIDlet | Form | JAD |
* 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