Upload
haiokman
View
192
Download
1
Tags:
Embed Size (px)
Citation preview
Lab 1 Introduction to J2ME
Pervasive Computing LabPrepared by: Tuan Nguyen
E-mail: [email protected]
Java Micro-Edition
Image from java.sun.com
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/
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
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
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
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
MIDLet Life Cycle MethodsMethod 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
HelloWorld.javaimport 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) {}
}
Run project
• Click on Run button
Examine the files
• Check those directory: – .\bin ; .\classes; .\res
• Examine the file: .\bin\HelloWorld.jad and .\bin\MANIFEST.MF– MIDlet-1: HelloWorld, HelloWorld.png, HelloWorld– MIDlet-Jar-Size: 100– MIDlet-Jar-URL: HelloWorld.jar– MIDlet-Name: HelloWorld– MIDlet-Vendor: Unknown– MIDlet-Version: 1.0– MicroEdition-Configuration: CLDC-1.1– MicroEdition-Profile: MIDP-2.1
References
1. Java.sun.com 2. JCP – http://jcp.org 3. Michael Juntao Yuan, Enterprise J2ME
Developing Mobile Java Application, Prentice Hall, 2004
4. www.forum.nokia.com