[maemo-developers] Votes wanted for the "phoneME port" proposal ;)

From: Clemens Eisserer linuxhippy at gmail.com
Date: Mon Apr 2 21:55:42 EEST 2007

Sorry for bothering everybody the direct way via the list. I just didn't
find a better idea to reach all mentors. I hope all non-affected people
forgive me for wasting their bandwith ;)

I am a bit ... well ... disappointed that my proposal about porting the
phoneME-Java-implementation to Maemo only got two votes.
I know this project does not sound as cool as many others because its
basically just the base-technology to make rocking stuff happening on top.
I tried to explain my proposal a bit more in-detail and attached a new
version at the end of the mail.

I would be really happy if I could get your vote - java support on Maemo has
always been a long-term wish for me - and the opportunity to work on it is
nearly too great to be true.

Thank you in advance, lg Clemens


 *PhoneME for Maemo*


 PhoneME is a Java Virtual Machine which has been opensourced lately by Sun.
Shrinked to fit especially the needs of handheld devices this Java-VM is
very lightweight and offers thanks to its just-in-time compiler state of the
art performance and fast application startup.

 The goal of this project is to port and adopt phomeME to integrate
flawlessly into maemo, allowing new applications to be exchangeable between
different versions of Maemo (e.g. Nokia770-IT2005/2006; N800-2007) and allow
a lot of existing software (including many mobile phone games) to run out of
the box.


 *Current situation:*

Maemo is a great platform for application development, but it also shares
some weaks with other systems:


   Binary compatibility problems (library interfaces change, different
   compilers used)

   Till now only used for Nokia770/N800 devices

 The consequence of these points is that for examlple software written for
Nokia770/IT-2005 won't work on a N800. So although APIs are quite the same a
developer would need to package three versions of his/her application for
every maemo version.

This is perfectly acceptable considering how easy it is to port existing
GTK/Gnome applications to maemo, however for new software which should be
created once and not maintained for every device seperatly this approach is
a bit painful.

 *How Java could help:*

Java has a well defined cross-platform-„ABI" and a stable and well-defined
API. Thanks to the virtual machine applications written once run on all Java
implementations of this profile (well, minus bugs ;)).

 Considering that already a lot of applications written in Java exist, this
would not only open the door for developing new cross-platform applications
but also for a lot of already existing software.

 Thanks to java's abstraction these existing applications could be also look
and act like a native maemo application.

Broader java support on various devices also means that software companies
maybe will choose Java (and support those java enabled devices) instead of
using some proprietary technology (like .NET compact or whatever).

 An important part of this project is also to make java a first class
citizen on maemo. This includes an application manager for java
applications, including midlets – which allows to create entries in the
program menu and also to download, install and delete midlets.

 To sum it up:


   A Java-Application would only have to be written once, it could run on
   IT2005/2006/2007 and future editions, independent from the used hardware.

   A lot of already existing software can be used.

   Java may help Maemo to appear on the radar of commercial software
   companies. (I consider this as good, because you still would have the
   - Because I would try to keep the code as portable as possible I would
   also like to add support for GPE - so two linux embedded platforms could
   benefit from one project.

 *Java for Games:*

Thousands of so-called midlets are available for free (and many more if you
pay for of course ;) ). These small Java-Applications are written for small
mobile devices in mind (mobile phones and to some degree also handhelds).

Most of those midlets are games but also a lot of serious applications exist
like google-mail for mobile.

 Unfourtunetly the Java implementations which are designed to run midlets
are based on a different standard so some glue is needed to bring both
worlds together.

I plan to archive midlet compatibility using MicroEmulator's sourcecode.

MicroEmulator is a MIDP/CLDC implementation on top of Java-SE (the desktop
eddition) and tune it as far as possible to allow most midlets to run at
full speed on the Nokia770/N800.



   Compile phoneME–MR2 on Maemo in scratchbox


   Adopt the existing AWT-GTK peers to be compatible with the
   Personal-Profile-1.1 standard used. (They are currently broken because
   they only implement Personal-Profile-1.0) – or adopt X11-only based
   peers which would be even more lightweight and adopt a java-only AWT

   Best would be of course both and let the user choose ;)


   Add support for maemo-specialities like the touchscreen-keybord, maemo
   look-and-feel and add some APIs to AWT which allow some access to Maemo.


   Implement an Application Manager which is able to:


   Create startmenu-entries for Java-Handheld-Applications

   Install/Remove Mobile Phone Java-Applications


   Add support for Midlets (mobile phone java applications) by adopting
   MicroEmulator. Tune graphic-output to statisfy the needs of even advanced
   Midlets by using techniques as e.g. pixel doubling and SDL.


   If there's still time left I would enjoy to port and package
   Gnu-Classpath based Java implementations to Maemo. Currently they require
   GTK-2.10 and can therefor not be compiled.



-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maemo.org/pipermail/maemo-developers/attachments/20070402/68c20709/attachment.htm 
More information about the maemo-developers mailing list