Connected Device Configuration

From HandWiki

The Connected Device Configuration (CDC) 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 applications on embedded devices ranging from pagers up to set-top boxes.[1] The CDC was developed under the Java Community Process as JSR 36[2] (CDC 1.0.2) and JSR 218[3] (CDC 1.1.2).

Typical requirements

Devices that support CDC typically include a 32-bit CPU with about 2 MB of RAM, and 2.5 MB of ROM available for the Java application environment. The reference implementations for CDC profiles are based on Linux running on an Intel-compatible PC, and optimized implementations are available for a variety of other CPUs and operating systems.[1]


A profile is a set of APIs that support devices with different capabilities and resources within the CDC framework to provide a complete Java application environment. Three profiles are available, which build on each other incrementally and allow application developers to choose the appropriate programming model for a particular device.

Foundation Profile

This is the most basic of the CDC family of profiles. Foundation Profile is a set of Java APIs tuned for low-footprint devices that have limited resources that do not need a graphical user interface system.[4] It provides a complete Java ME application environment for consumer products and embedded devices but without a standards-based GUI system. Version 1.1.2 is specified in JSR 219[5] and implements a subset of Java SE 1.4.2, including a set of security-related optional packages, such as Java Authentication and Authorization Service (JAAS), Java Secure Socket Extension (JSSE), and Java Cryptography Extension (JCE).

Personal Basis Profile

The Personal Basis Profile provides a superset of the Foundation Profile APIs and supports a similar set of devices, with lightweight graphical user interface requirements.[6] A framework for building lightweight graphical user interface components is provided with support for some AWT classes. There are no heavyweight GUI components provided because these components assume the availability of a pointing device such as a mouse. The specification is described in JSR 217[7] and is used for products that require a standards-based graphical user interface but without full AWT compatibility. The Xlet application programming model is used for application development within this profile, including advanced content on Blu-ray discs conforming to the BD-J specification.

Personal Profile

The Personal Profile extends the Personal Basis Profile with a GUI toolkit based on AWT.[8] It provides a complete Java ME application environment with full AWT support and is intended for higher end devices, such as PDAs, smart communicators, set-top boxes, game consoles, automobile dashboard electronics, and so on.[9] This is the recommended profile for porting of legacy PersonalJava-based applications. The specification is described in JSR 62[10] and uses the Applet programming model for application development.

Optional Packages

CDC supports a number of optional packages that allow developers to access specific pieces of extra functionality within the restricted resource constraints of a Java ME device.

  • The RMI Optional Package provides a subset of Java SE RMI for distributed-application and network communication.
  • The JDBC Optional Package provides a subset of the JDBC 3.0 API for accessing data sources, including spreadsheets, flat files and relational databases.

See also


  1. 1.0 1.1 CDC Overview
  2. JSR 36, CDC 1.0.2
  3. JSR 218, CDC 1.1.2
  4. Foundation Profile Overview
  5. JSR 219, Foundation Profile Specification
  6. Personal Basis Profile Overview
  7. JSR 217, Personal Basis Profile Specification
  8. Personal Profile Overview
  9. J2ME FAQ, Writing an application for the J2ME Personal Profile
  10. JSR 62, Personal Profile Specification

External links