The short answer to this question is that there is no one have a complete knowledge with java .Java is a deep sea that you will never get to know every thing about it.
By the way you can jump to android development directly but personally I suggest to study Java first so you won't spend a lot of time googling this and googling that because that will kill your productivity.
It's up to you but if you decided to start with java first ,So what you need to know in java ?
A complete understanding of the basics would be desirable .Specifically the following topics:
- Declarations and Access Control
- Object Orientation
- Flow Control, Exceptions, and Assertions
- Strings, I/O, Formatting, and Parsing
- Generics and Collections
- Inner Classes
If you know already the basics ( classes, objects, inheritance, interfaces ) I think you're okay to start and you don't need to learn specific libraries ( like swing, or others ) because you won't use them in Android.
There is many books to start learning java but for me i recommend
I hope that would be helpful to clear your confusion and enjoy developing android apps and don't forget to follow my blog to stay up to-date.