Help needed from Android developers!

I have always been interested in coding, and the sudden spurt in app popularity only increased my interest in coding, specially writing apps for Android (Their Android Design page is really awesome, and persuaded me to give making an app in Android my best shot). However, there's this tiny problem: I don't know Java.

Basically, I haven't even started out, because of the simple reason that I don't know where/how to start. However, I've seen quite a few people on The Verge who say they're Android developers, so I decided to ask here for directions. From what I understand, what I'll have to do to get my app on the Play store goes like this:

1. Learn Java.

2. Do something which sets me up to write code for my Android app.

3. Test it on my phone.

4. Publish the app.

Now, I have a couple of questions regarding all this. They are: From how and where do I learn Java? Considering I can code a bit in C++, how long will it take me to learn Java? What (and how large) exactly is Step 2 in the flowchart I made above? Does testing my own app on my phone require rooting the phone? And do I need to learn anything apart from Java to publish an app? (I have a feeling there's going to be a long list for that last question)

I hope the post makes some sense. Also, please realise I'm a noob, so please explain like I'm a child! Anyway, thanks in advance!