Connected Limited Device Configuration
Encyclopedia
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 pager
s and mobile phone
s. The CLDC was developed under the Java Community Process
as JSR 30 (CLDC 1.0) and JSR 139 (CLDC 1.1).
Other examples of limitations depend on the version being used, as some features were re-introduced with version 1.1 of CLDC.
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.
s, network cards, routers, telephone boxes and other systems with either simple or no display and some form of limited two way network access. Only APIs for application creation, storage, and network access are defined. These are a subset of the javax.microedition.io, rms and midlet packages in MIDP. Siemens mobile and Nokia
put forward this specification to the JCP.
profile was designed for DoCoMo
's i-mode
mobile phone
by NTT DoCoMo
.
, Xlet
, file access, and network APIs, as well as several media-related interfaces from OCAP. The whole profile encompassed 31 Java packages and approximately 1500 APIs.
Optional Packages are specified in JSR-75 and are designed for PDAs such as Palm
or Windows CE
devices.
The specification defines two independent packages that represent important features found on many PDAs and other mobile devices. These packages are:
Software framework
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software...
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 pager
Pager
A pager is a simple personal telecommunications device for short messages. A one-way numeric pager can only receive a message consisting of a few digits, typically a phone number that the user is then requested to call...
s and mobile phone
Mobile phone
A mobile phone is a device which can make and receive telephone calls over a radio link whilst moving around a wide geographic area. It does so by connecting to a cellular network provided by a mobile network operator...
s. The CLDC was developed under the Java Community Process
Java Community Process
The Java Community Process or JCP, established in 1998, is a formalized process that allows interested parties to get involved in the definition of future versions and features of the Java platform....
as JSR 30 (CLDC 1.0) and JSR 139 (CLDC 1.1).
Typical requirements
CLDC is designed for devices that have limited processing power, memory, and graphical capability. Devices typically have the following features:- 16-bitBitA bit is the basic unit of information in computing and telecommunications; it is the amount of information stored by a digital device or other physical system that exists in one of two possible distinct states...
or 32-bit CPUCentral processing unitThe central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...
with a clock speed of 16 MHz or higher - At least 160 KBKilobyteThe kilobyte is a multiple of the unit byte for digital information. Although the prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 bytes or 1000 bytes, dependent upon context, in the fields of computer science and information...
ROM allocated for the CLDC libraries and virtual machine - At least 192 KBKilobyteThe kilobyte is a multiple of the unit byte for digital information. Although the prefix kilo- means 1000, the term kilobyte and symbol KB have historically been used to refer to either 1024 bytes or 1000 bytes, dependent upon context, in the fields of computer science and information...
total RAM available to the Java platform - Low power consumption, often operating on battery power
- Connectivity to some kind of network, often with a wireless, intermittent connection and limited bandwidth
Noteworthy limitations
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 theSerializable
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.
CLDC 1.0 and 1.1
- The
Serializable
interface is not supported. - Parts of the reflection capabilities of the Java standard edition:
- The
java.lang.reflect
package and any of its classes not supported. - Methods on
java.lang.Class
which obtain Constructors or Methods or Fields.
- The
- No finalization. CLDC does not include the
Object.finalize
method. - Limited error handling. Non-runtime errors are handled by terminating the application or resetting the device.
- No Java Native Interface (JNI)
- No user-defined class loaders
- No thread groups or daemon threads.
Profiles
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.Mobile Information Device Profile
The Mobile Information Device ProfileMobile Information Device Profile
Mobile Information Device Profile is a specification published for the use of Java on embedded devices such as mobile phones and PDAs. MIDP is part of the Java Platform, Micro Edition framework and sits on top of Connected Limited Device Configuration , a set of lower level programming...
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
MIDlet
A MIDlet is an application that uses the Mobile Information Device Profile of the Connected Limited Device Configuration for the Java ME environment...
. Many cell phones come with a MIDP implementation, and it is a popular platform for downloadable cell phone games.
Information Module Profile
The Information Module Profile is specified in JSR 195 and is designed for vending machineVending machine
A vending machine is a machine which dispenses items such as snacks, beverages, alcohol, cigarettes, lottery tickets, consumer products and even gold and gems to customers automatically, after the customer inserts currency or credit into the machine....
s, network cards, routers, telephone boxes and other systems with either simple or no display and some form of limited two way network access. Only APIs for application creation, storage, and network access are defined. These are a subset of the javax.microedition.io, rms and midlet packages in MIDP. Siemens mobile and Nokia
Nokia
Nokia Corporation is a Finnish multinational communications corporation that is headquartered in Keilaniemi, Espoo, a city neighbouring Finland's capital Helsinki...
put forward this specification to the JCP.
DoJa Profile
The DoJaDoja
DoJa profile is a Java application environment specification for DoCoMo's i-mode mobile phone.DoJa is based on the Java ME CLDC API that is defined in the Java Community Process...
profile was designed for DoCoMo
NTT DoCoMo
is the predominant mobile phone operator in Japan. The name is officially an abbreviation of the phrase, "do communications over the mobile network", and is also from a compound word dokomo, meaning "everywhere" in Japanese. Docomo provides phone, video phone , i-mode , and mail services...
's i-mode
I-mode
NTT DoCoMo's i-mode is a mobile internet service popular in Japan. Unlike Wireless Application Protocol, i-mode encompasses a wider variety of internet standards, including web access, e-mail and the packet-switched network that delivers the data...
mobile phone
Mobile phone
A mobile phone is a device which can make and receive telephone calls over a radio link whilst moving around a wide geographic area. It does so by connecting to a cellular network provided by a mobile network operator...
by NTT DoCoMo
NTT DoCoMo
is the predominant mobile phone operator in Japan. The name is officially an abbreviation of the phrase, "do communications over the mobile network", and is also from a compound word dokomo, meaning "everywhere" in Japanese. Docomo provides phone, video phone , i-mode , and mail services...
.
Digital Set Top Box Profile
The Digital Set Top Box profile, specified in JSR 242, is designed for the cable market. Also referred to as OnRamp, this profile is based on a subset of the Open Cable Application Platform (OCAP), which defines a set of APIs for the development of applications for set-top boxes and similar devices. The profile consists of subsets from the CDC Personal Basis Profile including support for AWTAbstract Window Toolkit
The Abstract Window Toolkit is Java's original platform-independent windowing, graphics, and user-interface widget toolkit. The AWT is now part of the Java Foundation Classes — the standard API for providing a graphical user interface for a Java program.AWT is also the GUI toolkit for a...
, Xlet
Xlet
An Xlet is very similar to a Java applet and is originally introduced in Sun's Java TV specification to support applications for Digital TV. Though Xlet looks superficially different from other application models in Java such as applet and MIDlet, it is actually meant to be a generalization of such...
, file access, and network APIs, as well as several media-related interfaces from OCAP. The whole profile encompassed 31 Java packages and approximately 1500 APIs.
Optional Packages
The PDAPDA
A PDA is most commonly a Personal digital assistant, also known as a Personal data assistant, a mobile electronic device.PDA may also refer to:In science, medicine and technology:...
Optional Packages are specified in JSR-75 and are designed for PDAs such as Palm
Palm, Inc.
Palm, Inc., was a smartphone manufacturer headquartered in Sunnyvale, California, that was responsible for products such as the Pre and Pixi as well as the Treo and Centro smartphones. Previous product lines include the PalmPilot, Palm III, Palm V, Palm VII, Zire and Tungsten. While their older...
or Windows CE
Windows CE
Microsoft Windows CE is an operating system developed by Microsoft for embedded systems. Windows CE is a distinct operating system and kernel, rather than a trimmed-down version of desktop Windows...
devices.
The specification defines two independent packages that represent important features found on many PDAs and other mobile devices. These packages are:
- Personal Information Management (PIM) which gives devices access to personal information management data contained in address books, calendars, and to-do lists.
- FileConnection (FC) which allows access to file systems and removable storage devices, such as external memory cards.
General APIs
java.io
: A streamlined version of the java.io package found in the standard edition for doing Input/Output operations.java.lang
: Contains classes that are essential to the Java language. This package contains standard java types like Integers and Strings as well as basic exceptions, math functions, system functions, threading and security functions.java.util
: A streamlined version of the java.util
collection library. This package contains the collection classes like Vector and Hashtable. It also contains calendar and date class.See also
- Connected Device ConfigurationConnected Device ConfigurationThe Connected Device Configuration 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 CDC is combined with one or more profiles to give developers a platform for building...
– or CDC, another framework for building Java ME applications.