The best place to start is the following website:
This site gives pretty comprehensive set of instructions on what you need and and what the prerequisites are. In general, you can do android programming on Windows, Mac and the Linux operating systems. The most popular programming language used for Android programming is Java though you can program in C++ if you want. For Java programming you will need the Java SDK. It is also highly recommended that you use the free Eclipse IDE though you don’t absolutely need it. You will also need to the Android SDK of course. For the Eclipse IDE, the Android SDK comes with a bunch of tools that allow you to create, virtual device configurations for testing, An SDK Manager to download all the SDK versions your developing and tools for creating and debugging Android applications.