by Jonathan Knudsen
September 2003
A cornucopia of MIDP emulators reflects the abundance of MIDP devices
available. This article surveys the current crop. Although some
emulators are designed for demonstrating MIDP
applications to prospective users, the emulators in this article are
specifically for developers, to help them test applications.
Emulators are usually distributed as part of a larger package
or development kit. Each of the blocks below shows a particular package,
including its name, important links, thumbnail images of each emulator,
and a brief description.
This is not a complete list but captures the knowledge we have
at present. If you'd like to see other emulators here, please let us
know. A different list of Java technology device emulators is
available
here.
A Few Words About Emulation
Emulation is hard to get right. The ideal is to mimic the behavior of a
device exactly, but the accuracy of
the emulation correlates to the difficulty involved in developing it.
The emulator's developers have to decide how accurate to make the
emulation based on the time and skill they have.
At one end of the spectrum, a vendor may choose to take the J2ME
Wireless Toolkit emulator and simply create a new skin for it. I'll talk
more about this option later.
At the other end of the spectrum, a vendor may write code to emulate
the actual processor and other chips on the device, in which case
the emulator can run the same OS-level software and MIDP implementation
binaries as the real device. This is quite a bit more difficult and
expensive, but the end result is an emulator that behaves much more like
the real device.
There are other possibilities between these two extremes. It's
impossible to be certain what approach a vendor has used without talking
to the developers who wrote the emulators, but you can sometimes get a
feel for what's been done, especially for emulators that look and behave
a lot like the one in the J2ME Wireless Toolkit.
Another Way to Slice It
Another way of looking at the world of emulators is to divide them into
concept emulators and real-life emulators. A concept
emulator does not represent a specific device but serves to demonstrate
the general characteristics of a certain kind of device. The J2ME
Wireless Toolkit emulator, for example, is a concept emulator that can
be used to represent a variety of MIDP devices. A real-life emulator is
designed to mimic the appearance and behavior of an actual device. Such
an emulator may run some or all of the binary code that runs on the
device itself.
Nokia provides examples of both types. The company releases
a concept emulator to help developers prepare for an upcoming
device series, then supplies a real-life emulator when the series is
actually released.
Skinning the J2ME Wireless Toolkit Emulator
The J2ME Wireless Toolkit emulator can be "skinned" to
give it, not only the appearance of any device, but the behavior of
buttons and other controllers as well.
Providing new skins for the emulator is
described in the J2ME Wireless Toolkit's Basic Customization
Guide, which you'll find in the docs directory.
Emulators based on the J2ME Wireless Toolkit provide an impressive list
of features:
-
Creating a skin on the toolkit's emulator gives a good approximation of
the user's experience with the screen and input methods of a
particular device. In a new skin you can specify the screen size, color
depth, fonts, and input methods of a device.
-
The toolkit's emulator provides a solid and robust environment for
testing applications that don't use vendor-specific APIs.
-
The toolkit's emulator is available on Windows, Linux, and Solaris.
-
The J2ME Wireless Toolkit includes helpful tools for the application
developer, including performance simulation, method profiling, and
network monitoring.
Using the Emulators
Unfortunately there are no rules of thumb about using these emulators.
Some are packaged to be added to the J2ME Wireless Toolkit or a full
integrated development environment (IDE). Others are packaged as part of
a standalone development kit or testing tool. This document is simply
an overview of available MIDP emulators. You'll have to read their
installation instructions and release notes to understand exactly how to
install and use them.
Emulator Listings
| Vendor: |
Motorola |
| Package: |
Motorola iDEN SDK 3.0 for J2ME Technology
|
| Registration: |
iDEN Developer Community
(free)
|
| APIs: |
CLDC 1.0, MIDP 1.0 |
| Emulators: |
i85s
|
i88s
|
i90c
|
i90c v2
|
i95cl
|
|
| Notes: |
Although there are few emulators in this package, they
are well done, and seem to emulate closely the appearance
and behavior of MIDlets on the corresponding real devices.
|
|
| Vendor: |
Motorola |
| Package: |
Motorola SDK v3.1.1 for J2ME
|
| Registration: |
MOTOCODER
(free)
|
| APIs: |
CLDC 1.0, MIDP 1.0 |
| Emulators: |
A008
|
A388
|
A6288
|
A830
|
C353t
|
Generic Phone
|
i1000
|
i85s
|
iDEN Platform
|
Minimal
|
MP3 Player
|
StarTac
|
T280i
|
T720
|
T720i
|
V60i
|
V66i
|
|
| Notes: |
The emulators in this package appear to be skins
running on top of the same MIDP implementation.
|
|
| Vendor: |
Nokia |
| Package: |
Nokia 3410 SDK 1.0
|
| Registration: |
Forum Nokia
(free)
|
| APIs: |
CLDC 1.0, MIDP 1.0 |
| Emulators: |
|
| Notes: |
In the J2ME Wireless Toolkit, you must select Project ->
Package to create the MIDlet suite JAR. The 3410
emulator uses the JAR, and will not run your application
without it.
|
|
| Vendor: |
Nokia |
| Package: |
Nokia 6310i MIDP SDK 1.0
|
| Registration: |
Forum Nokia
(free)
|
| APIs: |
CLDC 1.0, MIDP 1.0 |
| Emulators: |
Nokia_6310i_MIDP_SDK_v1_1
|
|
| Notes: |
This appears to be a faithful representation of the Nokia
6310i phone.
|
|
| Vendor: |
Nokia |
| Package: |
Nokia 7210 MIDP SDK 1.0
|
| Registration: |
Forum Nokia
(free)
|
| APIs: |
CLDC 1.0, MIDP 1.0 |
| Emulators: |
|
| Notes: |
This appears to be a faithful representation of the Nokia
7210 phone. It is also included in the Nokia Developer's
Suite for J2ME 2.0 package.
|
|
| Vendor: |
Nokia |
| Package: |
Nokia Developer's Suite for J2ME, Version 2.0
|
| Registration: |
Forum Nokia
(free)
|
| APIs: |
CLDC 1.0, MIDP 2.0, MMAPI 1.0, WMA 1.0 |
| Emulators: |
Nokia 7210 MIDP SDK 1.0
|
Series 60 MIDP Concept SDK Beta 0.3
|
|
| Notes: |
The Series 60 concept emulator supports MMAPI, WMA, and MIDP
2.0. The 7210 emulator included in this release is the same
one that's listed in the Nokia 7210 MIDP SDK 1.0
package; it supports MIDP 1.0 only.
|
|
| Vendor: |
Nokia |
| Package: |
Nokia Series 60 MIDP Concept SDK Beta 0.2
|
| Registration: |
Forum Nokia
(free)
|
| APIs: |
CLDC 1.0, MIDP 1.0, MMAPI 1.0, WMA 1.0 |
| Emulators: |
Nokia_Series_60_MIDP_Concept_SDK_Beta_0_2
|
|
| Notes: |
This emulator approximates the appearance and behavior of
the Nokia 3650. It even supports video capture,
as does the real Nokia 3650.
I had to add a line to the
emulator.properties file,
as described in the release notes, to get this emulator to
work properly.
|
|
| Vendor: |
Research In Motion |
| Package: |
Blackberry Java Development Environment 3.6
|
| Registration: |
Yes (free)
|
| APIs: |
CLDC 1.0, MIDP 1.0 |
| Emulators: |
|
| Notes: |
The Blackberry Java Development Environment is a
full-featured IDE. Several network-specific variants of the
emulator are available for download.
|
|
| Vendor: |
Siemens |
| Package: |
Siemens Mobility Toolkit for Java Development
(choose Tools, then Download Center)
|
| Registration: |
Siemens Mobile Developer Portal
(free)
|
| APIs: |
CLDC 1.0, MIDP 1.0 |
| Emulators: |
2128
|
3118
|
6688i
|
C55
|
M50
|
M55
|
MC60
|
S55
|
S57
|
SL45i
|
SL55
|
|
| Notes: |
Each of the emulators is available as a separate download.
They run as parts of the Siemens Mobility Toolkit
for Java Development, which must be installed first.
|
|
| Vendor: |
Sony Ericsson |
| Package: |
Sony Ericsson J2ME SDK
|
| Registration: |
Ericsson Mobility World
(free)
|
| APIs: |
CLDC 1.0, MIDP 1.0 |
| Emulators: |
|
| Notes: |
This package is actually a port of Sun's J2ME Wireless
Toolkit. The P800 and T610 emulators appear to be
skins on top of Sun's implementation.
|
|
| Vendor: |
Sprint PCS |
| Package: |
Sprint Wireless Toolkit for Java 1.0.3
|
| Registration: |
Sprint PCS Application Developers Program
(free)
|
| APIs: |
CLDC 1.0, MIDP 1.0 |
| Emulators: |
DefaultColorPhone
|
DefaultGrayPhone
|
MinimumPhone
|
SprintLargeColorPhone
|
SprintSmallColorPhone
|
SprintSmallGrayPhone
|
|
| Notes: |
This is another port of Sun's J2ME Wireless Toolkit. The
DefaultColorPhone, DefaultGrayPhone, and
MinimumPhone emulators are the same as in Sun's
toolkit. Sprint has added three other emulators to
approximate its available devices.
|
|
| Vendor: |
Sun |
| Package: |
J2ME Wireless Toolkit 1.0.4
|
| Registration: |
none required
|
| APIs: |
CLDC 1.0, MIDP 1.0 |
| Emulators: |
DefaultColorPhone
|
DefaultGrayPhone
|
MinimumPhone
|
RIMJavaHandheld
|
Motorola_i85s
|
PalmOS_Device
|
|
| Notes: |
The J2ME Wireless Toolkit is a versatile tool for MIDlet
development. The 1.0.4 version supports MIDP 1.0
and includes six emulators. Except for
PalmOS_Device, all the emulators appear to be
different skins based on the same MIDP implementation. In
general, these emulators implement the MIDP specification
faithfully and provide a wide range of functionality.
PalmOS_Device is actually a bridge to the
Palm OS Emulator (POSE), which must
be installed separately.
|
|
| Vendor: |
Sun |
| Package: |
J2ME Wireless Toolkit 2.0
|
| Registration: |
Sun Download Center (free)
|
| APIs: |
CLDC 1.0, MIDP 2.0, MMAPI 1.0, WMA 1.1 |
| Emulators: |
DefaultColorPhone
|
DefaultGrayPhone
|
MediaControlSkin
|
QwertyDevice
|
|
| Notes: |
This updated version of the J2ME Wireless Toolkit supports
MIDP 2.0 and (optionally) MMAPI 1.0 and WMA 1.1.
|
|
About the Author: Jonathan Knudsen
[e-mail]
[home page]
is the author of several books,
including
Wireless Java (second edition),
The Unofficial Guide to LEGO MINDSTORMS Robots,
Learning Java (second edition), and
Java 2D Graphics.
Jonathan has written
extensively about Java and Lego robots,
including articles for JavaWorld, EXE, NZZ Folio,
and the O'Reilly Network.
Jonathan
holds a degree in mechanical engineering from Princeton University.
Back To Top
|
|