Chapter 1. Java 2, Micro Edition: Configurations, Profiles, and Virtual Machines

This chapter discusses the J2ME standard and how it relates to PDAs.

J2ME is defined in terms of configurations and profiles. A configuration is a building block for basic functionality, whereas a profile builds on top of an existing configuration. Thus, a profile provides richer functionality that exploits the capabilities of the target device. Additionally, optional packages can be defined on top of profiles and configurations.

Figure 1.1 shows how configurations, profiles, and optional packages relate to each other. Each configuration may support one or more profiles. A configuration and a profile can have one or more optional packages.

Figure 1.1. Optional packages, profiles, and configurations in J2ME


There are two configurations currently defined in J2ME: the Connected Limited Device Configuration (CLDC) and the Connected Device Configuration (CDC). The CDC is intended for high-end PDAs, as well as other devices that have robust network connections and are reasonably powerful. The CLDC is intended for lower-end PDAs with intermittent network connections and are memory- and CPU-constrained.

Figure 1.2 shows the profiles defined for CDC and CLDC. The Personal Profile builds on the Foundation and Personal Basis profiles, which are supported by the CDC. The Mobile Information Device (MID) Profile extends the CLDC. In addition to the MID Profile, the optional packages Personal Information Management (PIM) and FileConnection also extend CLDC. The MID Profile, the PIM package, and the FileConnection package can be implemented independently on top of CLDC, and all three can coexist. These configurations, profiles, and optional packages are covered in more detail in subsequent sections.

Figure 1.2. Profiles for CDC and CLDC