J2ME has become a popular option for creating cell-phone games as they can be emulated on a PC during the development stage and automatically uploaded to the cell-phone. This contrasts with the difficulty of developing, testing, loading games for other special gaming platforms such as those made by Nintendo, Sony and others as special and expensive hardware and kits are required. Some cell-phone makers also extend the J2ME platform to provide more robust effects such as 3D grpahics and audio which lacks a specification in the current J2ME APIs.
Configurations And Profiles
J2ME devices implement a Profile, the most common of these is the Mobile Information Device Profile, aimed at mobile devices, such as cell phones and the Personal Profile aimed at consumer products and embedded device like Set-top_boxs and PDAs.
A Profile is a superset of a Configuration, off which there are currently two, Connected Limited Device Configuration and Connected Device Configuration.
Connected Limited Device Configuration
The CLDC contains a strict subset of the Java class libraries, and is the minimal needed for a JVM to operate.
Mobile Information Device Profile
Designed for cell phones, it boasts a LCD orientated GUI API, with MIDP 2.0 including a basic 2D gaming API. Applications written for this are called MIDlets. Almost all new cell phones come with a MIDP implementation, and it is now the de-facto standard for downloadable cell phone games.
Information Module Profile
The Information Module Profile 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.
Applications written for this are called IMPlets, even though they subclass MIDlet.
Connected Device Configuration
The CDC is a larger subset J2SE, containing almost all the none-GUI related libraries.
A headless version of J2SE.
Personal Basis Profile
Extends the foundation profile to include lightweight GUI support.
Extension to Personal Basis Profile including complete AWT and Applet.