I wouldn't put too much into different threads if it isn't really needed. I also know this video from Chris Pruett at Google IO about separating logic and rendering in different thread to improve performance. I disagree with this (or at least i don't agree 100%), because the GPU can already do stuff in parallel to the CPU. I tried this though and it didn't help performance wise (as expected), so i don't think that it's needed in most cases. For the sake of simplicity, i would put the game logic into the rendering thread just not directly but in form of some game logic object whose methods get called right before the rendering or something like that.
Model-view-controller might be a good start. If you are familiar with Swing, you'll already know about it. However, i don't think that it's needed in all cases. I used it for Robombs, because i had to separate the network related parts from the actual rendering, but i haven't used it for other games. Like firstdeathmaker said, it's an open field...
In your case, i would start with moving/grouping code out of the Activity/Renderer class and into more specific classes. If you go with the manager/factory approach (which i personally like) or create more "intelligent" objects instead is up to you. Just don't take my Alien Runner sources as a good example...
It's ok for some parts, but with others, i was just lazy...