November 23, 2007 New Java features of 3rd Ed. fp 2 Posted by Aleksi Uotila at 11:00 AM | Categories: Development

We've announced already the new flexible UI toolkit eSWT in our previous post. eSWT is definitely the most biggest new feature in S60 Java Platform for developers in 3rd Edition Feature Pack 2.

But there's a lot more in the new S60 Java Platform. We have both, new API features and under-the-hood functionality. Below I'll try to list most of the nitty-gritty features. We'll be providing more information on how to use these via Forum Nokia Wiki site, and perhaps cover some in more details in future posts here too. They will also be covered in our reference documentation in Java ME Developer's Library when a 3rd Ed FP 2 version will be available.

New APIs available:

  • Nokia IAPInfo API
  • Device dedicated Media keys (Play/Pause/Stop) access as normal key events
  • Control over End call key (Red call key) behavior for application's lifecycle
  • Enabling device theme background for Canvases for custom component usage
  • Prevention of screen saver via Nokia UI API
  • Foreground/background events via pauseApp/startApp
  • Flip close event for fold/clamshell devices via pauseApp
  • Access to device IMEI, network access type (gprs / csd etc.), network id, network signal level, battery level, country code, date and time formats via system properties
  • LCDUI Canvas Graphics scaling (introduced originally in 3rd ed) enhanced for orientation switching devices


IAPInfo API allows to access device's Internet Access Points configuration and allows to specific explicitly for General Connection Framework network connections (http etc.) which IAP should be used.

New other functionality:

  • Java application startup time is better due to OS on-demand paging and other changes (and as a result you also have more user RAM available).
  • Support for scalable icons (SVG) for MIDlets
  • Support for categorization of MIDlets: game / application
  • Device volume keys will change audio output volume of MMAPI
  • Selection key has a label (as a result LCDUI Commands are more aligned with Series 40 Java)


New architecture

Regarding under-the-hood functionality, the S60 Java Platform has gone through a big architectural change. We've changed the VM from a monolithic architecture to more flexible one. Prior to 3rd Ed fp 2, S60 Java had traditional CLDC VM architecture where all API code (class files) were compiled into the virtual machine executable. Now the Java API implementation code is no longer in the VM executable but will be dynamically loaded when needed.

The new architecture allows us to dynamically extend the virtual machine with new APIs. Which is exactly what is used e.g. in our eSWT implementation. When there will be new releases available from us for eSWT, we'll release that directly to developers. Anyone can install that upgrade package to 3rd ed FP 2 devices. Another result of the new architecture is of course memory saving: applications not needing some of the optional APIs wont have them in memory.

We also have changed the threading implementation. Now Java Threads are native. Each Java Thread has a native thread counterpart. Prior to 3rd FP2 the Java threads used so called light-weight threading (sometimes referred to as "green threads" which is a small misnomer) where Java VM had it's own thread implementation and scheduling. Now Java threads are scheduled by OS.

Runtime performance

On MMAPI we have done performance improvements. In overall the mixing of audio content now works lot better and playback latency is smaller. This means improvements to Java gaming experience. The media deallocation now properly frees the memory and concurrent number of players being in pre-fetch state is increased.

One smaller, but rather dramatic change has been implemented on LCDUI Canvas class. Previously each Canvas instance contained it's own double buffer for graphics contents. The size of the buffer image is the size of the screen so it consumes quite much runtime memory. Double buffering for Canvas is nowadays required feature by MIDP specification 2.1. If a MIDlet has multiple Canvas instances the memory may easily run out. On other platforms e.g. Nokia Series 40 had implemented different double buffering scheme: each Canvas instance simply shared the same double buffer. We at S60 Java decided to implement the same scheme and as a result we are behaving the same with Series 40 devices.

Permalink | Comments (7) |
November 22, 2007 Control your access point or grant access for a Java application Posted by Aleksi Uotila at 04:07 PM | Categories: Features

Many Java applications are showing all sorts of user prompts during runtime. There's Internet Access Point prompts and different Access prompts for sensitive features (aka Security Prompts). These prompts allow flexibility and security for the user but when an application is used more and more they start to be just plain irritating. Luckily there's a feature in S60 devices to configure these prompts to be asked either less frequently or not at all (depending on the feature).

IAP_Prompt_small.png

On S60 devices users may access Java application specific settings via Application Installer menu item. In the list showing installed applications there's an options menu item "Suite settings" (on 3rd ed FP 1 it's just "Open" menu item).

On 3rd ed FP 1 devices you will be able to configure a default Internet Access Point for that particular Java application. If you set it the application won't never prompt you for the access point but automatically uses the specified IAP when connecting to network.

The device access settings are also configurable via the same view but mostly this only makes sense for signed applications as the available settings for unsigned (aka unidentified) 3rd party applications are forced to be more prompting as defined by Java specifications (MIDP, JTWI and MSA security recommendations).

We are also working on improving this functionality even more on S60 3rd ed fp 2 devices (read: getting rid of those annoying prompts). But more out of that later when details are more solid.

Btw: The Internet Access Point prompts are S60 specific feature which isn't available in other platforms, at least to my knowledge. Many other Java devices simply use the same access point as configured for Browser. S60 is more flexible as you can use a specific access point for each Java application. For example, Browser may be configured to operator's "WAP access point" and a certain Java application to more free "Internet" access point.

Permalink | Comments (15) |
I am NOT famous Posted by Gorkem Ercan at 12:32 AM | Categories: Community

A colleague has brought this posting to my attention that I am not famous. Although this did not come as a surprise, it did encourage me to do a posting to tell more about myself. So here it goes.

I am working as part of the organization that develops the Java platform for S60. Like most of the Java platform team, I am based in Tampere, which is located in Finland. On my daily work, I work with a group of talented people to create advanced stuff for the Java platform. Some of our publicly available work is eSWT UI toolkit for S60, which we had a posting about in this blog sometime ago and also the open source eRCP runtime. I also run a second blog that has more regular postings about eSWT and eRCP. Hmm... what else, I am a dog person, meaning I have a dog. I have joined Nokia because it would give me access to the cool devices and now it is addictive. And my star sign is Leo.

Permalink | Comments (2) |

Back