Skip Headers
Oracle® Java Micro Edition Software Development Kit Developer's Guide
Release 3.4 for Eclipse on Windows
  Go To Table Of Contents
Go To Index


3 Platforms

This chapter describes the Oracle Java ME SDK technology platforms, also called stacks. They are: CLDC with MIDP and IMP-NG, as discussed in "Emulation Platforms."

A project runs on a particular emulation platform. The Device Manager determines whether a device is appropriate for your project based on the platform, the APIs your application uses, and a set of device properties. If you run an application and an appropriate emulator or device is currently running, the SDK automatically installs and runs your application in the current device so that you do not have to launch the emulator repeatedly.

3.1 Emulation Platforms

An emulator simulates the execution of an application on one or more target devices. An emulation platform enables you to understand the user experience for an application and test basic portability. For example, a platform enables you to run applications on several sample devices with different features, such as screen size, keyboard, runtime profile and other characteristics.

Oracle Java ME SDK provides the following emulation platforms:

All platforms include predefined devices with different screen sizes, runtime profiles, and input methods.

See "CLDC with MIDP," and "IMP-NG."

3.1.1 CLDC with MIDP

CLDC/MIDP applications conform to the following specifications:

CLDC/MIDP applications are targeted for devices that typically have the following capabilities:

  • A 16-bit or 32-bit processor with a clock speed of 16MHz or higher

  • At least 160 KB of non-volatile memory allocated for the CLDC libraries and virtual machine

  • At least 192 KB of total memory available for the Java platform

  • Low power consumption, often operating on battery power

  • Connectivity to some kind of network, often with a wireless, intermittent connection and limited bandwidth

Typical devices might be cellular phones, pagers, low-end personal organizers, and machine-to-machine equipment. In addition, CLDC can also be deployed in home appliances, TV set-top boxes, and point-of-sale terminals.

The SDK provides two default emulators to support CLDC:

  • ClamshellJavaMEPhone1

    A flip phone with a primary display and a secondary display.

  • JavaMEPhone1 and JavaMEPhone2

    A flat touch screen device.

These devices support CLDC 1.1, MIDP 2.1, and optional packages for JSRs 75, 82, 135, 172, 177, 179, 184, 205, 211, 226, 234, 239, 256, 257, and 280.

See Chapter 4, "Using Sample Projects" and Chapter 6, "Working With Devices."

3.1.2 IMP-NG

JSR 228 describes the Information Module Profile - Next Generation, referred to as IMP-NG. This JSR extends and enhances JSR 195: Information Module Profile.

The IMP-NG implementation depends upon CLDC 1.1. It is a strict subset of MIDP 2.1 that excludes MIDP 2.1 graphical display capabilities, resulting in a smaller footprint appropriate for Information Modules (IMs). Potential devices for CLDC with IMP-NG might be modems, home electronics devices, or industrial metering devices.

An IMP-NG application is an IMlet, and multiple IMlets in a single JAR file form an IMlet suite. When creating an IMlet project you follow the same process that you use to create a Java ME Mobile Application project and select an IMP-NG device. The device selection determines the supported JSRs.

The IMP-NG stack supports the following JCP APIs: JSRs 75, 120, 172, 177, 179, 257, and 280. In addition, Oracle provides APIs to support IMP-NG development, as described in "Oracle APIs."

The Oracle Java ME SDK implementation provides IMP-NG emulation, on-device tooling connectivity to external devices, and Attention (AT) Command support. The SDK emulator supports IMP-NG with IMPNGDevice1 and IMPNGDevice2 skins and provides simple interfaces for Inter-Integrated Circuit (I2C), Serial Peripheral Interface (SPI), General Purpose Input/Output (GPIO), and Memory-mapped I/O (MMIO) buses. The emulator's external event generator provides a way for you to inject calls to emulate AT Commands, alter basic pin and port information for GPIO, and memory block values.

See "Running IMP-NG Sample Projects."