Digital Set Top
Figure 1.5 CLDC profiles (adapted from [Ortiz 2007, Figure 5])
vending machines; and the Digital Set-Top Box Profile is aimed squarely
at the cable television market.
CLDC is also used by the proprietary DoJa profile for i-mode devices
from NTT DoCoMo, which dominates over 50% of the Japanese market.
We talk more about DoJa in Chapter 7.
Applications that use the MIDP libraries are called MIDlets.MIDP
defines the core functionality that mobile applications can leverage (for
example, the user interface (UI), local storage and network connectivity)
and also specifies application lifecycle management. The original version
of MIDP was started in November 1999; even though it did not specifically
provide libraries for games, that didn't stop hundreds of titles being written
and sold worldwide. In fact, so successful was MIDP 1.0 that work began
in 2001 on defining the second version - MIDP 2.0.
The MIDP 2.0 libraries include a high-level UI API with support for
standard widgets (textboxes, check boxes, buttons, etc.) and a low-level
UI API supporting graphics contexts aimed mainly at games develop-
ment. The low-level API includes standard routines for creating graphics
primitives (lines, polygons, arcs, etc.) as well as supporting clipping,
full-screen canvases, regions, image manipulation, fonts, brushes, colors,
and off-screen buffers. Support for local persistence on the MIDP is pro-
vided through the record management system (RMS). The CLDC Generic
Connection Framework was extended with additional connections, such
as HTTP, TCP and UDP.
MIDP 2.0 also introduced timers, the Media API (a subset of the
optional JSR-135 Mobile Media API) and the Game API package which
enables the development of rich gaming content for mobiles.
1.5.3 Optional Packages
The optional general-purpose APIs provide a set of functionality that is
not specific to any particular class of devices and have allowed the Java
ME platform to evolve and embrace emerging technologies. They add
extra functionality to a profile and are sometimes incorporated into the
profile as the technology matures. The Mobile 3D Graphics for J2ME API
(JSR-184) and the Location API (JSR-179) are good examples of optional
packages. It is common to simply use the term 'JSR' when referring to