The CLDC is the result of a Java Community Process expert
group JSR-139 consisting of a number of industrial partners. See links for details.
The main goal of the CLDC Specification is to standardize a highly portable minimum-footprint
Java application development platform for resource-constrained, connected devices.
| MIDP | |
| CLDC | Libraries |
| KVM | |
| Host Operating System | |
CLDC is core technology designed to be the basis for one or more profiles. CLDC defines a minimal subset of functionality from the J2SE platform. Hence, the CLDC does not define
device-specific functionality in
any way but instead defines the basic Java libraries and functionality available from the Kilo Virtual Machine (KVM). The KVM got its name because it includes such
a small subset of the J2SE JVM that its size can be measured in kilobytes.
It is important to note that the CLDC does not define any optional features. Hence, developers
are sure their applications will work on any device with a compliant CLDC implementation.
Two versions of the CLDC have been defined, version 1.0 and version 1.1. CLDC 1.1 adds a few new features over CLDC 1.0. Floating point support is the most important feature added. Several minor bugfixes have also been added. CLDC 1.1 is intended to be backwards compatible with version 1.0. Developers should note that the minimum memory requirement has been raised from 160 KB in version 1.0 to 192 KB in version 1.1 due to the added floating point support.
CLDC 1.1 consists of the following Java packages.
| Package | Provides |
|---|---|
| java.io | Provides classes for input and output through data streams. |
| java.lang | Provides classes that are fundamental to the Java programming language. |
| java.lang.ref | Provides support for weak references. |
| java.util | Contains the collection classes, and the date and time facilities. |
| javax.microedition.io | Classes for the Generic Connection Framework (GCF). |
Observe that GUI-libraries and the java.net library are unavailable. Java.io provides basic input and output streams but not file streams or other libraries for
persistent
storage.
User interfaces, networking support and persistent storage are addressed by the MIDP.
The security model of the CLDC is defined at three different levels, low-level security, application-level security and end-to-end security.
Low-level security ensures that the application is valid according to the Java programming language. It also ensures that an invalid coded class file does not harm
the target device.
Application-level security means that the application will run in the CLDC sandbox-model. The application should only access the resources and libraries permitted by the
Java application environment.
End-to-end security is outside the scope of the CLDC specification and should be addressed by J2ME-profiles. Hence, no end-to-end security is available through the CLDC.
One does not usually develop programs based solely on the packages provided by the CLDC since they only provide the most basic functionality from J2SE. Downloading a java program based solely on the CLDC to a cellular phone would actually be impossible. These devices only support applications based on MIDP, which implies the use of CLDC. Hence, we use the CLDC and MIDP in combination.
Specifications, APIs and other CLDC-related information can be found at:
http://java.sun.com/products/cldc/
This page was last updated 14. Jul. 2006
Comments and feedback are highly appreciated.
You can reach me at: klings (at) nowires (dot) org