
|
June 23, 2006 |
|
|
| |
Java fragmentation is a much discussed topic within the developer community. Here Opera Software, developer of web browsing software for mobile devices, outline how they developed their Opera Mini browser client for Java ME-enabled mobile phones and explain some of the Java fragmentation issues they faced. |
![]() |
About Opera Software
Jon S. von Tetzchner and Geir Ivarsoy founded Opera Software in 1995 while exploring an early version of the World Wide Web. Realizing the software used to browse the web was immature, the two colleagues decided to design a browser that would be capable of handling what they saw as the future web, where text, images and sound could be browsed from any device. They named their browser "Opera".
Although Opera Software's primary target was the desktop market during the first years of operation, a significant focus today is on the embedded market, in particular mobile phones. With their Opera Mobile
web browser, mobile phone users can browse the full Internet on their Symbian OS, Linux, BREW, P2K, Itron or Windows Mobile based handsets. Read more about how Opera Software optimized this browser for the Sony Ericsson P910 smartphone here>>
The Opera Mobile web browser is preloaded on many mobile phones or can be downloaded by the end-user. But not all mobile platforms allow downloading and installing of native applications such as Opera Mobile. However, most modern Java ME mobile phones do support downloading and installation of MIDlets, so for Opera Software it was a logical step to extend their product line to include a Java ME version.
|
Opera Mini is available for download from Opera Software's website, currently supporting more than 40 Sony Ericsson phone model series, and Sony Ericsson's Fun & Downloads portal.
How Opera Mini differs from Opera Mobile |
Erik Eriksson, Project Manager for Opera Mini at Opera Software. |

A full web browser is a fairly complex application and porting the Opera Mobile browser to Java was not an option. Also, most older Java ME mobile phones impose a Java MIDlet size limit. Opera Software therefore took the decision to make a transcoder-based solution, where the client hands over most of the processing to a separate server in between the client and the remote web server.
About Opera Mini
Opera Mini consists of a small (60k or 100k depending on configuration) Java MIDlet that can be downloaded to any Java ME Platform, MIDP 1.0 or 2.0 capable mobile phone. The strength of Opera Mini is that it combines the power of the Opera Software rendering engine on the server with a fast, lightweight client.
The amount of data received by the handset is much less than for a normal web browser, since the server compress the pages and scales the images to fit the screen of the handset. The benefits of this architecture are many: Less data means faster download and cheaper for the end user. Also, the client can be made very small and fast. The browser client includes features such as content download, bookmarks, new skins, multi-search, speed dial and visual navigation. The Opera Mini servers download, translate and deliver more than 4 million web pages each day to Java ME clients installed on handsets all over the world (April 2006). Read more about Opera Mini here>>
|
When the end-user requests a web page, the client contacts the Opera Mini transcoder server (actually a cluster of servers), which is hosted by Opera Software. The servers run the same web page rendering engine that is deployed in the different versions of the Opera web browser (both desktop and mobile). The transcoder server fetches the requested web page, including all related elements such as inline images, stylesheets etc. It then performs the following actions: 1. Transforms the page according to the Opera Small Screen Rendering 2. Transforms the resulting layout into a compact binary format. 3. Partitions the resulting page in order not to send more information than the mobile phone can handle. For example, the Sony Ericsson T610 has only around 200 KB of RAM is available, limiting the amount of information that can be transferred, while the newer Sony Ericsson K750 has about 1MB of RAM. 4. Completes final compression (resizes and re-encodes all images, compresses the data, etc). The result is then passed back to the client which decodes the data and displays it on the mobile phone. |
![]() |
Technical challenges in developing Opera Mini: Java fragmentation
While developing the Opera Mini client, Opera Software found a major challenge to be the fragmentation of the Java ME/MIDP market. The client needed to be able to run on a wide range of devices, from different manufacturers. They found some of the differences between the host platforms included:
1. Maximum binary size of application
2. Amount of available memory
3. Amount of persistent storage
4. Screen size and color depth
5. Navigation mode (phone keyboard, QWERTY keyboard, stylus)
6. Java ME/MIDP implementation
7. The available extra APIs in the handset (SMS sending, Bluetooth
, camera, etc)
Managing Java fragmentation
"The aim from the beginning was to keep the number of builds down to a minimum to make the process as easy as possible during development, distribution and installation," recalls Erik Eriksson. "We ended up with having only two different basic builds, one for MIDP 1.0 devices and another for MIDP 2.0 devices, with each one available in different languages."
To handle the differences between the host platforms, the Opera Mini client relies on runtime tests to detect the capabilities of the platform and other phone characteristics, as well as any existing bugs in the implementation.
The main areas where Opera Software found differences between Java ME mobile phones were:
"The situation became more complicated since there is no standardized way for determining the brand and model of a handset from within the Java code. This is necessary to be able to enable tweaks and workarounds that are needed for certain handsets. The microedition.platform system property has different formats on different platforms, and for some handsets empty or meaningless values are returned," says Erik Eriksson, "To identify those handsets we had to rely on other device characteristics such as screen size or the presence of other device specific properties."
Opera Software found that only way to solve the problem with Java fragmentation was to actually test the application on each and every device from many manufacturers. A lot of time and effort was spent on acquiring the relevant devices and performing systematic testing to find out the characteristics of every mobile phone. As soon as they found a different behavior on a device, a developer would have to find a way for the Opera Mini client or server to work around the issue.
"Having experience with the implementations from a wide range of manufacturers, it is clear to us that Sony Ericsson devices are among the easiest to work with, due to compliance with the specifications and the lack of bugs," states Erik Eriksson.
"We also found Sony Ericsson phones to have one of the most mature Java ME implementations on the market and the on-device debugging support was invaluable when tracking different issues that can only be reproduced on the actual device."
Summary and outlook
Opera Software plan to continuously improve the Opera Mini client, extending it with even more features, while at the same time keeping it small and fast.
Developing a Java ME application turned out to be a major effort for Opera Software due to differences among implementations in different mobile phones. By systematic testing on the actual devices, it was possible to overcome this problem and make Opera Mini a popular Java ME application.
Supporting Sony Ericsson mobile phones was a natural step from the beginning when developing the Opera Mini client and Opera Software found it to be a one of the nicest platforms to work with. The maturity of Sony Ericsson's phones, combined with Opera Software's experience with the platform in general, ensures that future versions of Opera Mini will successfully be delivered for Sony Ericsson's devices.
More information:
Copyright © 2001 - 2009 Sony Ericsson Mobile Communications AB. All Rights Reserved.