Until recently, there was never a question that Java was a necessary prerequisite to learning Android. Java was, of course, the language that Android apps were written in; if you wanted to write any sort of meaningful app, Java was your only course of action. There wasn’t even an NDK!
Lately, however, that perception has been changing. With the release of Google’s App Inventor, some have been questioning whether or not Java is necessarily a prerequisite for learning Android.
That’s a horribly ill-conceived notion, but the short answer is: Yes, Java is still completely necessary for learning Android.
First off, let me say this: I do not, in any way, want to denigrate Google’s App Inventor. Bringing the power to create applications through a WYSIWYG editor online is a fantastic way to bring app development to people who don’t have the time or inclination to pick up a new programming language and framework, especially if they have never done any programming before. Google has reported that some very impressive apps have been created solely through the App Inventor, and it’s great that ordinary users without advanced technical knowledge have a tool to give their ideas life, bringing them to the Android community.
That said, however, it’s a fact that the App Inventor is limited. While powerful, it has limited access to web APIs, for example, meaning that any API you wish to use to communicate with data online must first be wrapped in an App Inventor-compliant API before you’ll be able to use it in App Inventor. Likewise, it has other limitations concerning the phone, data on the phone, and other systems and APIs that a regular Android application can handle with ease. The most irritating of all, of course, is its inability to be put on the Android market; though there exist several versions of workarounds to solve this, that simple fact may make the App Inventor’s use limited for a vast majority of the people looking to develop anything for Android.
Which brings us to our main point: You need to learn Java to do anything truly complex and meaningful on Android. While App Inventor may be a fun and useful tool, it’s simply not sufficient for the level of complexity and depth that enterprise developers need on their phones; you need to be able to program in Java to write professional, capable apps. Though Android is not Java, Java is the language that its apps are written in, and thus a language you’re going to need to learn.