I am currently pulling my hair out just trying to get various activities to send stuff between each other. Doing this stuff in Javascript is so much easier with JSON and it's too bad there is no JSON equivalent for Java and the static typing doesn't help matters either so I can't wait until there is another option other than Java for writing applications.
It's funny. Half the time people claim Android's static typing is an advantage vs iOS and half the time people instead really hate it.
I have to say that now that I'm slowly getting over the verbosity of Objective-C I'm finding ansi C + a dynamic messaging layer to be a pretty nice combination on iOS. It looks like I'd have to work both below Java with the NDK (painful) and above it with some kind of scripting layer to get similar speed + flexibility on Android.
I started programming in dynamic languages like Javascript and Ruby so I'm really hating it. I have no idea how people manage to get anything done in Java. I was hoping generics would help me out but when I started using them all of a sudden interfaces started to pollute everything. I really wish palm/hp had more competent management because their webOS operating system is light years ahead of android/iOS.
I've lived both worlds. Java is strong where you have a large codebase with a team working on it. Even more if you have multiple versions of your platform running in different places and need to manage the code forward. Static typing is really useful for this stuff. I think single-person teams, or very-well-gelled small teams (who can all buy into a single syntactic style) are far more effective with dynamic languages.
actually there's a JSON library with the Android SDK ... check out this great document that describes a bare bones webview based android development path, sort of like phonegap but with thinner gloves: http://itp.nyu.edu/~sve204/mobilemedia_spring10/androidWebVi...