JavaME for Android : ME4Android
Since the Android SDK came out last week, I've been toying with the idea of porting ME4SE into Android as to make it as easy as possible to port over current JavaME code. With ME4Android, I wanted the porting to be done automatically so no lines of JavaME code would need to be modified but only the build scripts, so targeting Android would only require a rebuild of current JavaME code.
On my first pass at ME4Android, I used our rather large JavaME app called FlyerApp as the test app. This code is done completely on top of Canvas so it only uses JavaME's low level user interface libraries. The code uses a few threads, supports animations and does networking. I figured if ME4Android can run FlyerApp, it will be able to run a lot of Java games too.
In the process of getting FlyerApp to run on Android, I came up with a lot of roadblocks, some architectural and some bugs that I intend on submitting to Google once there is a formal way of submitting bugs on Android.
To see the exact same (i.e. identical) app run on Blackberry and JavaME phones (Samsung A920/A900, SonyEricsson K790, Motorola V3xx, and others) click Here . On this page you can see screen shots and also download the .jar and .cod files.
FlyerApp user intructions
Once program starts, press a key to remove intro screen. After that the program will ask you to configure the left/right softkeys (this is required since phones use different values for these and we target all phones with only one .jar file and want to keep it that way). If you are running the code on a real device without keys, you can click on the left/right buttons to set them.
After that FlyerApp will contact the server to download a list of stores that have flyers available for viewing/searching. You pretty much use the left/right/up/down arrow and center/fire button for navigation. If your device doesn't have softkeys you can activate them by clicking on them. Clicking is *not* yet fully supported but does work for softkeys.
Please note that the Dalvik VM shuts down the app due to excessive memory use, this is because we had to use a lot of extra objects to go around some bugs and platform deficiencies. This will certainly go away in the future.
Try the app and let me know what you think.