On the internet, Flash has become the dominant technology for games - they look and sound good, are fast to load, and are responsive. Java games (in my opinion) tend to look very dated, maybe because many were written 10-15 years ago when there was no alternative, and maybe for other reasons (lack of tools?). A major difference is that Flash games are almost all in nicely anti-aliased scalable 2D vector graphics, whereas Java games rely on bitmaps. When developing for Android, how easy is it to take the vector graphics route using Java, and do the tools exist? Are there any particularly useful APIs, and is it hard to take into account all the different hardware configs that might use your app (as opposed to a very limited range for iOS)?
You can actually run Air apps on Android. They tend to be dog slow though. The Flash games i used to play tend to use Flixel or similar frameworks which are bitmap centric and look just fine to me.
I don't know which Java games in particular you are refering to, but whether a game looks dated or not is not really dependent on the language used. On Android you'll have a hard time to create your graphics with scalable vector art in real-time. Most Android games use a hardware accelerated low-level 3D graphics API called OpenGL ES (for 2D games as well btw).
Concerning the different hardware configurations your game/app has to cope with there are of course things to look out for. Those depend on which graphics API you use. Canvas is in general more forgiving and works pretty much the same on all devices. OpenGL ES is a bit of a different beast, but if you follow some basic rules and mostly know what you do it's not a big problem to have your app/game run on all the devices out there.