MTU Library Catalogue

Syndetics cover image
Image from Syndetics

Programming wireless devices with the Java 2 Platform : micro edition / editors, Roger Riggs ... [et al.]

Contributor(s): Riggs, Roger.
Material type: materialTypeLabelBookPublisher: Boston, MA : Addison-Wesley, c2003. Description: xxix, 434 p. ; 24 cm. + pbk.ISBN: 0321197984.Subject(s): Wireless communication systems | Java (Computer program language)DDC classification: 005.2762
Contents:
Overview of Java 2 Platform, Micro Edition (J2METM) -- Goals, Requirements and Scope -- Connected Limited Device Configuration -- CLDC Libraries -- Mobile Information Device Profile -- MIDP Application Model -- MIDP User Interface Libraries -- MIDP High-level User Interface - Screen -- MIDP High-level User Interface - Form -- MIDP Low-level User Interface Libraries -- MIDP Game API -- MIDP Sound API -- MIDP Persistence Libraries -- MIDP Networking and Serial Communications -- Secure Networking -- Event-Driven Application Launch -- Security for MIDlet Suites -- MIDlet Deployment -- Additional MIDP APIs.
Holdings
Item type Current library Call number Copy number Status Barcode
General lending MTU Bishopstown Library Store 005.2762 (Browse shelf(Opens below)) 1 Available 00095495
General lending MTU Bishopstown Library Store 005.2762 (Browse shelf(Opens below)) 1 Available 00077305
General lending MTU Bishopstown Library Lending 005.2762 (Browse shelf(Opens below)) 1 Available 00077304
General lending MTU Bishopstown Library Store 005.2762 (Browse shelf(Opens below)) 1 Available 00077303
General lending MTU Bishopstown Library Store 005.2762 (Browse shelf(Opens below)) 1 Available 00077302
Total holds: 0

Enhanced descriptions from Syndetics:

This volume provides a definitive introduction to the fundamentals of J2ME that explains how to build applications for Java-enabled wireless handheld devices.

Includes bibliographical references (pages 353-354) and index.

Overview of Java 2 Platform, Micro Edition (J2METM) -- Goals, Requirements and Scope -- Connected Limited Device Configuration -- CLDC Libraries -- Mobile Information Device Profile -- MIDP Application Model -- MIDP User Interface Libraries -- MIDP High-level User Interface - Screen -- MIDP High-level User Interface - Form -- MIDP Low-level User Interface Libraries -- MIDP Game API -- MIDP Sound API -- MIDP Persistence Libraries -- MIDP Networking and Serial Communications -- Secure Networking -- Event-Driven Application Launch -- Security for MIDlet Suites -- MIDlet Deployment -- Additional MIDP APIs.

CIT Module COMP 9018 - Core reading

Table of contents provided by Syndetics

  • Figures (p. xvii)
  • Foreword (p. xix)
  • Preface (p. xxi)
  • Acknowledgments (p. xxvii)
  • 1 Introduction (p. 1)
  • 1.1 The Wireless Internet Revolution (p. 1)
  • 1.2 Why Java Technology for Wireless Devices? (p. 2)
  • 1.3 A Bit of History (p. 3)
  • 1.4 J2ME Standardization Efforts (p. 4)
  • 2 Overview of Java 2 Platform, Micro Edition (J2ME) (p. 7)
  • 2.1 Java 2 Platform (p. 7)
  • 2.2 Java 2 Platform, Micro Edition (J2ME) (p. 9)
  • 2.3 Key Concepts of the J2ME Architecture (p. 10)
  • 2.3.1 Profiles (p. 12)
  • 2.3.2 Configurations (p. 14)
  • 2.3.3 Optional Packages (p. 17)
  • 2.4 Evolution of the J2ME Platform (p. 17)
  • 2.4.1 Core J2ME Standardization Efforts (p. 18)
  • 2.4.2 Optional Packages for the Wireless Market (p. 19)
  • 3 Goals, Requirements, and Scope (p. 23)
  • 3.1 High-Level Goals (p. 23)
  • 3.1.1 Dynamic Delivery of Java Applications and Content (p. 24)
  • 3.1.2 Third-Party Application Development (p. 24)
  • 3.1.3 Independence of Network Technology Standards (p. 25)
  • 3.1.4 Compatibility with Other Wireless Application Standards (p. 26)
  • 3.2 Target Devices (p. 26)
  • 3.3 General Notes on Consumer Devices and Embedded Systems (p. 28)
  • 3.4 Requirements (p. 30)
  • 3.4.1 Hardware Requirements of CLDC (p. 31)
  • 3.4.2 Hardware Requirements of MIDP (p. 32)
  • 3.4.3 Software Requirements of CLDC (p. 32)
  • 3.4.4 Software Requirements of MIDP (p. 33)
  • 3.4.5 J2ME Requirements (p. 34)
  • 3.5 Scope of the CLDC and MIDP Standards (p. 35)
  • 3.5.1 Scope of CLDC (p. 35)
  • 3.5.2 Scope of MIDP (p. 35)
  • 4 Connected Limited Device Configuration (p. 39)
  • 4.1 CLDC Expert Groups (p. 40)
  • 4.1.1 CLDC 1.0 Expert Group (p. 40)
  • 4.1.2 CLDC 1.1 Expert Group (p. 40)
  • 4.2 CLDC Architecture, Application Model, and Security (p. 41)
  • 4.2.1 Architectural Overview (p. 41)
  • 4.2.2 The Concept of a Java Application (p. 42)
  • 4.2.3 Application Security (p. 43)
  • 4.2.4 Application Management (p. 45)
  • 4.3 Java Language Specification Compatibility (p. 46)
  • 4.3.1 No Finalization of Class Instances (p. 47)
  • 4.3.2 Error-Handling Limitations (p. 47)
  • 4.4 Java Virtual Machine Specification Compatibility (p. 48)
  • 4.4.1 Features Eliminated from the Virtual Machine (p. 48)
  • 4.4.2 Class File Verification (p. 50)
  • 4.4.3 Class File Format and Class Loading (p. 52)
  • 4.5 New for CLDC 1.1 (p. 55)
  • 5 CLDC Libraries (p. 57)
  • 5.1 Background and Goals (p. 57)
  • 5.2 Classes Derived from Java 2 Standard Edition (p. 58)
  • 5.2.1 System Classes (p. 58)
  • 5.2.2 Data Type Classes (p. 59)
  • 5.2.3 Collection Classes (p. 59)
  • 5.2.4 Input/Output Classes (p. 59)
  • 5.2.5 Calendar and Time Classes (p. 60)
  • 5.2.6 Additional Classes (p. 60)
  • 5.2.7 Exception and Error Classes (p. 60)
  • 5.2.8 Weak References (p. 62)
  • 5.2.9 Internationalization Support (p. 62)
  • 5.2.10 Property Support (p. 63)
  • 5.3 CLDC-Specific Classes (p. 64)
  • 5.3.1 Background and Motivation (p. 64)
  • 5.3.2 The Generic Connection Framework (p. 65)
  • 5.3.3 No Network Protocol Implementations Defined in CLDC (p. 67)
  • 5.3.4 Summary of the Generic Connection Interfaces (p. 67)
  • 5.4 New for CLDC 1.1 (p. 70)
  • 6 Mobile Information Device Profile (p. 73)
  • 6.1 MIDP Expert Groups (p. 74)
  • 6.1.1 MIDP 1.0 Expert Group (p. 74)
  • 6.1.2 MIDP 2.0 Expert Group (p. 74)
  • 6.2 Areas Covered by the MIDP Specification (p. 76)
  • 7 MIDP Application Model (p. 79)
  • 7.1 MIDlets (p. 79)
  • 7.1.1 MIDlet States (p. 82)
  • 7.1.2 Using the startApp, pauseApp, and destroyApp Methods (p. 84)
  • 7.1.3 Application Lifecycle and the User Interface API (p. 87)
  • 7.2 MIDlet Suites (p. 88)
  • 7.3 New for MIDP 2.0 (p. 88)
  • 8 MIDP User Interface Libraries (p. 89)
  • 8.1 MIDP UI Compared to Desktop AWT (p. 90)
  • 8.2 Structure of the MIDP User Interface API (p. 90)
  • 8.2.1 Displayable Model (p. 91)
  • 8.2.2 Low-Level User Interface (p. 93)
  • 8.2.3 High-Level User Interface (p. 93)
  • 8.3 Display (p. 95)
  • 8.3.1 Current Displayable (p. 96)
  • 8.3.2 Screen Backlight and Device Vibrator (p. 97)
  • 8.4 Displayables (p. 97)
  • 8.4.1 Ticker (p. 99)
  • 8.5 Commands (p. 100)
  • 8.5.1 Command Mapping to Device User Interface (p. 100)
  • 8.5.2 Command Properties (p. 101)
  • 8.5.3 Command Types (p. 102)
  • 8.5.4 Command Listeners (p. 105)
  • 8.6 Advanced Topics (p. 106)
  • 8.6.1 System Screens (p. 106)
  • 8.6.2 Adaptation to Device-Specific User Interface Style (p. 106)
  • 8.6.3 Device-Provided Operations (p. 107)
  • 8.6.4 A Note on Concurrency (p. 108)
  • 8.7 New for MIDP 2.0 (p. 109)
  • 9 MIDP High-Level User Interface - Screen (p. 111)
  • 9.1 List (p. 111)
  • 9.1.1 Implicit List (p. 113)
  • 9.1.2 Exclusive Choice List (p. 115)
  • 9.1.3 Multiple Choice List (p. 116)
  • 9.1.4 Long List Elements (p. 116)
  • 9.1.5 List Element Fonts (p. 117)
  • 9.2 TextBox (p. 118)
  • 9.2.1 Input Constraints (p. 119)
  • 9.2.2 Input Modes (p. 121)
  • 9.3 Alert (p. 122)
  • 9.3.1 Commands in Alert (p. 124)
  • 9.3.2 Activity Indicator (p. 124)
  • 9.4 Form (p. 125)
  • 9.5 New for MIDP 2.0 (p. 126)
  • 10 MIDP High-Level User Interface - Form (p. 129)
  • 10.1 Item (p. 129)
  • 10.1.1 ItemStateListener (p. 129)
  • 10.1.2 Item Commands (p. 130)
  • 10.2 StringItem (p. 130)
  • 10.2.1 Appearance Modes (p. 131)
  • 10.3 ImageItem (p. 132)
  • 10.4 TextField (p. 133)
  • 10.5 DateField (p. 134)
  • 10.6 ChoiceGroup (p. 135)
  • 10.7 Gauge (p. 135)
  • 10.8 CustomItem (p. 136)
  • 10.8.1 Interaction Modes (p. 137)
  • 10.8.2 Traversal (p. 138)
  • 10.9 Form Layout (p. 139)
  • 10.9.1 Row Breaks (p. 140)
  • 10.9.2 Label Layout (p. 141)
  • 10.9.3 Current Alignment (p. 141)
  • 10.9.4 Item Sizing (p. 142)
  • 10.9.5 Row Filling (p. 143)
  • 10.9.6 Spacer (p. 145)
  • 10.10 New for MIDP 2.0 (p. 145)
  • 11 MIDP Low-Level User Interface Libraries (p. 149)
  • 11.1 The Canvas API (p. 149)
  • 11.1.1 Canvas Dimensions (p. 150)
  • 11.1.2 Redrawing Mechanism (p. 150)
  • 11.1.3 Drawing Model (p. 151)
  • 11.1.4 Canvas Visibility (p. 151)
  • 11.2 Low-Level API for Events in Canvases (p. 152)
  • 11.2.1 Key Events (p. 152)
  • 11.2.2 Action Keys (p. 152)
  • 11.2.3 Pointer Events (p. 153)
  • 11.3 Graphics (p. 153)
  • 11.3.1 Coordinate System (p. 153)
  • 11.3.2 Clipping (p. 154)
  • 11.3.3 Translation (p. 154)
  • 11.3.4 Color Model (p. 155)
  • 11.3.5 Line Styles (p. 155)
  • 11.3.6 Fonts (p. 156)
  • 11.4 Creating and Using Images (p. 156)
  • 11.4.1 Immutable Images (p. 156)
  • 11.4.2 Mutable Images (p. 157)
  • 11.4.3 Transparency and Alpha Blending (p. 157)
  • 11.4.4 Getting RGB Data (p. 158)
  • 11.4.5 Anchor Points (p. 159)
  • 11.5 Drawing Primitives (p. 160)
  • 11.5.1 Drawing Lines (p. 160)
  • 11.5.2 Drawing and Filling Arcs (p. 161)
  • 11.5.3 Drawing and Filling Rectangles (p. 162)
  • 11.5.4 Drawing and Filling Rounded Rectangles (p. 164)
  • 11.5.5 Filling Triangles (p. 165)
  • 11.5.6 Drawing Text (p. 166)
  • 11.5.7 Drawing Images (p. 166)
  • 11.5.8 Drawing RGB Data (p. 168)
  • 11.5.9 Copying an Area of Pixels (p. 169)
  • 11.6 New for MIDP 2.0 (p. 170)
  • 12 MIDP Game API (p. 173)
  • 12.1 The GameCanvas API (p. 173)
  • 12.1.1 Key Polling (p. 174)
  • 12.1.2 Screen Buffer (p. 175)
  • 12.2 Layers (p. 175)
  • 12.3 Sprites (p. 176)
  • 12.3.1 Frames (p. 176)
  • 12.3.2 Frame Sequence (p. 178)
  • 12.3.3 Reference Pixel (p. 179)
  • 12.3.4 Transforms (p. 180)
  • 12.4 TiledLayer (p. 180)
  • 12.4.1 Tiles (p. 180)
  • 12.4.2 Cells (p. 182)
  • 12.5 LayerManager (p. 184)
  • 12.6 Collision Detection (p. 186)
  • 12.6.1 Collision Rectangle (p. 186)
  • 12.6.2 Pixel-Level Detection (p. 187)
  • 12.7 Sample Code: A Simple Game (p. 188)
  • 12.8 New for MIDP 2.0 (p. 195)
  • 13 MIDP Sound API (p. 197)
  • 13.1 Overview of the MIDP 2.0 Sound API (p. 197)
  • 13.1.1 MIDP Media Support (p. 197)
  • 13.1.2 Design Goals (p. 198)
  • 13.1.3 Requirements (p. 199)
  • 13.1.4 MIDP Sound Architecture (p. 200)
  • 13.2 Player Creation and Management (p. 202)
  • 13.2.1 Managing a Media Framework (p. 202)
  • 13.2.2 Creating Players for Media Data (p. 203)
  • 13.2.3 Tone Generation (p. 206)
  • 13.2.4 Sample Code (p. 207)
  • 13.3 Media Controls (p. 208)
  • 13.3.1 ToneControl (p. 208)
  • 13.3.2 VolumeControl (p. 211)
  • 13.3.3 Custom Controls (p. 211)
  • 13.3.4 Sample Code (p. 211)
  • 13.4 Enhanced Media Support Using the Mobile Media API (p. 217)
  • 13.4.1 DataSource (p. 218)
  • 13.4.2 Advanced Controls (p. 218)
  • 13.5 New for MIDP 2.0 (p. 219)
  • 14 MIDP Persistence Libraries (p. 221)
  • 14.1 The Record Management System (p. 221)
  • 14.2 Manipulating Record Stores and Records (p. 223)
  • 14.2.1 Manipulating a Record Store (p. 223)
  • 14.2.2 Shared Record Stores (p. 225)
  • 14.2.3 Manipulating Records in a Record Store (p. 226)
  • 14.2.4 Converting Record Data to and from Byte Arrays (p. 226)
  • 14.2.5 Filtering, Comparing, Listening, and Enumerating Records (p. 227)
  • 14.3 Sample Code (RMSMIDlet.java) (p. 231)
  • 14.4 New for MIDP 2.0 (p. 241)
  • 15 MIDP Networking and Serial Communications (p. 243)
  • 15.1 Characteristics of Wireless Data Networks (p. 243)
  • 15.2 Network Interface Considerations (p. 244)
  • 15.3 The HttpConnection Interface (p. 245)
  • 15.3.1 States of an HTTP Connection (p. 245)
  • 15.3.2 Security of HTTP (p. 246)
  • 15.3.3 Establishing a Connection (p. 246)
  • 15.3.4 Parsing URLs (p. 247)
  • 15.3.5 HTTP Request Headers (p. 248)
  • 15.3.6 Using an HTTP Connection (p. 250)
  • 15.3.7 HTTP Response Headers (p. 252)
  • 15.3.8 Closing an HTTP Connection (p. 253)
  • 15.4 Sample Code (NetClientMIDlet.java) (p. 253)
  • 15.5 SocketConnection (p. 264)
  • 15.5.1 Getting the Local Address and Port Number (p. 264)
  • 15.5.2 Getting the Remote Host Address and Port (p. 265)
  • 15.5.3 Getting and Setting Socket Options (p. 265)
  • 15.5.4 Closing Streams (p. 266)
  • 15.5.5 Security of SocketConnection (p. 266)
  • 15.5.6 Example (p. 266)
  • 15.6 ServerSocketConnection (p. 267)
  • 15.6.1 Getting the Local Address and Port Number (p. 267)
  • 15.6.2 Security of ServerSocketConnection (p. 268)
  • 15.6.3 Example (p. 268)
  • 15.7 UDPDatagramConnection (p. 269)
  • 15.7.1 Getting the Local Address and Port Number (p. 269)
  • 15.7.2 Datagrams (p. 270)
  • 15.7.3 Closing Connections (p. 270)
  • 15.7.4 Security of UDPDatagramConnection (p. 271)
  • 15.7.5 Example (p. 271)
  • 15.8 CommConnection (p. 272)
  • 15.8.1 Getting and Setting the Serial Port Speed (p. 273)
  • 15.8.2 Security for CommConnection (p. 274)
  • 15.8.3 Recommended Convention for Naming Ports (p. 274)
  • 15.8.4 Examples (p. 274)
  • 15.9 New for MIDP 2.0 (p. 276)
  • 16 Secure Networking (p. 277)
  • 16.1 Checking the Security Properties of a Connection (p. 278)
  • 16.1.1 Server Certificate (p. 279)
  • 16.1.2 Printable Representation for X.509 Distinguished Names (p. 280)
  • 16.2 HttpsConnection (p. 281)
  • 16.2.1 Security of HttpsConnection (p. 281)
  • 16.2.2 Example (p. 282)
  • 16.3 SecureConnection (p. 283)
  • 16.3.1 Security of SecureConnection (p. 284)
  • 16.3.2 Example (p. 284)
  • 16.4 MIDP X.509 Certificate Profile (p. 285)
  • 16.4.1 Certificate Extensions (p. 286)
  • 16.4.2 Certificate Size (p. 286)
  • 16.4.3 Algorithm Support (p. 286)
  • 16.4.4 Certificate Processing for HTTPS (p. 286)
  • 16.5 New for MIDP 2.0 (p. 287)
  • 17 Event-Driven Application Launch (p. 289)
  • 17.1 Alarm-Based MIDlet Launch (p. 289)
  • 17.2 Network-Based MIDlet Launch (p. 291)
  • 17.2.1 Registering a MIDlet to Be Launched (p. 291)
  • 17.2.2 Mechanics of Static Push Registration (p. 292)
  • 17.2.3 Mechanics of Dynamic Push Registration (p. 294)
  • 17.3 Listening and Launching (p. 295)
  • 17.4 Handling Connections after Launch (p. 296)
  • 17.5 Security of the Push Registry (p. 297)
  • 17.6 Sample Usage Scenarios (p. 298)
  • 17.6.1 Sample Chat Application (p. 298)
  • 17.6.2 Sample Ping Application (p. 300)
  • 17.7 New for MIDP 2.0 (p. 303)
  • 18 Security for MIDlet Suites (p. 305)
  • 18.1 Assumptions (p. 306)
  • 18.2 Sandbox for Untrusted MIDlet Suites (p. 307)
  • 18.3 Trusted MIDlet Suite Security Model (p. 308)
  • 18.3.1 Permissions (p. 308)
  • 18.3.2 Requesting Permissions for a MIDlet Suite (p. 310)
  • 18.3.3 Protection Domain (p. 311)
  • 18.3.4 Interaction Modes for User Permissions (p. 311)
  • 18.3.5 Granting Permissions to Trusted MIDlet Suites (p. 312)
  • 18.4 APIs That Are Not Security Sensitive (p. 313)
  • 18.5 Establishing Trust for MIDlet Suites by Using X.509 PKI (p. 313)
  • 18.5.1 Signing a MIDlet Suite (p. 314)
  • 18.5.2 Authenticating a MIDlet Suite (p. 317)
  • 18.5.3 Caching of Authentication and Authorization Results (p. 320)
  • 18.5.4 X.509 Certificate Profile for Trusted MIDlet Suites (p. 320)
  • 18.6 Recommended Security Policy for GSM/UMTS Devices (p. 321)
  • 18.7 New for MIDP 2.0 (p. 321)
  • 19 MIDlet Deployment (p. 323)
  • 19.1 MIDlet Suites (p. 323)
  • 19.1.1 MIDlet Suite Packaging (p. 324)
  • 19.1.2 Application Descriptor (p. 324)
  • 19.1.3 MIDlet Attributes (p. 325)
  • 19.1.4 MIDlet Suite Execution Environment (p. 330)
  • 19.2 MIDP System Software (p. 332)
  • 19.3 Over-the-Air User-Initiated Provisioning (p. 332)
  • 19.3.1 MIDlet Suite Updates (p. 334)
  • 19.3.2 MIDlet Suite Removal (p. 334)
  • 19.3.3 Installation and Deletion Status Reports (p. 335)
  • 19.3.4 Installation Status Codes and Messages (p. 336)
  • 19.4 New for MIDP 2.0 (p. 337)
  • 20 Additional MIDP APIs (p. 339)
  • 20.1 Timer Support (p. 339)
  • 20.1.1 Using One-Shot Timers (p. 340)
  • 20.1.2 Using Repeating Timers (p. 341)
  • 20.1.3 Sample Code (TimerMIDlet.java) (p. 342)
  • 20.2 System Properties (p. 346)
  • 20.3 Application Resource Files (p. 347)
  • 20.4 Exiting a MIDlet (p. 347)
  • 21 Summary (p. 349)
  • References (p. 353)
  • Appendix A CLDC Application Programming Interface (p. 355)
  • Almanac Legend (p. 356)
  • CLDC Almanac (p. 359)
  • Appendix B MIDP Application Programming Interface (p. 391)
  • MIDP Almanac (p. 393)
  • Index (p. 425)

Excerpt provided by Syndetics

In the past five years, Sun has collaborated with major consumer device manufacturers and other companies to create a highly portable, secure, small-footprint Javaâ„¢ application development environment for resource-constrained, wireless consumer devices such as cellular telephones, two-way pagers, and personal organizers. This work started with the development of a new, small-footprint Java virtual machine called the K Virtual Machine (KVM). Two Java Community Process (JCP) standardization efforts, Connected, Limited Device Configuration (CLDC) and Mobile Information Device Profile (MIDP), were then carried out to standardize the Java libraries and the associated Java language and virtual machine features across a wide variety of consumer devices. The first round of the CLDC and MIDP standardization efforts took place during the fall of 1999 and spring of 2000. Twenty-four companies participated in the CLDC 1.0 and MIDP 1.0 standardization efforts directly, and more than five hundred companies and individuals participated indirectly by sending feedback while the standardization efforts were in progress. Major consumer device companies such as Motorola, Nokia, NTT DoCoMo, Palm Computing, Research In Motion (RIM), and Siemens played a key role in these efforts. After their first release, the CLDC 1.0 and MIDP 1.0 standards have become very popular. The deployment of real-world, Java-enabled wireless devices began in 2000, and the deployments accelerated rapidly in 2001 and 2002, approaching exponential growth. It has been estimated that over 50 million devices supporting the CLDC and MIDP standards were shipped in 2002, and the number is likely to be at least twice as large in 2003. As a result of the widespread acceptance of these standards, major business opportunities are now emerging for Java application developers in the wireless device space. The second round of the CLDC and MIDP standardization efforts was started in the fall of 2001. The goal of the CLDC 1.1 and MIDP 2.0 efforts was to expand on the success of the original standards, refine the existing feature set, and introduce additional APIs, while keeping a close eye on the strict memory limitations that still constrain the design of wireless devices. More than 60 companies were directly involved in the development of the CLDC 1.1 and MIDP 2.0 specifications, reflecting the broad acceptance and adoption of these standards in the wireless industry. This book intends to make the results of the standardization work in the wireless Java technology area available to the wider software development community. At the high level, this book combines two Java Community Process Specifications, CLDC 1.1 (JSR 139) and MIDP 2.0 (JSR 118), and presents them as a single monograph in a way that the corresponding Java Community Process (JCP) Specifications cannot accomplish by themselves. We have added a general introduction to the Java 2 Platform, Micro Edition (J2MEâ„¢), provided more background material, and included a number of small applications to illustrate the use of CLDC and MIDP in the real world. We also provide some guidelines and instructions for getting started with Java 2 Platform, Micro Edition. A reference implementation of the software discussed in this book is available from Sun Microsystems under the Sun Community Source License (SCSL). Intended Audience The book is intended for software developers, content providers, and other professionals who want to develop Javaâ„¢ software for resource-constrained, connected devices. The book is also targeted to consumer device manufacturers who want to build small Java Poweredâ„¢ devices and would like to integrate a compact Java application development platform in their products. Objectives of This Book This book is the definitive statement, "from the source," about the key specifications for Java Poweredâ„¢ wireless devices. As such, this book intends to provide an overview of Javaâ„¢ 2 Platform, Micro Edition (J2MEâ„¢ ), provide a general introduction to the application development platforms defined by the J2ME standardization efforts, explain the technical aspects of the J2ME Connected, Limited Device Configuration version 1.1 (CLDC 1.1), explain the technical aspects of the J2ME Mobile Information Device Profile version 2.0 (MIDP 2.0), provide sample programs to illustrate the use of CLDC and MIDP, and help you get started in writing your own J2ME applications. How This Book Is Organized The topics in this book are organized as follows: Chapter 1, "Introduction," provides a context for Java 2 Micro Edition and the CLDC and MIDP specifications. Chapter 2, "Overview of Java 2 Platform, Micro Edition (J2ME(TM))," provides an overview of Java 2 Micro Edition, its key concepts and components. Chapter 3, "Goals, Requirements, and Scope," defines the goals, requirements, and scope of the CLDC and MIDP standardization efforts. Chapter 4, "Connected Limited Device Configuration," introduces the CLDC standardization effort and summarizes the supported Java programming language and virtual machine features compared to the Java 2 Platform, Standard Edition. Chapter 5, "CLDC Libraries," introduces the Java class libraries defined by the CLDC Specification. Chapter 6, "Mobile Information Device Profile," introduces the MIDP standardization effort. Chapter 7, "MIDP Application Model," introduces the MIDlet application model defined by the MIDP Specification. Chapter 8, "MIDP User Interface Libraries," introduces the user interface libraries defined by the MIDP Specification. Chapter 9, "MIDP High-Level User Interface - Screen," introduces the part of the MIDP high-level user interface revolving around the Screen class. Chapter 10, "MIDP High-Level User Interface - Form," introduces the part of the MIDP high-level user interface revolving around the Form class. Chapter 11, "MIDP Low-Level User Interface Libraries," introduces the low-level user interface libraries defined by the MIDP Specification. Chapter 12, "MIDP Game API," introduces the game API defined by the MIDP Specification. Chapter 13, "MIDP Sound API, introduces the sound API defined by the MIDP Specification. Chapter 14, "MIDP Persistence Libraries," introduces the record management system (RMS) defined by the MIDP Specification. Chapter 15, "MIDP Networking and Serial Communications," introduces the libraries for networking and serial communications defined by the MIDP Specification. Chapter 16, "Secure Networking," introduces the protocols for secure networking defined by the MIDP Specification. Chapter 17, "Event-Driven Application Launch," introduces the protocols for launching MIDlets defined by the MIDP Specification. Chapter 18, "Security for MIDlet Suites," introduces the security protocols for MIDlet suites defined by the MIDP Specification. Chapter 19, "MIDlet Deployment," introduces the mechanisms for transferring a MIDlet to a wireless device. Chapter 20, "Additional MIDP APIs," introduces some additional MIDP application programming interfaces (APIs), such as Timers. Chapter 21, "Summary," summarizes the messages of this book. "References" provides bibliographic references. Appendix A, "CLDC Application Programming Interface," contains the application programming interface documentation in Almanac format for CLDC. Appendix B, "MIDP Application Programming Interface," contains the application programming interface documentation in Almanac format for MIDP. Related Literature and Helpful Web Pages The Javaâ„¢ Language Specification, Second Edition , by James Gosling, Bill Joy, Guy Steele and Gilad Bracha. Addison-Wesley, 2000, ISBN 0-201-31008-2 The Javaâ„¢ Virtual Machine Specification, Second Edition, by Tim Lindholm and Frank Yellin. Addison-Wesley, 1999, ISBN 0-201-43294-3 Programming Wireless Devices with the Java 2 Platform, Micro Edition, First Edition, by Roger Riggs, Antero Taivalsaari, and Mark VandenBrink. Addison-Wesley, 2001, ISBN 0-201-74627-1 MIDP 2.0 Style Guide by Cynthia Bloch and Annette Wagner. Addison-Wesley, 2003, ISBN 0-321-19801-8 Connected, Limited Device Configuration Specification, version 1.0 http://jcp.org/en/jsr/detail?id=30 Connected, Limited Device Configuration Specification, version 1.1 http://jcp.org/en/jsr/detail?id=139 Mobile Information Device Profile Specification, version 1.0 http://jcp.org/en/jsr/detail?id=37 Mobile Information Device Profile Specification, version 2.0 http://jcp.org/en/jsr/detail?id=118 Java 2 Micro Edition Product Web Page http://java.sun.com/products/j2me/ Connected, Limited Device Configuration (CLDC) Product Web Page http://java.sun.com/products/cldc/ Mobile Information Device Profile (MIDP) Product Web Page http://java.sun.com/products/midp/ J2ME Wireless Toolkit Product Web Page http://java.sun.com/products/j2mewtoolkit/ Web Pages for This Book Addison-Wesley Page www.awprofessional.com/titles/0321197984 Sun Microsystems Page http://java.sun.com/docs/books/j2mewireless-2ndEd/index.html 0321197984P07102003 Excerpted from Programming Wireless Devices with the Java2 Platform: Micro Edition by Roger Riggs, Antero Taivalsaari, Jyri Huopaniemi, Mark Patel, Aleksi Uotila, Jim van Peursem All rights reserved by the original copyright owners. Excerpts are provided for display purposes only and may not be reproduced, reprinted or distributed without the written permission of the publisher.

Author notes provided by Syndetics

Roger Riggs is a senior staff engineer at Sun Microsystems who focuses on design and architecture of the Java 2 Micro Edition platform for wireless devices. He led Sun s efforts within the Java Community Process to standardize the MIDP 1.0 and 2.0 APIs.

Antero Taivalsaari is a senior staff engineer at Sun Microsystems. Dr. Taivalsaari co-founded the Spotless project at Sun Labs, and designed the original KVM system that became the cornerstone of the Java 2 Platform, Micro Edition. In addition, he led the CLDC 1.0 and 1.1 standardization efforts.

Jim Van Peursem is chief architect for the J2ME platform at Motorola. Dr. Van Peursem has been actively involved in the application of Java technologies in mobile wireless devices from the beginning. His contributions include serving as specification lead for JSR 118 (MIDP 2.0) and interpretation guru for JSR 037 (MIDP 1.0).

Jyri Huopaniemi is research manager at Nokia Research Center. Dr. Huopaniemi led the Mobile Media API (JSR 135) and Mobile 3D Graphics API (JSR 184) standardization efforts. He was also responsible for the Sound API of MIDP 2.0.

Mark Patel is the lead graphics architect for the J2ME platform at Motorola. His involvement with Java spans several years and includes the development of various APIs for graphics and user interfaces. He led the development of the Game API for MIDP 2.0.

Aleksi Uotila is a senior design engineer for the J2ME platform at Nokia. He has actively contributed to several J2ME-related expert groups within the Java Community Process, including MIDP 1.0 and 2.0.



0321197984AB05222003