The Connected Limited Device Configuration (CLDC) is a specification of a framework for Java ME applications describing the basic set of libraries and virtual-machine features that must be present in an implementation. The CLDC is combined with one or more profiles to give developers a platform for building applications on embedded devices with very limited resources such as pagers and mobile phones. The CLDC was developed under the Java Community Process as JSR 30 (CLDC 1.0) and JSR 139 (CLDC 1.1).
CLDC is designed for devices that have limited processing power, memory, and graphical capability. Devices typically have the following features:
Compared to the Java SE environment, several APIs are absent entirely, and some APIs are altered such that code requires explicit changes to support CLDC. In particular, certain changes aren't just the absence of classes or interfaces, but actually change the signatures of existing classes in the base class library. An example of this is the absence of the Serializable
interface, which does not appear in the base class library due to restrictions on reflection usage. All java.lang.*
classes which normally implement Serializable
do not, therefore, implement this tagging interface.
Other examples of limitations depend on the version being used, as some features were re-introduced with version 1.1 of CLDC.
A profile is a set of APIs that support devices with different capabilities and resources within the CLDC framework to provide a complete Java application environment. There are specific profiles for devices ranging from vending machines to set-top boxes, with the mobile phone profile MIDP being the most prevalent.
The Mobile Information Device Profile is a profile designed for cell phones. There are two versions of MIDP available, specified in JSR 37 (MIDP 1.0) and JSR 118 (MIDP 2.0). Both versions provide an LCD oriented GUI API, with MIDP 2.0 including a basic 2D gaming API. Applications written to use this profile are called MIDlets. Many cell phones come with a MIDP implementation, and it is a popular platform for downloadable cell phone games.