There's the O'reilly "Killer Game Programming In Java"
Thanks for the pointer. Just found a preview online. It looks a little old and still isn't what I'm after I'm afraid

It goes through how to make a few types of games as well as some simple systems like and animation system and a particle system etc. The particle system looked the most interesting as it had a section on performance. But the rest is just a little too beginner level for me. Not to worry, so far I have gathered enough tips from forums and a few blogs. Plus, as mentioned before, the Android profiler is EXCELLENT!
I would just pick up a framework like LWJGL
Good tip! I'm actually using a new library called libgdx
http://code.google.com/p/libgdx/It is a cross platform API that wraps Lwjgl or Jogl or Android. So the platform specific stuff like setting up the application, handling when to reload assets (i.e. textures, VBOs), input, sound etc is all handled automatically for each platform. I'm very pleased with it so far. I agree that an existing API is a very good place to start. I would add that it is even better to grab the source to the API and see how things are put together. As libgdx is written to run on low end Android phones upwards so they have done some interesting optimisations. Looking through this code I have already dived in and pointed out a bug for them :D
As for optimisation, I would avoid premature optimisation
Yes of course! This was such a simple optimisation that I had no concerns adding it. I have avoided the heavy optimisations as I still have too many decisions to make. My first piece of code was simply a prototype to answer the question "Can I get X to work on my crappy Android phone within a decent frame rate?" The answer is a resounding "YES I CAN" with no real effort.
Cheers!
