Building Applications for Embedded and Handheld Devices using J2ME
Archives > Building Applications for
Embedded and Handheld Devices using J2ME
What is J2ME?
Java 2 Micro Edition (J2ME) is a subset of J2SE that is geared
toward embedded and handheld devices that cannot support a full J2SE
implementation.
Software that raises the IQ of a handheld offers a pretty catchy tune,
especially when there's a backbeat. In this case, Java software has enjoyed
years of success on the server side of the equation. And it enjoys a large,
devoted developer base to expand applications. Sun officials predictably refer
to J2ME's debut as a "giant leap".
Observers emphasize a handful of advantages :
-
Superior user interface control
-
The ability to work with applications off-network
-
Device-to-device networking
-
Increased support for graphical interfaces
-
Improved security and consistency of applications across platforms and devices
-
Over the air, or OTA, downloads of new applications should provide convenience
for enterprise and instant gratification for consumers.
These advantages have found a willing audience, according to Sun.
There are two types of J2ME applications:
Walled garden applications are stand-alone applications that run on the
wireless phone without accessing external data sources through the carrier
network. Examples of walled garden applications include calculators or single
player games.?
Network aware applications interact with the network. Unlike
walled garden applications, network aware applications can access an external
data source. An example of a network aware application is an email application
that resides on the phone, retrieves addresses stored within the application,
and sends email to addressees via the data network.
Design Strategies
Developing applications for small devices requires keeping certain strategies
in mind during the design phase. It is best to strategically design an
application for a small device before beginning coding. Correcting the code
because the developer failed to consider all of the "gotchas" before
developing the application can be a painful process.
Here are some design strategies to consider:
Keep it simple. Removing unnecessary features,
possibly making those features a separate, secondary application.
Smaller is better. This consideration should be
a "no brainer" for all developers.
Smaller applications use less memory on the device and require shorter
installation times.
Minimize run-time memory use.
To minimize the amount of memory used at run time, the use of scalar types in
place of object types is advised. Also, do not depend on the garbage collector.
The memory should be managed efficiently by setting object references to null
when the application is finished with them. Another way to reduce run-time
memory is to use lazy instantiation, only allocating objects on an as-needed
basis. Other ways of reducing overall and peak memory use on small devices are
to release resources quickly, reuse objects, and avoid exceptions.
Back to top
|