Book Information


Authors: David Hemphill, James White
Paperback: 400 pages
Publisher: Manning Publications; 1st edition (April 2002)
Language: English
ISBN: 1930110332
Product Dimensions: 9.4 x 7.4 x 1.1 inches Link

 Book Review

Java2, Micro Edition (J2ME) by James White and David Hemphill gives a good overview of J2ME and related technologies both for beginners as well as for experienced programmers. This book is intended mainly for engineers interested in writing Java applications as it provides a practical overview of the J2ME programming environment by guiding the reader through detailed programming examples and tutorials.

This book deals with various important aspects of J2ME covering its architecture, its relationship to other Java platforms, some Java and non-Java alternative J2ME technologies along with related real-life examples. Apart from extensively discussing the input/output elements of most applications, the tutorial application and various other examples cover the user interfaces, event handling, data storage and networking aspects too.


The book starts with a brief introduction of J2ME, its applications, its role in the field of Wireless and mobiles, and also highlighting what it offers to software developers for consumer electronics and embedded devices. Discussion regarding the J2ME architecture covering J2ME Profiles, its runtime environment and J2ME Application design has been introduced next. From here the authors jump to the development of J2ME Application including applications for cellular phones and pagers and creating J2ME application using different Profiles.

The focus then turns towards the development of a Mobile Information Device Profile (MIDP) Application. Covering the MIDP User Interface and Data Storage aspects author moves on to the wireless MIDP Applications illustrating various classes, packages as well as streams supporting the same. The authors had also taken into account some important features like deploying a simple J2ME application for Palm OS devices using KJava. Alongside the KJava introduction, its user interface and its data storage had been effectively covered.

This book teaches hands-on programming techniques using MIDP for cell phones and KJava for PDAs. The authors develop a wireless stock-quote application using both platforms to illustrate application designs and correct usage of API functions. Their explanation on design rationales is excellent. Talking about the Real-world design author had efficiently explained various practical issues as to how one should deal with stakeholders, how to get him familiar with the devices early and also how to employ various architectural tools and techniques to facilitate the development of mobile and wireless applications successfully.

Keeping in view of the users’ needs some features like J2ME’s connectivity with network and enterprise resources had also been explained in the best of the possible ways. Topics like how and with which technology to connect the enterprise with the J2ME space along with its consequences had also been taken into account. J2ME ‘s network connectivity, usage of MIDlet to read HTML pages, establishment of HTTP based connections etc are some of the topics which reflects authors’ sincere effort.

The information related to Socket-based connection as well as Datagram-based connection is of great use to the developers. Java2, Micro Edition gives an in-depth coverage of J2ME runtime environment providing detailed discussion of Java Virtual Machine, CLDC as well as CDC -Compliant Virtual Machines etc. Also covered are design considerations when building software for resource-constrained devices as well as J2ME competition and associated technologies in these devices.

This book proves its worth by capturing every detail of J2ME from basic features to development of large applications in an efficient manner. Maintaining its simple flow and easy readability this book goes a long way in explaining the J2ME technology. Overall this book can be considered to be a guide that will serve as an introduction to J2ME technology, as well as a reference to more complex issues surrounding mobile/wireless computing.

 Table of Contents

PART 1: Developing with J2ME

    1. Chapter 1: Introduction

      • So what is J2ME anyway?
      • What is a small device?
      • J2ME’s role in wireless and mobile applications
      • The Java 2 edition triology
      • The case for Java
      • Origins of J2ME
      • The J2ME community
      • J2ME products and alternatives
      • Summary

    1. Chapter 2: J2ME Architecture

      • Goals of the J2ME architecture
      • Accommodating opposing needs
      • Configurations : a closer look
      • Profiles : a closer look
      • Choosing a J2ME profile
      • Write once, run anywhere issues
      • Runtime environment
      • Designing J2ME applications
      • Summary

    1. Chapter 3: Developing a J2ME Application

      • Investment quote application requirements
      • Designing the investment quote application
      • Developing J2ME applications
      • Investment quote application tour guide
      • Summary

PART 2: Developing for Cellular Phones & Pagers

    1. Chapter 4: A Simple MIDP applications

      • Questions about the MIDP development environment
      • Developing MIDP applications
      • Summary

    1. Chapter 5: MIDP User Interface

      • MIDP application control
      • The investment quote application control in MIDP
      • Two types of MIDP user interface and event handling
      • The MIDP user interface API
      • Handling user interactions in MIDP
      • MIDlets on other devices
      • Summary

    1. Chapter 6: MIDP Data Storage

      • JDBC parallel
      • Storage structure
      • RMS API
      • Persistent storage in the investment quote application
      • Summary

    1. Chapter 7: Connecting to the Internet

      • Micro edition package connectivity
      • Similar but smaller I/O package
      • Implementing the Internet investment quote service
      • Summary

PART 3: Developing for PDAs

    1. Chapter 8: J2ME on PDA – KJava Introduction

      • PDA profile alternatives
      • HiSmallWorld in KJava
      • Deploying to the actual device
      • HiSmallWorld revisited using MIDP for Palm OS
      • Summary

    1. Chapter 9: KJava User Interface

      • KJava application control
      • The investment quote application control in KJava
      • KJava User interface
      • The investment quote application’s user interface in KJava
      • Handling user interactions in KJava
      • Handling the events of the investment quote application in KJava
      • Summary

    1. Chapter 10: KJava Data Storage

      • Palm OS databases
      • KJava database API
      • Implementing the investment quote persistent storage in KJava
      • Revisiting the connection to the Internet
      • Accessing Palm OS application databases
      • Summary

PART 4: Developing for Enterprise: Beyond Specifications

    1. Chapter 11: Real-World Design

      • Dealing with stakeholders
      • A development scenario
      • Guidelines for building J2ME applications
      • Architectural tools and techniques
      • Summary

    1. Chapter 12: Integrating Server

      • Examining server integration
      • What technology to connect to?
      • Servlet examples
      • XML
      • XML using JSP’s examples
      • Summary

    1. Chapter 13: The network connection

      • About the Generic Connection Framework
      • Using the Generic Connection Framework
      • HTTP-based connections
      • Socket-based connections
      • Datagram-based connections
      • Summary

    1. Chapter 14: J2ME runtime environment

      • The Java runtime environment
      • The J2ME runtime environment
      • CLDC-compliant virtual machines (the KVM)
      • CDC-compliant virtual machines (the CVM)
      • Summary

    1. Chapter 15: Related technologies

      • J2ME implementations
      • The other Sun specifications
      • Non-J2ME alternatives
      • Related Java technologies
      • Non-Java alternatives
      • Data storage and synchronization
      • J2ME supplementary technology
      • Summary

A J2ME development tools

B J2ME resources

C Java and J2ME history
C.1 Oak and the Green Project
C.2 Java and the Internet
C.3 Evolution of Java
C.4 Origins of J2ME

D J2ME Wireless Toolkit
D.1 Downloading the Wireless Toolkit
D.2 Installing the J2ME Wireless Toolkit
D.3 Hello World project revisited
D.4 Summary


 Overview of Chapters

PART 1: Developing with J2ME

    1. Chapter 1: Introduction

      • What is J2ME?
      • Where is J2ME being applied?
      • What is a small Device?
      • What is J2ME’s role in Wireless and mobile Applications?
      • What are the various Editions of JAVA 2 Version?
      • What Java has to offer to developers of software for consumer electronics and embedded devices.

    1. Chapter 2: J2ME Architecture

      • What are the key goals driving the J2ME architecture.
      • How J2ME architecture supports a wide range of devices with different features without limitations on any specific device.
      • The J2ME Architecture.
      • What are J2ME Profiles and how they extend J2ME Configurations?
      • How to choose a correct J2ME Profile.
      • The J2ME Runtime Environment.
      • How to design J2ME Applications.

    1. Chapter 3: Developing a J2ME Application

      • How to establish the formal requirements so as to have the minimal set of blueprints to develop the application.
      • The Investment Quote Application Requirements.
      • How to design the Investment Quote Application.
      • The User Interface Design.
      • The Investment Quote Application Tour Guide.

PART 2: Developing for Cellular Phones and Pagers.

    1. Chapter 4: A Simple MIDP Application.

      • How to create a J2ME application using the Mobile Information Device Profile.
      • What are the different devices on which the MIDP can run.
      • To study the lifecycle of developing a complete application and deploying it to a device.
      • Developing MIDP Applications.
      • What is MIDlet?
      • How to compile, preverify and then run the application.
      • How to learn some Trouble shooting aspects.
      • How multiple MIDlets can be grouped and deployed as a unit using a MIDlet suite.
      • How can you access a MIDlet using a web server?

    1. Chapter 5: MIDP User Interface.

      • How Application Control and Infrastructure is provided by MIDP.
      • The Investment Quote Application Control in MIDP.
      • Types of MIDP user interface and Event Handling.
      • The MIDP User Interface API.
      • How to access the Device screen in MIDP.
      • The Investment Quote application’s User Interface in MIDP.
      • How to handle User interactions in MIDP.

    1. Chapter 6: MIDP Data Storage

      • The Persistent mechanism in MIDP.
      • How MIDP provides the means to access and process the data on various devices.
      • The JAVA storage structure.
      • Understanding the MIDP Record Management system and its structure.
      • How to implement the knowledge of MIDP Record Management system to an application.
      • How to store as well as retrieve various quotes.

    1. Chapter 7: Connecting to Internet

      • How to make the MIDP applications wireless.
      • The Generic Connection Framework in J2ME.
      • How to use a connector class to open a channel.
      • The package in J2ME.
      • The similarities between the package in J2ME and J2SE.
      • Various Streams and subclasses of Streams in J2ME.
      • How to use streams in conjunction with the Connector class in J2ME.
      • How to read/write character streams with the Reader and Writer abstract super classes in J2ME.

PART 3: Developing for PDAs

    1. Chapter 8: J2ME on a PDA, a KJava Introduction

      • How to build and deploy a simple J2ME application for Palm OS devices using KJava.
      • The JAVA PDA development environments.
      • What is KJava?
      • What are the various functionalities provided by KJava.
      • What is the significance of MIDP for Palm OS?
      • How to build a simple application exploring the KJava environment.

    1. Chapter 9: KJava User Interface

      • The KJava application control.
      • What is the significance of Spotlet in KJava application?
      • How to utilize the user interface environment and widget set provided by KJava.
      • How to draw to the display with the graphics object.
      • What are the various interactive graphical elements available in the KJava User Interface API?
      • What are the various collection classes in KJava.
      • How to use the KJava user interface API in some practical applications.
      • How to handle events in KJava.

    1. Chapter 10: KJava data storage

      • How to create and utilize the Palm OS databases through the KJava APIs.
      • The Generic Connection Framework available across the various APIs in J2ME.
      • What is A Palm OS database and how information is being accessed and updated on it.
      • The KJava Database API and the classes provided by it.
      • How do the KJava’s database classes allow KJava applications access to them?
      • How to open, create and access the database.
      • How to access the Palm OS application database using the KJAva database wrapper class.

PART 4: Developing for the enterprise beyond the specifications.

    1. Chapter 11: Real-world design

      • How to deal with the real-world issues while building the J2ME and JAVA applications.
      • How to deal with stakeholders.
      • How to get the stakeholder familiar with the devices early.
      • What are the various guidelines for building the J2ME applications?
      • What are the various architectural characteristics and constraints of building J2ME applications?
      • How to employ various architectural tools and techniques to facilitate the development of mobile and wireless applications successfully and consistently.

    1. Chapter 12: Integrating the server

      • How to develop J2ME applications that connect to network and enterprise resources.
      • Concepts of using Java Servlets and JavaServer Pages along with the ability to transfer information in an XML format.
      • How to take some important decisions like how applications will be put together.
      • How and with which technology to connect the enterprise with the J2ME space.
      • The Extensible Markup Language (XML).
      • How to use XML and how to handle the XML data.
      • What are the consequences of using XML in J2ME applications?
      • How to utilize XML by providing an XML-based Internet portal for mobile and wireless clients.

    1. Chapter 13: The network Connection

      • How to provide network connectivity to the J2ME devices.
      • How the Generic Connection Framework provides the foundation for all network communications within the J2ME architecture.
      • How to use a MIDlet to read a page of HTML from a website and display the title of the document in a Form.
      • How to establish and then use the HTTP based connections.
      • How to use Socket-based connection to communicate between two systems.
      • How to use Datagram-based connection to communicate between two systems.

    1. Chapter 14: J2ME runtime environment

      • The concept of Java Virtual Machine (JVM).
      • The Java runtime environment.
      • The J2ME runtime environment.
      • The CLDC-Compliant Virtual Machines (The KVM).
      • What are the key design features for the KVM implementation?
      • The CDC-Compliant Virtual Machines (The CVM).

    1. Chapter 15: Related Technologies

    • What are some other J2ME related supporting technologies and products.
    • What are the various implementations of several J2ME specifications?
    • What are the various SUN implementations?
    • What are the various non-J2ME Java platforms available for developing an application?
    • What are the various Java as well as non-Java specifications used to guide application development.
    • How and where to store the information data while dealing with mobile and wireless applications.
    • How to keep the information synchronized when the data is on multiple devices.