Jump to content

Connected Limited Device Configuration

From Alfawiki
Connected Limited Device Configuration (CLDC)
Company typeSpecification
IndustrySoftware, Embedded systems

The Connected Limited Device Configuration (CLDC) represents a framework specification tailored for Java ME applications, outlining the fundamental libraries and virtual machine functionalities essential for implementation. When combined with one or more profiles, CLDC establishes a development platform suited for embedded devices possessing restricted resources, such as pagers and mobile phones. The CLDC specification was created via the Java Community Process as JSR 30 (CLDC 1.0) and JSR 139 (CLDC 1.1).

Typical requirements

CLDC is aimed at devices characterized by limited processing power, memory, and graphic capabilities, commonly including:

  • A 16- or 32-bit CPU operating at 16 MHz or above
  • At least 160 KB of ROM allocated for CLDC libraries and the virtual machine
  • A minimum of 8 KB total RAM accessible to the Java platform
  • Low energy consumption, frequently powered by batteries
  • Network connectivity that is often wireless, intermittent, and constrained in bandwidth

Noteworthy limitations

In contrast to the Java SE environment, CLDC excludes certain APIs and alters others, necessitating deliberate modifications in application code. For instance, the Serializable interface is not included due to restrictions on reflection; thus, all java.lang.* classes that typically implement Serializable do not do so within CLDC.

These constraints differ between versions, with some functionalities reintroduced in CLDC 1.1.

CLDC 1.0 and 1.1

  • Absence of support for the Serializable interface
  • Restricted reflection features:
    • The java.lang.reflect package along with its classes are unsupported
    • Methods within java.lang.Class for accessing Constructors, Methods, or Fields are unavailable
  • Finalization is not supported; Object.finalize() is omitted
  • Error handling is limited—errors outside runtime exceptions generally result in application termination or device reset
  • Custom class loaders are not permitted
  • Thread groups and daemon threads are excluded

Profiles

Within the CLDC framework, a profile constitutes a collection of APIs designed to support devices with diverse capabilities, providing a comprehensive Java application environment. Profiles cater to devices ranging from vending machines to set-top boxes, with the mobile phone profile MIDP being the most extensively used.

Mobile Information Device Profile

The Mobile Information Device Profile targets mobile phones and exists in two versions: JSR 37 (MIDP 1.0) and JSR 118 (MIDP 2.0). Both versions provide an LCD-focused GUI API; MIDP 2.0 additionally introduces a basic 2D gaming API. Applications created using this profile are known as MIDlets. MIDP enjoys widespread adoption in mobile phones and serves as a principal platform for downloadable mobile games.

Information Module Profile

The Information Module Profile (JSR 195) is intended for devices such as vending machines, network interface cards, routers, and telephone booths that feature minimal or no display but possess limited bidirectional network connectivity. This profile defines APIs for application development, data storage, and network communication—comprising subsets of javax.microedition.io, rms, and midlet packages derived from MIDP. Siemens Mobile and Nokia were contributors to this specification.

DoJa Profile

The DoJa profile was created specifically for the i-mode mobile phone system by NTT DoCoMo.

Digital Set Top Box Profile

Known as OnRamp and formally designated as JSR 242, the Digital Set Top Box profile is designed for the cable television sector. It derives from a subset of the OpenCable Application Platform (OCAP) and offers APIs tailored for set-top boxes and related equipment. This includes selected components from the CDC Personal Basis Profile, which supports AWT, Xlet, file system access, networking APIs, and media functionalities provided by OCAP. The profile encompasses 31 Java packages and approximately 1500 APIs.

Optional Packages

The PDA Optional Packages (JSR-75) are intended for personal digital assistants such as those running on Palm and Windows CE. It specifies two main packages:

  • Personal Information Management (PIM), which grants access to contacts, calendars, and task lists.
  • FileConnection (FC), which facilitates interaction with file systems and removable media like external memory cards.

General APIs

java.io
A condensed variant of the standard java.io package, supporting Input/Output operations.
java.lang
Comprises fundamental Java classes including core types such as Integer and String, basic exceptions, mathematical functions, system utilities, threading, and security features.
java.util
A streamlined edition of the java.util collection framework, incorporating classes like Vector and Hashtable, along with calendar and date utilities.

See also

External links