Oracle Java Micro Edition Embedded Client (Oracle Java ME Embedded Client) provides the Java ME platform for embedded devices. Oracle Java ME Embedded Client is based on Connected Device Configuration (CDC) technologies and caters to a wide range of embedded application and middleware needs, ranging from TV set-top boxes to VoIP phones. Oracle Java ME Embedded Client can also support various embedded platforms, such as e-book Readers, multi-functional peripheral devices, smart electric metering devices, and Blu-Ray Disc players.
Oracle Java Micro Edition Embedded Client provides a platform for running applications written in the Java programming language. This platform, combined with GUI elements, provides rich, robust, and scalable application domains.
The Oracle Java Micro Edition Embedded Client needs specific drivers and software to host the Java technologies on embedded devices. It is based on several layers of software:
An embedded operating system running on the device. For example, Linux OS.
A native graphics library or display driver to provide access to the device graphics display plane (framebuffer)
The Oracle Java ME Embedded Client environment includes the following Java technologies:
Foundation Profile (1.1.2) with Security Optional package (1.0.1)
RMI Optional Package (1.0)
JDBC Optional Package for CDC/Foundation Profile (1.0)
J2ME Web Services
The Oracle Java ME Embedded Client environment can support various media formats, codecs and streaming technologies, as detailed in the the rest of this chapter.
These subsections outline some of the typical base requirements and features to support the Oracle Java Micro Edition Embedded Client on an embedded environment.
Oracle Java ME Embedded Client uses the Oracle JIT (Just In Time) compiler technology, CDC-Hotspot Implementation. Ports for this virtual machine are available on numerous microprocessors. It performs best on 32-bit RISC-based microprocessors (MIPS, ARM, PowerPC, SPARC and others) and 32-bit Intel x86 microprocessor. Typical clock speeds vary from low-end devices (150-200 megahertz) to mid-range devices (300 megahertz) and faster.
This section provides a basic breakdown of core device peripherals and I/O support characteristics.
Serial ports may be included on device but are typically only used for in factory device setup and configuration and are not accessible by developers or end users. This input mechanism can be used to flash upgrade the device.
Typically, IR ports are also available to support input events from remote control keypads for TV and media platforms. Some devices also support USB ports for writing to flash memory or to support extra peripheral devices (camera connection or full keyboard).
Java represents each graphics pixel as 32 bits (ARGB) but lower color-depth displays can be supported, down to monochrome (1-bit).
The Oracle Java ME Embedded Client is designed to run on memory constrained devices. Oracle’s CDC HotSpot implementation virtual machine by itself with core CDC classes (headless) takes less than 5.5 megabytes of ROM with an additional requirement of 1.5 megabytes if internationalization is required.
Usage of RAM typically depends on the Java application being executed. An average use case for graphics applications can require up to 32 megabytes of RAM. The memory requirement would be less in the case of non-graphics applications. This typically implies a device with 64 megabytes of physical RAM when graphics use cases are required. A larger amount of RAM might be needed to support applications with large Java heap requirements. Smaller, non-graphics applications can require as little as 4MB RAM or less.
Oracle Java ME Embedded Client requires close to 5 megabytes of ROM. An additional 1.5 megabytes is required for internationalization support.
This section discusses the basic components required to support the Oracle Java Micro Edition Embedded Client in an embedded environment.
Oracle’s CDC HotSpot Implementation virtual machine runs on numerous operating systems, including Unix and Linux variants and other well known commercial offerings. Oracle Java ME Embedded Client is optimized for a Linux host OS and Windows XP OS. When the specific target device uses a proprietary operating system, the basic requirements to support Connected Device Configuration and Foundation Profile are as follows:
Basic ANSI C and standard C library
Synchronization: mutexes, condvars, semaphores
File I/O (POSIX-like functionality)
Full TCP/IP stack