Ta question est trop vaste
Déjà peut importe ce que tu veux faire comme logiciel, il te faudra un IDE et des connaissances en programmation. Sur android, le Java est le plus utilisé, mais le C, le C++ et je crois même le C# sont utilisés, donc libre à toi de choisir le langage.
Après je connais pas la commu Android pour le C, C++ et C# mais étant donné qu'Android est "né" avec le Java, que Google utilise le Java pour Android, et que la commu est sûrement plus grande, le Java est sans doute mieux, enfin c'est mon avis
Après l'IDE, les plus utilisés sont Eclipse et Netbeans. Perso je préfère Eclipse, et sur internet t'as le SDK Android de dispo, il contient Eclipse avec les plugins nécessaires pour compiler et push l'application direct sur ton téléphone, puis faire le .apk .
Après l'IDE et le langage, en soit c'est un peut prêt tout
Pour des applications "simple", faudra utiliser le XML aussi (tu peux tout faire via le SDK Android, donc Eclipse et les plugins), enfin y'a sûrement des bibliothèques faites pour ça aussi. Pour les jeux faudra utiliser une bibliothèque 2D ou 3D , la plus connue est LibGDX (2D et 3D, mais plus 2D), qui au passage est cross platform :
Tu codes ton jeu sans te soucier de si c'est pour android, si c'est pour pc, si c'est pour iOs, ou si c'est une app web, et pour chacune des platformes t'as un fichier à compiler. Tu le compiles et c'est tout, toi t'a juste à coder ton jeu sans te soucier du reste, il se lancera aussi bien sur PC qu'Android.