Connected Limited Device Configuration

Last updated

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 pagers and mobile phones. [1] The CLDC was developed under the Java Community Process as JSR 30 [2] (CLDC 1.0) and JSR 139 [3] (CLDC 1.1).

Contents

Typical requirements

CLDC is designed for devices that have limited processing power, memory, and graphical capability. Devices typically have the following features: [1]

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 are not 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 the Serializable 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. [4]

CLDC 1.0 and 1.1

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. [5]

Mobile Information Device Profile

The Mobile Information Device Profile is a profile designed for cell phones. There are two versions of MIDP available, specified in JSR 37 [6] [7] (MIDP 1.0) and JSR 118 [8] [9] (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. [10]

Information Module Profile

The Information Module Profile is specified in JSR 195 [11] and is designed for vending machines, 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.

DoJa Profile

The DoJa profile was designed for the i-mode mobile phone by NTT DoCoMo.

Digital Set Top Box Profile

The Digital Set Top Box profile, specified in JSR 242, [12] is designed for the cable market. Also referred to as OnRamp, this profile is based on a subset of the OpenCable 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 AWT, 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. [5]

Optional Packages

The PDA Optional Packages are specified in JSR-75 [13] 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:

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

Related Research Articles

<span class="mw-page-title-main">OSGi</span> Open standards organisation

OSGi is an open specification and open source project under the Eclipse Foundation.

Jakarta Enterprise Beans is one of several Java APIs for modular construction of enterprise software. EJB is a server-side software component that encapsulates business logic of an application. An EJB web container provides a runtime environment for web related software components, including computer security, Java servlet lifecycle management, transaction processing, and other web services. The EJB specification is a subset of the Java EE specification.

<span class="mw-page-title-main">Jakarta EE</span> Set of specifications extending Java SE

Jakarta EE, formerly Java Platform, Enterprise Edition and Java 2 Platform, Enterprise Edition (J2EE), is a set of specifications, extending Java SE with specifications for enterprise features such as distributed computing and web services. Jakarta EE applications are run on reference runtimes, which can be microservices or application servers, which handle transactions, security, scalability, concurrency and management of the components they are deploying.

Java Platform, Micro Edition or Java ME is a computing platform for development and deployment of portable code for embedded and mobile devices. Java ME was formerly known as Java 2 Platform, Micro Edition or J2ME. As of December 22, 2006, the Java ME source code is licensed under the GNU General Public License, and is released under the project name phoneME.

Java Platform, Standard Edition is a computing platform for development and deployment of portable code for desktop and server environments. Java SE was formerly known as Java 2 Platform, Standard Edition (J2SE).

A MIDlet is an application that uses the Mobile Information Device Profile (MIDP) of the Connected Limited Device Configuration (CLDC) for the Java ME environment. Typical applications include games running on mobile devices and cell phones which have small graphical displays, simple numeric keypad interfaces and limited network access over HTTP. MIDlet can run on Android devices via the J2ME Loader emulator application.

DoJa profile is a Java application environment specification for DoCoMo's i-mode mobile phone.

Mobile Information Device Profile (MIDP) 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 (CLDC), a set of lower level programming interfaces. MIDP was developed under the Java Community Process. The first MIDP devices were launched in April 2001.

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. The CDC was developed under the Java Community Process as JSR 36 and JSR 218.

<span class="mw-page-title-main">Binary Runtime Environment for Wireless</span> Application development platform

Binary Runtime Environment for Wireless was an application development platform created by Qualcomm, originally for code division multiple access (CDMA) mobile phones, featuring third-party applications such as mobile games. It was offered in some feature phones but not in smartphones. First developed in 1999, as a platform for wireless applications on CDMA-based mobile phones, it debuted in September 2001. As a software platform that can download and run small programs for playing games, sending messages, and sharing photos, the main advantage of Brew MP was that the application developers can easily port their applications among all Brew MP devices by providing a standardized set of application programming interfaces. Software for Brew MP enabled handsets can be developed in C or C++ using the freely downloadable Brew MP software development kit (SDK). The BREW runtime library is part of the wireless device on-chip firmware or operating system to allow programmers to develop applications without needing to code for system interface or understand wireless applications. BREW is described as a pseudo operating system, but not a true mobile operating system. BREW was not a virtual machine such as Java ME, but it runs a native code.

Java APIs for Bluetooth Wireless Technology (JABWT) is a J2ME specification for APIs that allows Java MIDlets running on embedded devices such as mobile phones to use Bluetooth for short-range wireless communication. JABWT was developed as JSR-82 under the Java Community Process.

The Mobile Media API (MMAPI) is an API specification for the Java ME platform CDC and CLDC devices such as mobile phones. Depending on how it is implemented, the APIs allow applications to play and record sounds and video, and to capture still images. MMAPI was developed under the Java Community Process as JSR 135.

<span class="mw-page-title-main">Java (software platform)</span> Set of computer software and specifications

Java is a set of computer software and specifications that provides a software platform for developing application software and deploying it in a cross-platform computing environment. Java is used in a wide variety of computing platforms from embedded devices and mobile phones to enterprise servers and supercomputers. Java applets, which are less common than standalone Java applications, were commonly run in secure, sandboxed environments to provide many features of native applications through being embedded in HTML pages.

Java Application Descriptor (JAD) files describe the MIDlets that are distributed as JAR files. JAD files are commonly used to package Java applications or games that can be downloaded to mobile phones. Java applications enable mobile phones to interact functionally with online web services, such as the ability to send SMS messages via GSM mobile Internet or interact in multiplayer games. Some BlackBerry devices use JAD files for themes, while on some mobile phones without memory cards it is not possible to download any apps.

The Location API for Java ME is a compact and generic Java 2 ME API that produces information about the device's present physical location to Java applications. This API can be optionally supported by mobile phone and PDA manufacturers, with the minimum Java platform required for this API being CLDC v1.1.

PDA Optional Packages for the J2ME Platform JSR 75 is a specification that standardizes access in the Java on embedded devices such as mobile phones and PDAs to data that resides natively on mobile devices. JSR 75 is part of the Java ME framework and sits on top of CLDC, a set of lower level programming interfaces. It has 2 main components. Not all devices that claim to implement JSR 75 will implement both components.

The phoneME project is Sun Microsystems reference implementation of Java virtual machine and associated libraries of Java ME with source, licensed under the GNU General Public License.

<span class="mw-page-title-main">Nokia 2730 classic</span> 2009 cell phone model

The Nokia 2730 classic is a Nokia Quad-band GSM/UMTS 3G cell phone that includes a camera, FM radio, Bluetooth, music and video player, as well as several internet-based applications.

<span class="mw-page-title-main">Mobile 3D Graphics API</span>

The Mobile 3D Graphics API, commonly referred to as M3G, is a specification defining an API for writing Java programs that produce 3D computer graphics. It extends the capabilities of the Java ME, a version of the Java platform tailored for embedded devices such as mobile phones and PDAs. The object-oriented interface consists of 30 classes that can be used to draw complex animated three-dimensional scenes. M3G was developed under the Java Community Process as JSR 184. As of 2007, the current version of M3G is 1.1, but version 2.0 is in development as JSR 297.

<span class="mw-page-title-main">Nokia Asha platform</span> Mobile operating system

The Nokia Asha platform was a mobile operating system (OS) and computing platform designed for low-end borderline smartphones, based on software from Smarterphone which was acquired by Nokia. The platform inherits UI similarities mostly from MeeGo "Harmattan", and replaced Series 40 on Nokia's low-end devices. The user interface design team was headed by Peter Skillman, who had worked previously on webOS and the design of MeeGo for the Nokia N9.

References