Android performance

I’m currently porting jPCT to Google’s Android, but the performance of the emulator is quite bad, because the software rendering of the OpenGL ES emulation is rather slow and the VM doesn’t seem to be very fast either. Anybody knows if the emulator is supposed to reflect the performance of actual devices? At least support for hardware acceleration would be nice.

However, it looks like this:

Is there anything special to do, to port a Java 1.1 compliant program to android platform ?

I was thinking that android support 1.1 JSE ?

Android supports features up to Java5, but some packages are missing like AWT. So you have to change the image loading for example to use Bitmap instead. The VM seems to be more or less an interpreter with some enhancements, i.e. not JIT or Hotspot. I hope this will change in the future. OpenGL ES is different from OpenGL in some ways but nothing to complicated.

With the slick stuff I did recently I’ve stopped work since the emulator performance is so poor. Really hope thats not the expected OpenGL ES handset performance.

Kev

The VM is dog slow…i’ve noticed this myself. Hope this will improve.

as you have experience on it, do you know the best place to start with android ? emulator/jdk ?

http://code.google.com/android/ Download the SDK/Emulator and setup the Eclipse-Plugin. It acts a bit strange at times (like not refreshing the files when it’s supposed to do it), but apart from that, it works quite well. But again: In its current state, the whole thing is too slow to be usable for 3D graphics that are more advanced than a single object rotating IMHO.

thanks I did that, unforunatly I dont use eclipse (and dont want to…), I test the provided browser and it is nice, but browser is so slow that I eaxily believe you when you said this is too slow for 3D…

too bad, it seems that applet tag is not understood by android browser… I found that a strange decision for an OS mostly based on Java to not support Applet tag … as strange as the package provided by android : it seems to be a mix between all JVM version, there is nothing less compatible! NIO but no awt package (even a lite one!)…

I think the first project that should be opened should be a JSE1.1 compatibility librarie offering users at least what a standard JVM 1.1 offers, it will enable thousand of existing applications to works on android platform with quite no modifications…

The following just reflect my own opinion : Google have a lot of money, this enable them to open a lot of huge projects but I found most of them poor regarding the investisment they made in them …

Maybe that’s caused by the fact that Android actually contains no JVM. It runs the Dalvik VM, which is an undocumented, interpreted VM that is not capable of running class-files. The Eclipse-Plugin compiles/converts the generated class-files to dex-files for the Dalvik VM and Android runs those. The reason might be, that that VM is better for small devices, but why don’t they convert the class-files to native code then, like Jet is doing it? Well, we’ll see what comes out of all this. Right now, i’m bit disappointed but will most likely continue to work on the port if i find the time and may it be just for fun.