Java Mobile is very limited as to what it can do. It doesn't for instance, support scrolling all that well (it works, but it's extremely, extremely slow). Making simple, single screen games is the best thing you can do.
No ink effects
Limited objects (in memory) at a time
Not all extensions work
No semi-transparency (you can do it using alpha channels though, increases file size a lot though)
The rendering engine works by rendering the whole screen once then only rendering changes afterwards.
It can only change a few pixels at a time at high framerates, so in order to have more action you'll need to drop the framerate. If you don't then you'll notice a lack in performance and graphical glitches.
I suggest 9-12 fps in-game
and for menu's and such with a small amount of objects 45-60 fps
Take advantage of the fact that you can dynamically change the frame rate, and try different settings till you get a good result.
Also if you have a game with scrolling try using the single screen method (like niffles games) where you scroll only when the player reaches the edge of the screen. And make sure you set "inactive when out of the play area" to Yes whenever you can. This frees up some cpu cycles when those objects are off-screen.