July 19, 2011, 8:19 p.m.
posted by barateon
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:
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."