Ted Neward writes that Android mobile development is 'just Java' development. But, on another level, he continues, it is quite different. A Dalvik Virtual Machine, limited screen real estate, geolocation and a camera are just some of the things that differentiate the Android device from the typical Java client.
One of Android's greatest "pluses," from a Java team manager's view, is that 90% of the tooling, ecosystem, and experience is one that is familiar to the Java development team. This is because at its heart, Android is "just Java." Development teams write code in the Java language, extending and using other Java classes, calling Java methods and using Java IDEs.
This means, then, that it becomes rather painless for a team familiar with Java--or any compiled language for the Java Virtual Machine--can start writing code for Android far faster than for the iOS devices, where they'd have to learn a new language (Objective-C) and a new IDE (Xcode) as well as the new platform (iOS). And, just to boot, most of the Java ecosystem elements, including favorite open-source libraries like JUnit or log4j, are handily available.
On the other hand, Android is not Java -- in some cases, deceptively so. Android isn't actually a Java Virtual Machine; it's the Dalvik Virtual Machine, and after Java classes are compiled there's a separate tool to convert JVM code into Dalvik code. Nor is the entirety of the JVM's behavior going to remain identical to how Dalvik behaves; ClassLoaders, for example, may be subtly different, or certain libraries present in a Java5 VM may be missing. Normally this won't be something that the Java developer has to worry about, but some projects, particularly those that want to manipulate Java byte code on the fly (Seam, for example) or those that want to emit byte code on the fly (some Aspect-oriented toolkits) will have issues here.
The busy manager’s view of Android mobile development - SearchSOA.com