Programming wireless devices with the Java 2 Platform : micro edition / editors, Roger Riggs ... [et al.]
Contributor(s): Riggs, Roger
.
Material type:
BookPublisher: Boston, MA : Addison-Wesley, c2003. Description: xxix, 434 p. ; 24 cm. + pbk.ISBN: 0321197984.Subject(s): Wireless communication systems| 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 |
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
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