Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Connected Limited Device Configuration
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
The '''Connected Limited Device Configuration''' ('''CLDC''') is a specification of a [[Software framework|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 phone]]s.<ref name="overview">CLDC Overview http://java.sun.com/javame/technology/cldc/overview.jsp</ref> The CLDC was developed under the [[Java Community Process]] as [[Java Specification Request|JSR]] 30<ref name="jsr30">JSR 30, CLDC 1.0 http://www.jcp.org/en/jsr/detail?id=30</ref> (CLDC 1.0) and JSR 139<ref name="jsr139">JSR 139, CLDC 1.1 http://www.jcp.org/en/jsr/detail?id=139</ref> (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:<ref name="overview" /> * 16-[[bit]] or 32-bit [[Central processing unit|CPU]] with a clock speed of 16 [[MHz]] or higher * At least 160 [[kilobyte|KB]] [[Read only memory|ROM]] allocated for the CLDC libraries and virtual machine * At least 8 [[kilobyte|KB]] total [[Random Access Memory|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 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 <code>Serializable</code> interface, which does not appear in the base class library due to restrictions on reflection usage. All <code>java.lang.*</code> classes which normally implement <code>Serializable</code> do not, therefore, implement this [[Marker interface pattern|tagging interface]]. Other examples of limitations depend on the version being used, as some features were re-introduced with version 1.1 of CLDC.<ref>J2ME APIs: Which APIs come from the J2SE Platform? http://developers.sun.com/mobility/midp/articles/api/</ref> ===CLDC 1.0 and 1.1=== * The <code>Serializable</code> interface is not supported. * Parts of the reflection capabilities of the Java standard edition: ** The <code>[http://java.sun.com/javase/6/docs/api/java/lang/reflect/package-summary.html java.lang.reflect]</code> [[Java package|package]] and any of its classes not supported. ** Methods on <code>[http://java.sun.com/javase/6/docs/api/java/lang/Class.html java.lang.Class]</code> which obtain Constructors or Methods or Fields. * No finalization. CLDC does not include the <code>Object.finalize()</code> method. * Limited error handling. Non-runtime errors are handled by terminating the application or resetting the device. * 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.<ref name="profiles">Summary of CLDC-Based Profiles http://developers.sun.com/mobility/midp/ttips/cldc/</ref> ===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<ref name="jsr37">JSR 37, MIDP 1.0 http://www.jcp.org/en/jsr/detail?id=37</ref><ref>MIDP 1.0 API http://java.sun.com/javame/reference/apis/jsr037/</ref> (MIDP 1.0) and JSR 118<ref name="jsr118">JSR 118, MIDP 2.0 http://www.jcp.org/en/jsr/detail?id=118</ref><ref>MIDP 2.0 API http://java.sun.com/javame/reference/apis/jsr118/</ref> (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 [[Midlet|MIDlets]]. Many cell phones come with a MIDP implementation, and it is a popular platform for downloadable cell phone games.<ref>pocketgamer.co.uk mobile platforms feature http://www.pocketgamer.co.uk/r/Mobile/feature.asp?c=1266</ref> === Information Module Profile === The '''Information Module Profile''' is specified in JSR 195<ref name="jsr195">JSR 195, Information Module Profile http://www.jcp.org/en/jsr/detail?id=195</ref> and is designed for [[vending 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]] 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,<ref name="jsr242">JSR 242, Digital Set Top Box Profile http://www.jcp.org/en/jsr/detail?id=242</ref> 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 [[Connected Device Configuration#Personal Basis Profile|CDC Personal Basis Profile]] including support for [[Abstract Window Toolkit|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.<ref name="profiles" /> ==Optional Packages== The [[Personal digital assistant|PDA]] Optional Packages are specified in [[JSR-75]]<ref name="jsr75">JSR 75, PDA Optional Packages http://www.jcp.org/en/jsr/detail?id=75</ref> and are designed for PDAs such as [[Palm, Inc.|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: * '''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== ; <code>[http://java.sun.com/javase/6/docs/api/java/io/package-summary.html java.io]</code>: A streamlined version of the java.io package found in the standard edition for doing Input/Output operations. ; <code>[http://java.sun.com/javase/6/docs/api/java/lang/package-summary.html java.lang]</code>: 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. ; <code>[http://java.sun.com/javase/6/docs/api/java/util/package-summary.html java.util]</code>: A streamlined version of the <code>java.util</code> collection library. This package contains the collection classes like [[Euclidean vector|Vector]] and [[Hashtable]]. It also contains calendar and date class. ==See also== * [[Connected Device Configuration]] or ''CDC'', another framework for building Java ME applications ==References== {{Reflist}} ==External links== * [http://www.oracle.com/technetwork/java/cldc-141990.html CLDC homepage] * [http://www.e-s-r.net/ ESR Consortium] * [https://web.archive.org/web/20070928000418/http://www.prosyst.com/products/osgi_se_cldc_ed OSGi-based CLDC-framework] [[Category:Java device platform]] [[Category:Java specification requests]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Reflist
(
edit
)