Certify and Increase Opportunity.
Be
Govt. Certified Certified J2ME Programmer
Configurations and Profiles
These two are what make the Java ME (J2ME) extremely flexible and modular, but at the same time they cause lots of confusion among beginner programmers.
Configurations are targeted towards a horizontal group of devices, meaning devices that have similar memory constraints, similar user interface requirements, similar network capabilities, etc. It’s the minimum platform (VM, core java classes) that will support a relatively broad range of similar devices (e.g. low and medium end PDAs and cellphones could be placed in the same configuration because they may have similar requirements and needs as noted above). There are two current configurations: The CDC (Connected Device Configuration), for capable devices such as Symbian Communicators and high end PDAs; and CLDC (Connected Limited Device Configuration), for low end PDas and such limited devices as cell phones, pagers, and smart cards.
This website is concerned mostly with the CDC configuration.
Profiles sit on top of a configuration and will not work without the underlying configuration. Profiles target devices in a specific vertical market (e.g. MIDP profile, which is part of the CLDC configuration targets low end cellphones, while the Presonal Profile is targeted towards higher-end mopbile devices). Profiles contain the java classes that focus on specific implementations such as user interface components and record managment (ie. where and how to store persistent data).
The image below represents the relationships between the different Java ME (J2ME) configurations and profiles. Click on the respective profiles/configurations for more information. The different profiles are based upon two configuration: the CDC (Connected Device Configuration) for high end devices, and the CLDC (Connected Limited Device Configuration), for resource constrained devices like basic cell phones and pagers.
Configurations
MIDP devices support either the CLDC 1.0 or CLDC 1.1 configurations. The “Connected Limited Device Configuration” provides basic Java mechanisms like Threading and some mobile extensions like the Generic Connection Framework. The most notable extension of CLDC 1.1 is the support of floating point calculations, which need to be emulated with tools like Floater on CLDC 1.0 devices. Fortunately, CLDC 1.0 devices are quite rare in most markets nowadays.
Some MIDP devies additionally support the much more powerful CDC / “Connected Device Configuration”, which provides a nearly full blown Java Virtual Machine like Java SE 1.3.
MIDP comes in 3 different flavors:
- MIDP 1.0: The initial version is now universally and very stable supported but has little multimedia and graphical options.
- MIDP 2.0: Most phones nowadays support the MIDP 2.0 standard, which provides interesting yet basic graphical, multimedia and security options. Almost all phones support different additional APIs that are defined by the Java Community Process. The multimedia (e.g. sound playback) and graphical extensions (e.g.
Graphics.drawRGB()
) suffer from different implementations and device bugs. The Java Technology for the Wireless Industry and theMobile Service Architecture standards limit the fragmentation. - MIDP 3.0: The MIDP 3.0 standard is currently under public review, no commercially available devices are known to support this standard yet.