The base language in which the Android OS is written is in Java. So the primary language for developing the app and the extensions are limited to Java. However the API also extends in such way that you can use the other programming languages to write the code for app or extension within the Android platform itself. Most of the supported languages are - C#, Python, Ruby, Scala and Javascript (along with HTML5).
C# Port of Android is known as Xamarin. So you can use the .NET code to design the android app. It is very easy to write the app using
Xamarin development if you're comfortable with C#. Installation procedure for Xamarin is explained on the official documentation. It is very easy and all need to do is install Android SDK and then download Xamarin.
QPython is the python port for Android. Scripting nature of Python makes it easy to write Android code. You can make complete apps, patches and extension using QPython. Installation The installation is to be done on Android Phone itself. So you can run the python scripts inside the Android. Mostly this is used by the testers and patch developers.
Ruby - In case of Ruby there are two ports for Android namely - Ruboto and RubyMotion. Rubymotion is not necessarily an Android specific port. But it can help export the ruby code to Android. As for Ruboto you can create and run Android specific code and apps using this framework. The installation is very simple and you just have to run the installer for these frameworks.
Javascript - There are literally hundreads of forks out there for Javascript. You can find lot of android development related projects on Github. Few of the most popular are - Phonegap and Nativescript. These two projects make use of simple Javascript framework to develop android apps. Installation is not difficult and you just have to follow the instruction in the document.
There are few other projects such as Tabris, NodeJS Android etc that you can take a look at.
HTML5 - Though you may be surprised that how can a webpage markup is capable of creating apps for Android. The answer is simple. HTML5 based apps for android are mostly focused on apps which are dependent on web. So there are frameworks developed for android that makes use of HTML5. Few projects that are into this are - Cordova, Sencha, Ionic and Phonegap. Each of these frameworks have different way of installation and usage.
In order to develop the app you have to follow this mode of direction.
1. Install Java SDK
2. Install Android SDK
3. Download language specific port (e.g. phonegap or ionic etc)
4. Write the code.
5. Convert your code using native launcher scripts
This should be the direction in which you should be developing the app for Android.
Most of the frameworks mentioned in this answer are supported on all the operating system. You can download them on your operating system and start developing the app.
Android is an Operating system designed for portable system. It's purpose is to make sure that user can interface with the device and get his tasks done.