Release Notes - phoneME Feature

| # Release Notes ## phoneME™ Feature MR2 #### Development Release, March 2007

This is a development release of the phoneME Feature Software. It is a work in progress. We expect that there will be bugs and areas where things are incomplete. We also expect to have development releases fairly frequently (perhaps every one or two weeks) until we reach the final release.

## Table of Contents

  Introduction
  Supported Platforms
  Subsystem, Library, and Directory Restructuring
  Implementation Notes
  Known Bugs

## Introduction

phoneME Feature software is an optimized Java™ ME stack. This implementation supports multitasking and is built upon MIDP 2.1.

When phoneME Feature software runs multiple MIDlets, it uses a single OS process. Therefore, a single instance of Java Virtual Machine can execute several applications simultaneously, providing each of them with a separate runtime environment. All running applications are isolated so that from the application's point of view, it looks as if each application is executed in its own virtual machine.

phoneME Feature software is for developers who port MIDP and associated technologies to mobile devices. It is also useful to application developers who want to work with the very latest Java ME technologies, even before these technologies are ported to real devices.

The following features are part of phoneME Feature software, version MR2:

- High performance implementation of the Java ME platform stack
- Modular architecture which supports multiple implementations per functional area (storage, networking, user interface, etc.)
- Subsystem, directory, and library portability
- Minimal platform-specific code
- Multitasking capabilities and support for multiple, simultaneous applications (MIDlets)
- Native Application Management API
- Native Resource Management API
- Implements CLDC 1.1 (JSR 139) and MIDP 2.1 (JSR 118)
- Implements the following optional APIs:
  - Wireless Messaging 1.0 (JSR 120)
  - Mobile Media APIs (JSR 135)
  - J2ME™ Web Services (JSR 172)
  - Security and Trust Services API (JSR 177)
  - Content Handler API (JSR 211)
  - Java Binding for the OpenGL® ES API (JSR 239)

## Supported Platforms

Following are the supported target platforms for running an implementation of phoneME Feature software:

- Texas Instruments P2SAMPLE64-V6 OMAP 730 with Linux/ARM
- Linux/x86
- Windows/x86 (which runs the product in emulation mode)

The supported platforms for building an implementation of the phoneME Feature software are Linux/x86 and Windows/x86.

A Linux build system must meet the following requirements:

- Ubuntu 6.06
- GCC 3.4.6
- JDK™ version 1.4.2

If you wish to generate API reference documentation, you will also need:

- Doxygen version 1.4.4

To cross-compile for the supported P2 OMAP730 board (see below), you will need these additional tools:

- GCC cross compiler 3.3.1
- MontaVista Linux Consumer Electronics Edition 3.1 (2.4.20 kernel)

If you are building for Qt, you will also need the following:

- Qt/Embedded 2.3.10

NOTE: It is possible to build the phoneME Feature software using other versions of Linux, but complete testing has only been performed on Ubuntu.

A Windows/x86 platform must meet the following requirements:

- Windows 2000 or Windows XP
- MSVC++ 6.0 or Microsoft Visual Studio .NET 2003
- Cyg4Me , a version of Cygwin for building Java ME technology. Unzip the archive and ensure that its `bin` directory is the first element in your `PATH`.
- JDK version 1.4.2

If you wish to generate API reference documentation, you will also need:

- Doxygen version 1.4.4

## Running

The general operation of the phoneME Feature software is described in the Tools Guide, part of the Sun Java Wireless Client 1.1.3 documentation.

- Sun Java Wireless Client 1.1.3 Tools Guide, Chapter 3

## Implementation Notes

### Skin Property Loading

In this release, Chameleon skin properties can be loaded dynamically, although this option is off by default. When this option is on, you can adjust skin properties during development without rebuilding the entire phoneME Feature software.

### Whitespace Handling for Descriptor Properties

When installing a trusted midlet suite, phoneME Feature software expects an exact match between the values of the properties from the application descriptor file and the values of the same properties in the MIDlet suite JAR file manifest. The strings representing the values are compared, including the leading and trailing spaces. For example, the following properties are considered to be different (the first one has an extra space after the first `HelloMIDlet`):

`MIDlet-1: HelloMIDlet , , HelloMIDlet
MIDlet-1: HelloMIDlet, , HelloMIDlet`

### Keystrokes and the `qvfb` Window

When you view the executable output in a `qvfb` window, keystroke events might not be delivered to the phoneME Feature software until you click inside the window.

### Limited Path Lengths When Using Javacall

The implementation chooses record store file names based on the location of the binary executables. The maximum path length for these files is 128. If the path to the binary executable files is too long, you will encounter errors with record stores. This can also happen if you are using `MIDP_HOME` to point to the binary executable files. If you encounter this problem, move your binaries to a location with a shorter path.

For any file name used in the Javacall Windows/x86 implementation (for example, a file name used in the JSR 75 FileConnection API), the maximum length is 256.

### Use of `MIDP_HOME` Environment Variable

The implementation chooses the MIDP home directory based on several rules. If `MIDP_HOME` is set, its value is used unmodified. Otherwise, the software searches for the `appdb` directory in the following places:

- current directory (if the executable is in the `PATH` and the current directory is the right place)
- the parent directory of the executable
- the grandparent directory of the executable

### JSR 135 and MIDP Audio Supported Only on Win32

Due to the unavailability of needed drivers on the P2SAMPLE64-V6 reference platform, JSR 135, the MIDP Audio Building Block (ABB) APIs, and the sound functionality they provide, are supported only on the Win32 platform. On the P2 board, phoneME Feature software is compliant with the MIDP 2.1 Specification, except for the ABB requirement.

NOTE: To build JSR 135, set `USE_JSR_135=true`, but do not set the variable `JSR_135_DIR=`pathname, as for other JSRs. Instead, set the variable `JSR_234_DIR=`pathname. Despite the name of this variable, phoneME Feature software supports only JSR 135, but not JSR 234.

Mobile Media API (JSR 135) is a subset of Advanced Multimedia Supplements (JSR 234). Support for JSR 234 is planned for future releases.

## Known Bugs

The following high-severity bugs are known at the time of this release.

Bug ID | Description
--- | ---
6537774 | Twelve tests fail in monetDI.
6538077 | In MMAPI, `Player.getContentType()` returns `audio/midi` for `audio/sp-midi` file.
6538156 | `Canvas` cannot be set into full screen mode in some cases.
6522329 | In the JSR 120 TCK, `javax.microedition.io.sms` and `smsSE` OTA tests fail.

Copyright © 2007 Sun Microsystems, Inc. All rights reserved. Use subject to license terms.