3. K virtual machine
• The K virtual machine (KVM) is Sun's newest
Java virtual machine technology and is
designed for products with approximately
128K of available memory.
• This environment is highly optimized for small-
memory limited-resource connected devices
such as cellular phones, pagers, PDAs
• http://java.sun.com/products/cldc/wp/
4. Configuration for Small Devices-CLDC
• CLDC: The Connected Limited Device
Configuration.
– Example: devices with 128 to 512KB of memory available
for Java applications.
Mobile phones, PDAs
5. MIDP
• Mobile Information Device Profile (MIDP): A
widely adopted example is to combine the
CLDC with the MIDP to provide a complete
Java application environment for mobile
phones and other devices with similar
capabilities.
• The latest versions of MIDP is 2.1
• The latest versions of CLDC 1.1
6. What is JSR ?
• The Java Community Process (JCP): is a
participative process to develop and revise the
Java™ technology specifications, reference
implementations, and test suites
(http://jcp.org)
• Java Specification Requests
– JSR-82: Bluetooth API
– JSR-120: Wireless Messaging API
– JSR-179: Location API
• Find suitable devices:
– Ex: http://www.forum.nokia.com/devices/E61i
7. MIDLet Life Cycle*
• MIDP applications are managed by the
Application Management Software (AMS) on
devices.
• The AMS starts, stops, or pauses the MIDP
application by calling its main MIDlet class’s
life cycle methods.
• The MIDlet can also notify the AMS when its
state changes.
• javax.microedition.midlet.MIDlet
*: M. J. Yuan, Enterprise J2ME Developing Mobile Java Application, Prentice Hall, 2004
8. MIDLet Life Cycle Methods
Method Description
startApp() Called by the AMS when the MIDlet starts to
recover from the pause state
destroyApp() Called by the AMS when the MIDlet is
terminated
pauseApp() Called by the AMS when the MIDlet is paused
notifyDestroyed() Called by the MIDlet. It asks the AMS to
destroy the MIDlet itself
notifyPaused() Called by the MIDlet. It asks the AMS to pause
the MIDlet itself.
resumeRequest() Called by the MIDlet. It notifies the AMS that
MIDlet desires to come out of the paused state
and become active again
9. HelloWorld.java
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class HelloWorld extends MIDlet {
Alert strAlert;
public HelloWorld() {
strAlert = new Alert("Alert!");
strAlert.setString("Hello World")
}
public void startApp() {
Display.getDisplay(this).setCurrent(strAlert);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional)
{}
}