Re: Technologies for Consideration: Java ME ~ What's the deal?




Bartek,

I was not aware of MicroEmulator, looks very cool. And the usage scenarios definitely make sense. This gets back to my original question: what functionality is Gnome Mobile looking for? In my mind there are two primary paths:

1. J2ME (run phone apps, etc. on a Gnome Mobile device)
2. "Full" Java with deep integration into the platform

Option 1 is very Java-centric, and 2 is more Gnome-centric. Ross, can you provide feedback as to which option Gnome Mobile is most interested in?

thx
ken


On Sep 30, 2008, at 6:03 AM, Bartek Teodorczyk wrote:

Hi,

I'd like to show another option to support Java ME that is possible
for GNOME Mobile using MicroEmulator.

MicroEmulator [1] is Java ME implementation build on top of Java SE,
it was also designed to run on less capable VMs like CLDC and CDC as
well. Two years ago I prepared a proof of concept demo for Maemo
platform [2] to demonstrate possible solution for Java ME applications
running on Nokia tablets. In that example I combined Jam VM, GNU
Classpath, SWT (my origin plan was to use GTK+ directly) and
MicroEmulator.

Here I try to do some weighing the pros and cons which may be in my
opinion important for GNOME Mobile community.

Pros:
1. License: LGPL and additionally large parts of project are Apache V2
also dual licensed.
2. Small porting layer, it is about 15-20 classes that needs to be
adapted to support GTK+ UI backend.
3. API's: JSR-118 (MIDP2), JSR-75 (File API), JSR-135 (partially),
JSR-82 (together with BlueCove[3]), JSR-179 (together with OpenLAPI
[4]).
4. Used by other important projects: Apache Harmony [5], Eclipse MTJ
(previously EclipseME) [6], NetBeans IDE [7].

Cons:
1. Not possible to get Sun TCK for open source Java ME implementation.
2. Not all API's are fully implemented yet, but general goal is to be
MSA (JSR-148) compatible.

Regards,
Bartek

[1] http://www.microemu.org/
[2] http://www.microemu.org/maemo/
[3] http://www.bluecove.org/
[4] http://code.google.com/p/openlapi/
[5] http://markmail.org/message/z7kiqk7wpd6vaina?q=apache+harmony +microemulator [6] http://www.eclipse.org/projects/project-plan.php? projectid=dsdp.mtj
[7] http://wiki.netbeans.org/MobilitySolarisMacOSXSupport

On Mon, Sep 29, 2008 at 11:43 PM, Ken Gilmer <ken buglabs net> wrote:

Hey Ross,

Basically this means that we know that JavaME exists and is used by some people, but there needs to be more research done to see if it should be
added as a recommended component, needs work to be better integrated
into the GNOME Mobile platform, and so on.

Got it.


This is where you probably know more than the rest of us: what is the state of JavaME and GNOME Mobile integration? (I'm very out of touch
with Java now, so bear with me)

I'm CCing Robert Schuster from Jalimo [1], as he knows more than me on this, but from my understanding there is a J2ME UI on GTK+ with midpath [2]. I have not seen this myself but I think it has been used on the OpenMoko
device.

Is there an AWT or Swing implementation
with a GTK+ backend?

Yes, CACAO with GNU classpath supports GTK+ backend. We have done some preliminary work with our device with success [3]. JamVM should be able to use classpath's GTK+ peers as well, however I haven't seen this. Currently PhoneME only supports AWT with QT3 peers but there seems to be some activity
in a GTK+ port [4].  Bug is interested in this work as well.

 Are there usable DBus bindings?

This is something I'll be looking into in coming weeks with dbus- java [5].
 My understanding is that it's at least possible with CACAO.

How about the
rest of the platform such as GConf, GIO and so on?

I haven't heard anything regarding either of these. What components of the platform would need Java bindings in order to become a part of Gnome Mobile?

Are some VMs better
integrated than others, or do most open VMs these days all use
Classpath?

CACAO and JamVM use GNU Classpath but there is work under way to let them
use OpenJDK class libraries as well [6].  This is a very interesting
development. PhoneME has it's own class library and is not able to use
others.  One key limitation of PhoneME is that it does not contain a
classpath exception. There has also been some success in building OpenJDK VM and classpath for ARM-based devices, although I think that's still in early stages. We have done some work [7] [8] in benchmarking various JVMs on BUG but I wouldn't consider them complete, there is still some important
optimizations for CACAO that we haven't yet got worked out.

In general I'd say that CACAO + GNU Classpath may in fact be a suitable
candidate for Gnome Mobile.


Answer these questions well Ken, and I may bring more Laphroaig... ;)

Uh oh...I think my liver still hates me for what happened on that boat
ride... :)

cheers
ken

[1] https://wiki.evolvis.org/jalimo/index.php/Main_Page
[2] http://midpath.thenesis.org/en/Start%20Page
[3] http://bugblogger.com/working-with-processing-on-bug-214/
[4] http://forums.java.net/jive/thread.jspa?messageID=275587&;
[5] http://dbus.freedesktop.org/doc/dbus-java/
[6] https://c1.complang.tuwien.ac.at/cacaowiki/OpenJDK
[7] http://bugblogger.com/java-vms-compared-160/
[8] http://bugblogger.com/java-vms-compared-ii-187/


_______________________________________________
mobile-devel-list mailing list
mobile-devel-list gnome org
http://mail.gnome.org/mailman/listinfo/mobile-devel-list




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]