(Post 18/10/2005)
Today’s world is a wireless world. Everywhere, these
days, you are bound to see people using gizmos and gadgets that are getting
smaller and smaller by the day. While even ordinary folks are quite at
ease handling cellular phones and pagers, the upwardly mobile have more
hi-tech gadgets like PDAs (Personal Digital Assitants), Palm Pilots and
Smart Phones.
Sun Microsystems have come up with yet another ace in
their sleeves: the J2ME technology, which is targeted towards programming
wireless devices as mentioned above. Since these devices have limited
resources such as memory limitations, screen and keypad limitations, the
standard Java platform cannot be used to program such devices. This is
the reason why J2ME was born.
Mobile
Gadgets |
|
|
So what exactly is this
J2ME?
J2ME, which stands for Java 2 platform, MicroEdition,
is a highly optimized Java runtime environment aimed towards wireless
consumer products such as pagers, mobile phones, PDAs etc.
In theory, the J2ME technology consists of a virtual
machine and a set of APIs (Application Program Interface) that provide
runtime environment for consumer devices. In actuality, the J2ME platform
supports two different virtual machines-the standard virtual machine for
32 bit architectures, and the KVM for 16 bit or 32 bit architectures with
limited memory.
The KVM earlier stood for Kuaui Virtual Machine but was
later changed to KiloByte Virtual Machine. Today, however, it is more
popularly known as the K virtual machine.
KVM is a completely new implementation of a Java Virtual
Machine.
What does J2ME consist of?
The J2ME technology comprises of two major components-Configurations
and Profiles.
A configuration is composed of the basic J2ME runtime
environment and a set of core classes that capture the essential capabilities
of each kind of device. It is the configuration that will specify which
features of the Java language and the JVM are supported by the implementation.
Currently there are two standard J2ME configurations-
- Connected Limited Device Configuration (CLDC), which is designed for
hand-held consumer devices such as cellular phones, pagers
- Connected Device Configuration (CDC) which is intended for devices
that can be plugged into a wall such as Internet TVs.
CLDC uses KVM while CDC uses the standard or classic
virtual machine.
Some of the features of a virtual machine supporting
CLDC are summarized below.
- No floating point support
- No finalization
- Limited Error handling
- No JNI
- No user defined class loaders
Since the devices on which the CLDC Library APIs (Application
Programming Interface) run are limited in nature, some Java functionality
has been removed or modified from the specification.
Essentially the CLDC Library APIs consist of two basic
categories-
- Classes which are a subset of J2SE APIs i.e those derived from JDK1.3
- Classes specific to CLDC i.e. javax.microedition packages
A profile is a set of APIs that reside on top of a configuration
to provide domain specific capabilities. As of today, the MIDP (Mobile
Information Device Profile) is the only implemented profile.
J2ME application |
Profile |
Configuration |
HostOS |
Device |
Configurations and Profiles
Using MIDP and the J2ME platform, we can build MIDlets
(which are small applications written using the J2ME platform) that work
on all devices supporting MIDP. Using MIDP it is possible to create form-based
applications, which can access wireless data sources and perform data
manipulation just as we used to in earlier Java applications.
Many people are under the wrong impression that J2ME
is a competitor to WAP. Nothing could be more wrong. J2ME could be thought
of as a complementary technology to WAP using which the wireless market
can be further explored. Motorola and Nokia are some of the brands offering
mobile handheld gadgets supporting the J2ME platform. The Nokia 9210 Communicator
is one such device that offers J2ME support.
To conclude, J2ME is definitely a technology to look
out for, especially since shortly in the future, embedded devices will
be entering our lives in a huge scale.
by Mamta M (Aptech Technology Group) |