I'd say that the biggest difference between normal Java development and Android app development (using the Apache Harmony 6 version of Java) is the paradigm shift. Java applications have a main() method, whereas Android apps are combinations of interacting components (activities, services, content providers, and broadcast receivers). Each component presents its own architecture of callback methods. You communicate with activities by passing intent objects that describe what you want done. You create an XML-based manifest file named AndroidManifest.xml to describe your app components, request permissions, and more. Then there are the tools. The Android SDK provides various development tools and an emulator for viewing app content. I could say more but this gives you a starting point as far as differences are concerned.