Comment by lxgr
At least on Nokia's S60, the J2ME implementation was so good that it made Opera Mini feel almost native, and definitely more snappy than the actually native Opera Mobile (arguably mostly due to the server-side rendering).
It definitely took Android a while to get to that level of performance; the first few versions didn't even have JIT for Dalvik, while I think even Sun's MIDP implementation had it.
OpenGL also only became available on Android 1.6, while J2ME devices usually had either Mascot Capsule or JSR 184 as you say (sometimes backed by software rendering, but some S60 devices had a mobile GPU backing it, I believe).
> OpenGL also only became available on Android 1.6
I believe opengles 1.0 was available from the first public release of android - though some sources claim 1.6 added opengles 1.1 support.
Though I think there were sometimes difference in what was exposed between the NDK and in java - e.g. opengles2.0 was supported in the NDK at android 2.0, but not in java until android 2.2