Android programming

I would recommend you to learn java first too, if you understand the concept of Object-Oriented programming, then it will probably be easier since you already knows C++, but you can also use Unity3D as Cenda pointed out.

I use
Eclipse (Development environment)
Java (programming language)
Libgdx (API / GameEngine)
High five! Same here.
 
If you want more quick results - use Unity game engine (it use C#, and if you familiar with C++ you will not have much problems).
But if you have a lot of free time and love programing, you can use low level "things" and make your game from scratch:
1)you will need basic understanding of differences between c++ and Java languages;
2)read some Android development book or tutorial - to understand how Android SDK works;
3)to read about OpenGl ES - if you want to make 3D games.
 
In case you are making games and want to stick to C++, I recommend you to use the NDK and follow the book "Beginning Android C++ Game Development". I ported my games to Android this way.
 
I can also recommend Unity. It`s pretty simple to learn and there is a ton of guides and assets which helps you start with it.
 
As said above you should learn java first, but there is other way. You can try to watch video tutorials (thenewboston on youtube is great choice), after them your skill will be good enough to make simple apps. Then documentation + google will make your day.
 
Learn Java .

forget about unity and all that frameworks.

Its hard at the begining but there are loads of books and tutorials in the internet .
 
If want to make games then Unity3D is quite good choice. It's stable, easy to get started and relatively fast. It abstracts most of the platform specific stuff away, so you really aren't doing "android programming" anymore though :P

For more close to the metal and OpenGL development go for C++ w/ NDK. General apps it's java of course.
 
since you already know C++, java should be a easy language to learn. Download android studio and start with basic hello world. you will get hang of it
 
---Derek Banas - Great for reference, and has wide range of topics on his channel.
---Slidenerd - Makes an effort of explaining the concepts before diving into the code, and does it thoroughly. Again wide range of topics.

---Havard's course on mobile development by David Malan - David Malan is great professor (check out CS50 if you haven't yet), with a brilliant approach to teaching

---Google's own channel for developers - By far my favourite Youtube channel, and the best way to stay updated
 
Learn Java first and some XML..


Learning XML isn't really very important for someone diving into Android. XML can be learnt while working on app. And Android Stdui's autocomplete helps out with almost everything there is to know in XML.
 
Myself learned alot by reading Stackoverflow solutions to my problems. You can find there fully working examples, some of them fully commented so you can easily learn what a specified line of code means. You should really start with Java fundamentals (simple algorithms, collections, object-oriented programming) then hop on into Android world which has ton of examples on the internet.
 
You can use Android Studio or Eclipse. I suggest to use Android Studio cause google will not support anymore ADT for Eclipse. The language is Java.

If you wanna develop games, you can choose from:
- libgdx
- unity (not free)
- cocos 2d (C++).
 
If you are planning to support multi platform in the future. I think it's good to learn C# as you can use it to create Android app, IOS or Windows phone using Unity or Xamarin.
 
If you already know programming, then you can simply start with "Hello Android world!" tutorials - you can find a lot of them on the internet.