HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

This review has, admittedly, been quite some time coming. Had I been looking at basic phone features, I could have produced something months ago - however, this magazine is not the mobile phone-geek's equivalent of the Trainspotter's Almanac (fortunately), and we have slightly more relevant details to discuss, such as exactly how well the P800 performs when running Java applications - so the review has taken considerably more time than I originally expected. But I'll get on to that in a minute. For the moment, and for those of you who haven't already come across a review of Sony Ericsson's smart phone offering, I'll briefly run through what the P800 offers outside of the Java space (just in case you were hoping you'd picked up the Phonespotter's Almanac, after all).

From the pictures, you might have supposed the P800 is a large device, too hefty to fit in a pocket, something more like the briefcase-sized "mobiles" of the '80s. Nothing could be further from the truth: it weighs in at a mere 158 grams and in terms of dimensions (11.7x5.9x2.7 centimeters), fits quite comfortably in the palm of your hand, and it's not so small that you feel as if your hand is wrapped around it twice (unless of course you have hands like a proverbial Goliath).

The P800 is triband GSM (900, 1800, and 1900 MHz), so you can use it almost anywhere and includes infrared and Bluetooth connectivity, just to make it that extra bit easier to drain those batteries on the go. The touch-screen is 208x320 pixels, 12-bit color, and with the flip open, seems to me just as functional in size as any other PDA on the market: neither too small nor too large. The software offerngs bundled on the phone are the usual PDA-like features: Contacts, Calendar (scheduling), Task list, Jotter (for notes), Voice memo, Calculator, Clock, Viewer (a text reader), plus a few games and miscellaneous items like the picture viewer (for photos taken with the P800's built-in camera). The messaging application is impressive, integrating SMS, MMS, and e-mail into the one system, and the Internet browser includes HTML and cHTML support, as well as WAP/WML.

There are a couple of obvious omissions in that list: there is no mini-spreadsheet equivalent, nor is there a cut-down word processing program. The lack of a word processor isn't a major issue for me - for the moment - as I'm still trying to locate an external keyboard that will work with the phone. Despite the fact that the P800's handwriting recognition is, quite frankly, classy, I have no urge to spend a huge amount of time writing without a keyboard. However, I have occasionally missed having something more advanced than the simple calculator bundled on the device.

Java support is where matters get a whole lot more complicated.

The P800 supports Java in two modes: J2ME (CLDC/MIDP1 support) and PersonalJava. The J2ME side of things is easier to get started, so I'll talk about this first. You can install MIDlets either via the USB docking station, or downloaded over the Internet using the built-in browser. Downloading is a simple process of entering the URL to the JAR file in the browser and waiting for it to transfer, and then selecting "Install" when prompted. Note that I said JAR there, and not JAD, since I was unable to get the P800 to install from an application descriptor, no matter how I tilted and shook the phone.

MIDlet performance is impressive. There were no noticeable hiccups in simple animations (even where there was a noticeable GC hiccup in the emulated MIDlet running on my laptop), and the phone seemed able to maintain a perfectly acceptable 20fps when drawing 40 primitives simultaneously to the screen.

My one complaint regarding the P800's MIDP support - and I've mentioned this before, elsewhere - is that a MIDlet will only run with the phone's flip keypad open. The phone operates in two distinct ways: with the flip keypad closed, it works like a normal phone; with the flip open, it operates in PDA mode. Controlling a MIDlet (especially games) using the touch-screen buttons is woefully difficult - either a process of fingers and thumbs smearing the screen, or trying to touch buttons rapidly with the pen. If a MIDlet could run in closed/normal phone mode (which seems to me the more logical place for a MIDlet to appear), the user experience would be considerably improved. This is a design decision in which I completely fail to see the logic.

The P800's PersonalJava support is the reason why this review has taken so long to deliver. Rather than just deploying a JAR file onto the phone in order to run a PJava application, your JAR must be packaged into a .SIS installation file before it will install. This would be fine if creating a SIS file was a simple process; however, it's quite patently not. To start with, the (Windows-only) SDK is a bloated (and I mean bloated) 270MB+ installation, in a set of 5x51MB and 1x16MB WinZip 8 files. If you're like me and spend most of your time trapped behind a prehistoric, nonbroadband hookup, you'll view the size of that install with something akin to horror. Installation is not straightforward either: it took me about three or four attempts to get the SDK actually installed, with numerous reboots in between.

On the subject of that Windows-only support, this is one of the more bizarre features of the SDK: large chunks of it are actually Java. And parts of it are PerlŠand parts of it are native code. All packaged up in an almost-incomprehensible directory structure. To someone who has been used to the simplicity of the Java SDK, this is culture shock to the extreme (and I realize just how lucky we have actually been with Sun's efforts). In fact, had I personally been the perpetrator of this monstrosity, I would have, at the very least, fired myself, but more likely taken myself out back and administered a severe and justly deserved beating.

Had it not been for the efforts of a number of people on various forums who posted their experiences (and how to get around the problems), I would have given up, and pretended that I hadn't noticed the P800 had PersonalJava support at all.

So, after much hair pulling, I can report that PersonalJava performance is, on the whole, average. In terms of animation, you might see no more than four to six frames per second when targeting the full-screen size (but perhaps slightly higher, if you rely on the standard graphics primitives). This sluggish graphical performance might not bother those of you who are developing business-oriented applications, but it very much depends upon the type of application. Experience in the past suggests that poor performance in the graphics department usually indicates a less snappy performance overall in any GUI app.

Of course, this is not entirely unexpected. PersonalJava is, by now, old technology. I would guess that many of the Hotspot-type performance improvements you would hope to see in the latest VM supporting the Personal Profile won't have been included in the P800's PersonalJava Virtual Machine. I'm crossing my fingers that newer versions of the Symbian UIQ operating system (the OS powering the P800) will support newer VMs, which is when you might hope to see a lot more developers interested in writing larger-scale Java applications for compatible devices.

To sum up my experiences with the P800, it has been a mixture of both good and bad. The good is the MIDP support, the clean, easy-to-use user interface, and the style and feel of the phone in general. The bad is the SDK and the lack of Linux support, both for connecting to the phone via USB and for developing more advanced Java applications than the simpler MIDlets that you have to package into a .SIS.

Assuming the Linux support changes in the future, and an upgrade comes along that updates the phone's Java support to MIDP 2 and the Personal Profile, the P800 would then become my perfect Java device.

References

  • A good, detailed review of the P800: www.infosyncworld.com/reviews/n/3067.html
  • If you're stuck with the SDK, this is a good place to look: www.my-symbian.com/forum/

    Sony Ericsson
    Sony Ericsson House
    202 Hammersmith Road
    London W67DN
    Phone: +44(0)208 762 58 00
    Fax: +44(0)208 762 58 87
    Web: www.sonyericsson.com

    Snapshot

    Pros

  • Excellent MIDP 1.0 support. There is a possibility of MIDP 2 with a later version of the Symbian UIQ OS.
  • A comprehensive set of features, both software, hardware, and especially connectivity.

    Cons

  • Lack of Linux support both for connecting to the phone and developing applications using the SDK.
  • A bloated, virtually crippled SDK with incomplete and sometimes incorrect documentation.
  • PersonalJava performance is just average. Acceptable for business applications, but if you were hoping to write multimedia games for the device, you'll be struggling.

    [email protected]

    All Rights Reserved
    Copyright ©  2004 SYS-CON Media, Inc.
      E-mail: [email protected]

    Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.