JAVA ME EMBEDDED DOCUMENTATION
Getting Started with Oracle Java ME Embedded - Developer Resources
Getting Started with Oracle Java ME Embedded Client - Developer Resources
|Technical Documentation |
Oracle Java ME Embedded Client with BerkeleyDB Whitepaper
Installing Linux on an ARM-based BeagleBoard
Getting Started with the Oracle Java ME Embedded Client
Running a Small Server with the Oracle Java ME Embedded Client
Oracle Java ME Embedded Client - System Resources
Oracle Java ME Embedded Client - FAQ
Q1: What is included in the Oracle Java ME Embedded Client 1.1.1 offering?
The Oracle Java Micro Edition Embedded Client is a client middleware stack that is designed for small devices. It is based on the Java ME Connected Device Configuration (CDC) technology which has been deployed on TVs, Blu-ray Disc players, set top boxes, electronic book readers, automated metering devices, multi-function printers, network and storage equipment, and more
The stack provides a full-featured Java Virtual Machine with capabilities for networking and graphics support, including support for the following technologies:
Q2: What are the system requirements for Oracle Java ME Embedded Client?
Details on the system hardware and software requirements are found in the Resources section.
Q3: What APIs are supported by Oracle Java ME Embedded Client?
Detailed API documentation is included in the product but developers can also reference the Java Specification Requests (JSRs) (available at jcp.org) that make up Oracle Java ME Embedded Client 1.1.1.
CDC API Overview It’s helpful to examine how the CDC APIs are organized by comparing Foundation Profile, and Personal Basis Profile. Understanding these differences is an important part of CDC application development. As the name suggests, Foundation Profile provides a basic set of application support classes. The other profiles build on this by adding specific functionality.
Package / Class
java.lang Java.lang.ref java.lang.reflect java.math java.net java.security java.security.acl java.security.cert java.security.interfaces java.security.spec java.text java.util java.util.jar java.util.zip
Full J2SE 1.4.2 support for most core packages and classes.
Some enterprise-level APIs have been removed to save space.
The Generic Connection Framework (GCF) provides an abstraction of various communication technologies so that applications can make network connections and perform I/O without referring to a specific connection type.
Added by Personal Basis Profile
java.awt java.awt.color java.awt.event java.awt.image
Support for lightweight components and some Java 2D graphics classes.
Limited to runtime support. Design time manipulation of Java Beans must be managed by an external bean editor like an integrated development environment (IDE) based on Java SE technology.
Limited RMI support for xlets, not intended for general-purpose use.
The Oracle Java ME Embedded Client offerings are designed for resource-limited devices including TV set-top boxes, Blu-ray Disc players, electronic book readers, automated metering devices, printers, media players and other embedded devices. The APIs offered by the Oracle Java ME Embedded Client (powered by the CDC virtual machine) are more limited than Java SE but enable these offerings to support various devices with small footprints.
CDC 1.1 is designed around the two goals of Java SE 1.4.2 compatibility and support for resource-constrained devices. Java SE compatibility allows developers to leverage their investments in Java SE technology, including libraries, tools, and skills. Support for resource-constrained devices allows device vendors to offer a feature-rich Java runtime environment that can support secure, mobile, enterprise applications.
CDC supports the full Java virtual machine specification, including full class loading and core library features. At the class library level, CDC uses modified Java SE class libraries whose interfaces have been scaled to meet the needs of resource constrained devices and whose implementations have been optimized for small memory environments. In the interest of resource conservation, some class libraries based on Java SE have modified interfaces, while others have been removed entirely. The result is a flexible Java runtime environment that fits comfortably within a memory budget of a few megabytes for RAM and ROM.
The CDC 1.1 specification is based on a subset of JavaSE 1.4.2 and as such supports major and minor class file versions from JavaSE 1.4.2.
If your project has different hardware (cpu, memory) or OS requirements please contact us.
Though ultimately performance is application dependent, Java applications executed on top the Oracle Java ME Embedded Client perform on par with C/C++ applications. Many third party tests have demonstrated Java to be equal or better than C/C++ performance. Java's dynamic just-in-time compilation and aggressive in-lining generates target machine code that can be better optimized than static C/C++ compilation.
The Oracle Java ME Embedded Client provides an interface to native drivers and C or C++ functions called the Java Native Interface (JNI). JNI works by creating a Java-visible wrapper around the native code, a new header file to cross-reference the wrapper, and then a call from the Java program which allows parameters to be passed and received by the native code.
There is a full set of APIs and tools that enable you to debug your Java application. Both local and remote debugging are supported. There are also APIs, tools for resource management and performance profiling. CDC-HI supports JVMTI which enables support for local and remote device debugging and profiling of Java applications. Full documentation on how to start developing a new project, sample templates and how to setup a debugging/profiling session are included in the product bundle offering.
CDC supports a couple of application models that allow developers to handle different user needs and deployment scenarios. These range from the basic standalone application model that is similar to a conventional native application, to managed application models that offload the tasks of deployment and resource management to application management systems.
The most basic application model is the standalone application model, which dates back to the beginning of Java technology. Developers use standalone applications for fixed-purpose designs such as utilities and productivity applications. When the Java virtual machine is launched, it is given the name of the main application class for loading. This class must include a method named main() that handles the rest of the application’s class loading, object creation, and method execution.The standalone application interacts directly with the Java runtime environment to manage its own life cycle and system resource needs. When the main() method exits, the standalone application terminates.
Managed Applications: Xlets
Personal Basis Profile includes support for the xlet application model, which is similar in purpose to the applet application model, but different in design. The main differences are that xlets have no dependency on AWT, and they have a cleaner life cycle model. An xlet is loaded into an xlet manager, which manages its life cycle and provides it with system services through an XletContext. An xlet manager can handle multiple, dynamically loaded xlets that can communicate with each other through an RMI mechanism.
Because the xlet application model does not depend on AWT, xlets can be used in both GUI and non-GUI scenarios ranging from smart phones to set-top boxes.
The Oracle Java ME Embedded Client 1.1.1 release for target devices currently is only available in headless form without any graphics support. However, a headful form of the runtime is available, but requires a special license from Oracle and is not available through any public channels. The headful form of the runtime supports Personal Basis Profile (PBP). PBP supports lightweight components and some Java 2D graphics classes enabling applications to draw shapes, display text and images and handle input events. If you are interested in obtaining the headful form of the runtime, please inquire here.
Yes. Included in the Oracle Java ME Embedded Client 1.1.1 release is the JDBC Optional Package for CDC/Foundation Profile (JSR-169). This optional package provides the necessary Java interfaces to connect to and query an installed native embedded database driver. The database must have a JSR-169 compatible driver, and this driver should have an implementation of the DataSource API.
Security is a principal feature of Java technology and has guided the evolution of the Java platform from its beginning. CDC includes different levels of security that give users, developers, service providers, and enterprises an application framework with a powerful security architecture.
CDC includes the same security framework as Java SE. This security framework is extensible, in that it is based on algorithm-independence, and interoperable, in that it can use different implementations of security services. Foundation Profile (JSR 219) includes three optional packages that use this framework to add security features:
Yes. The Oracle Java ME Embedded Client allows additional application and system jar files to be added to the runtime classpath. Once the Java library/application uses the same APIs supported by the Oracle Java ME Embedded Client stack and is compiled (with the Java compiler – javac) using 1.4.2 as the target version, it should run on the Oracle Java ME Embedded Client.
Examples of such applications are the Jetty web server and commercial 3rd party OSGi products.
Yes. CDC supports the ClassLoader class enabling applications to define and load their own classes. This coupled with the Xlet lifecycle model and XletManager allows for development of a basic application management system that supports multiple concurrently executing Java applications.
Contact us to find out about our licensing, support and partner programs.
Getting started is easy. Please refer to the "GETTING STARTED WITH ORACLE JAVA ME EMBEDDED CLIENT" section at the top of this page. In general there are three main steps: