Background and Goals
A general goal for designing the libraries for the Connected,
Limited Device Configuration was to provide a minimum useful set of libraries
for practical application development and profile definition for a variety of
small devices. As explained earlier in Section 3.1, "High-Level
Goals," CLDC is a "lowest common denominator" standard that includes only
minimal Java platform features and APIs for a wide range of consumer devices.
Given the strict memory constraints and differing features of today's small
devices, it is virtually impossible to come up with a set of libraries that
would be ideal for all devices. No matter where the bar for feature inclusion is
set, the bar is inevitably going to be too low for some devices and users, and
too high for many others.
To ensure upward compatibility with the larger editions of the
Java 2 Platform, the majority of the libraries included in CLDC are a subset of
Java 2 Standard Edition (J2SE) and Java 2 Enterprise Edition (J2EE). While
upward compatibility is a very desirable goal, J2SE and J2EE libraries have
strong internal dependencies that make subsetting them difficult in important
areas such as security, input/output, user interface definition, networking, and
storage. These dependencies are a natural consequence of design evolution and
reuse that has taken place during the development of the libraries over time.
Unfortunately, these dependencies make it difficult to take just one part of the
libraries without including several others. For this reason, some of them have
been redesigned, especially in the area of networking.
The libraries defined by the CLDC Specification can
be divided broadly into two categories:
-
those classes that are a subset of standard J2SE libraries,
and
-
those classes that are specific to CLDC (but that can be mapped
onto J2SE).
Classes belonging to the former category are located in
packages java.lang, java.util, and java.io. These
classes have been derived from Java 2 Standard Edition version 1.3.1. A list of
these classes is presented in Section 5.2, "Classes
Derived from Java 2 Standard Edition."
Classes belonging to the latter category are located in package
javax.microedition. These classes are discussed in Section 5.3, "CLDC-Specific
Classes."