We have the same issue over in objc, with ios,* but the answer is pretty straightforward, to my mind.
The android tag is for questions which deal with that operating system. The java tag is for questions either about that language or with code in that language. The two are neither mutually exclusive nor dependent on each other. Many questions can and should have both applied -- questions which deal with features that are specific to that OS, from the perspective of code. Some, although asked by someone programming on Android could use java and leave android off, because the OS is irrelevant. A question which doesn't feature code, or isn't about the language, shouldn't have java.
I'm completely unfamiliar with Android, but if there's a primary framework (on iOS there is Cocoa Touch) that might also be a candidate for tagging in many cases.
There are five tag slots available on each question, and it's rare, in my experience, to need more. Tags shouldn't be used willy-nilly -- only those that truly apply should be there -- but any and all that do helpfully categorize the question should be present. So, yes, if there's Java in the question, it should have java, even if it's also about that stupid mobile OS.
*And so I share your frustration, as someone who loves ObjC questions but is tired of the hundreth iteration of "how can i rotate my tableview in ios objective-c" since I don't really work with iOS. I am ruthless about editing objc off of questions where it does not apply.
[java] -[android]
Java
that may chop out a bunch of people who might be able to help (who have favourited onlyJava
), if the problem turns out to be with their java-fu rather than their android-chi.