Para programar en android tambien puedes usar ActionScript 3 y AIR pudiendo compilar para pc/mac, android e ios. Puedes o bien tirar desde cero a mano y hacerte tu propio motor o usar varios que hay disponibles, e incluso 3D...lo bueno de hacerlo desde cero es que te lo haces al gusto y teminas entendiendo perfectamente el lenguaje/api y sus posibilidades.
Luego tienes frameworks, sdk's, motores,... varios como corona o unity, algunos de pago, otros de pago solo si el app va a ser comercial, otros segun la ganancia que llegues a tener, etc... lenguajes usados? en general de tipo script como lua, javascript, unityscript,...
Y por ultimo C++/C para poder programar tanto para ios como android (aunque no es que sea tan facil y directa la cosa pero resumamos) y de paso podrias meterte a mirar opengl, programacion grafica, muy util en cualquier plataforma pero si o si este es el camino que mas tiempo y estudio lleva de los tres.