Klings.NoWires.J2ME()

Home

J2ME CDC CLDC MIDP 1.0 MIDP 2.0 MIDlets JABWT

Bluetooth

BTBrowser BTBenchmark KlingsLib

Code Structure Inquiry Service
search
RFCOMM Pitfalls Service record usage Service record manipulation

Devices Developers

Tools Rococo IDEs WTK NDS Antenna

How-To Bluez OBEX Eclipse NetBeans JBuilder WAP

About me

Connected Limited Device Configuration (CLDC)

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.

Position in the J2ME architecture

MIDP
CLDC Libraries
KVM
Host Operating System

What is it?

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.

CLDC versions and requirements

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.

What does it provide?

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).

What does it not provide

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.

Security

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.

How do we use it?

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.

More information

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