Download presentation
Presentation is loading. Please wait.
Published byAvice Pierce Modified over 9 years ago
1
Introduction to Java 2 Micro Edition Mark Balbes, Ph.D. Senior Software Engineer Jeff Brown Senior Software Engineer
2
J2ME (2) What is J2ME Java platform for small devices A subset of Java 2 Standard Edition Complementary technology to WAP/WML For programming the Palm For programming wireless devices (e.g mobile phones)
3
J2ME (3) J2ME-Enabled Devices Motorola –i85s and i50sx iDen phones –Applications are downloaded and installed via a special cable http://commerce.motorola.com/iupdatephone/main/j2me_softcat.cfm NTT DoCoMo –Japanese phone company ~80% of wireless internet users are in Japan –iMode and iAppli support Research In Motion –CLDC and MIDP compliant –http://www.rim.net/ Palm and compatibles WinCE devices i85s P503i RIM BlackBerry
4
J2ME (4) Configurations and Profiles CDC - Connected Device Configuration CLDC - Connected Limited Device Configuration MIDP - Mobile Information Device Profile PDAP - Personal Digital Assistant Profile Personal Profile Host Operating System JVMKVM CDC PersonalMIDPPDAP CLDC kJava
5
J2ME (5) CLDC Connected Limited Device Configuration Specification Version 1.0 Hardware Requirements –160 - 512 kB of memory –16 or 32 bit processor –network connectivity (possibly wireless) No floating point support Deliver applications dynamically
6
J2ME (6) CLDC (Cont’d) Connected Limited Device Configuration CLDC addresses –Java languages and virtual machine features –Core Java libraries –Input/output –Networking –Security –Internationalization
7
J2ME (7) CLDC (Cont’d) Connected Limited Device Configuration CLDC does not address –Application life-cycle management –User interface functionality –Event handling –High-level application model These can be addressed in profiles
8
J2ME (8) CLDC What’s been removed Floating point Java Native Interface User-defined class loaders Reflection Thread groups and daemon threads Finalization Weak references
9
J2ME (9) CLDC Security Less memory-consuming than J2SE model Sandbox –No user-defined class loaders –Classes loaded at native level No native method calls except from JVM System classes cannot be overridden by programmer
10
J2ME (10) Programming the Palm Development Environment –J2ME CLDC API Contains a subset of the standard J2SE classes –J2ME KJava API GUI components Access to Palm database Access to IR port –JBuilder Handheld Express –POSE Palm Emulator Already superceded. Not supported!
11
J2ME (11) Programming the Palm CLDC Packages io –InputStream, OutputStream, Reader, Writer lang - No floating point support util –Enumeration, Calendar, Date, Hashtable, Random, Stack, TimeZone, Vector javax.microedition.io –Connection, Datagram, InputConnection, OutputConnection, Connector
12
J2ME (12) Programming the Palm KJava GUI Components Spotlet –Container for other components –Handles events All events go to the spotlet. Spotlet must send events to the contained components. –Only one spotlet can be registered The registered spotlet is displayed. The registered spotlet receives all events from keys and screen.
13
J2ME (13) Programming the Palm HelloSpotlet public class HelloSpotlet extends Spotlet { private Graphics g; private Button quitButton; private String message = "Hello Spotlet!"; public HelloSpotlet() { g = Graphics.getGraphics(); g.clearScreen(); quitButton = new Button("Quit", 5, 125); quitButton.paint(); g.drawString(message, 5, 5, Graphics.PLAIN); } Graphics must be managed manually! Cannot specify the size of the button.
14
J2ME (14) Programming the Palm HelloSpotlet (Cont’d) public void penDown(int x, int y){ if (quitButton.pressed(x, y)) { System.exit(0); } public static void main(String[] args) { new HelloSpotlet().register(Spotlet.NO_EVENT_OPTIONS); } Register for screen events only. No key events Pass screen events to the button
15
J2ME (15) Programming the Palm Deploy & Test HelloSpotlet Use JBuilder Wizard to create.prc file Command line java palm.database.MakePalmApp Install into POSE No debugger
16
J2ME (16) Programming the Palm KAWT Project Implementation of the AWT classes Can make GUIs that work in J2ME & J2SE Open source Not part of J2ME Lightweight Clean-room implementation
17
J2ME (17) Building the Conduit Synchronizes data with desktop Java Conduit Development Kit –Claims to require Visual Café –MS Windows –Supports generic conduits
18
J2ME (18) What is MIDP? Provides APIs for building software on mobile devices with limited resources. Works on top of the Connected Limited Device Configuration (CLDC)
19
J2ME (19) Where does MIDP fit in the Java platforms? –Works with CLDC –Runs in the KVM –Examples of devices: mobile phones pagers BlackBerry devices personal digital assistants From http://java.sun.com/products/midp/
20
J2ME (20) HelloMIDLet import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HelloMIDlet extends MIDlet implements CommandListener { private Command exitCommand; private Display display; public HelloMIDlet() { display = Display.getDisplay(this); exitCommand = new Command("Exit", Command.SCREEN, 2); } public void startApp() { TextBox t = new TextBox("Hello MIDlet", "Hello World!", 256, 0); t.addCommand(exitCommand); t.setCommandListener(this); display.setCurrent(t); } public void pauseApp() {} public void destroyApp(boolean unconditional) {} public void commandAction(Command c, Displayable s) { if (c == exitCommand) { destroyApp(false); notifyDestroyed(); } Signals the MIDlet to terminate and enter the Destroyed state. Notify the application manager that the MIDlet has entered the Destroyed state Make TextBox the current screen
21
J2ME (21) J2ME Wireless Toolkit J2ME Wireless Toolkit 1.01 –http://java.sun.com/products/j2mewtoolkit/ –Integrates with Sun Forte IDE J2ME Wireless Toolkit 1.02 –adds debugging capabilities –adds new emulators –early access version available (as of 6/3/01)
22
J2ME (22) J2ME Wireless Toolkit Emulators
23
J2ME (23) Final thoughts What happened to write-once, run anywhere. Now there are different configurations and profiles to write to. How many developers can actually write for phones? Access may be controlled by the phone companies. CLDC & KJava provides a more familiar development paradigm. It’s back with J2ME for Palm! Wireless SIG
24
J2ME (24) Wireless SIG A joint special interest group of the St. Louis Web Developers Organization and the St. Louis Java User’s Group http://www.stlwebdev.org First meeting is on Tuesday, July 24 at 6:30 p.m. in this auditorium. I will be talking about J2ME MIDP Contact Mark Balbes (me) to be a speaker at mark@balbes.com
25
J2ME (25) References CLDC Specification http://java.sun.com/aboutJava/communityprocess/final/jsr030/index.html MIDP Specification http://java.sun.com/aboutJava/communityprocess/final/jsr037/index.html J2ME Archive http://www.billday.com/j2me/index.html http://www.kvmworld.com/ Palm Emulator (POSE) http://www.palmos.com/dev/tech/tools/emulator/ J2ME Wireless Toolkit http://java.sun.com/products/j2mewtoolkit/ Conduit Development Kit - Windows Java Edition http://www.palmos.com/dev/tech/tools/cdk/java
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.