Android is not a language or a subset but an API
The Android API is written for the java language. The android developers system requirements can be found below. Which outlines the specific version of java and eclipse, etc that you will need to be able to build android applications.
Supported Development Environments Eclipse IDE
Eclipse 3.5 (Galileo) or greater
Note: Eclipse 3.4 (Ganymede) is no longer supported with the latest
version of ADT. Eclipse JDT plugin (included in most Eclipse IDE
packages) If you need to install or update Eclipse, you can download
it from http://www.eclipse.org/downloads/.
Several types of Eclipse packages are available for each platform. For
developing Android applications, we recommend that you install one of
- Eclipse IDE for Java Developers
- Eclipse Classic (versions 3.5.1 and higher)
- Eclipse IDE for Java EE Developers
- JDK 5 or JDK 6 (JRE alone is not sufficient)
- Android Development Tools plugin (recommended)
- Not compatible with Gnu Compiler for Java (gcj)
Devices may be running different versions of the Android OS
As you can imagaine as the Android OS has evolved so has the API to be able to give developers the option of targeting new devices capable of running the latest features. So too are these new features unavilable on older devices and so are incompatible with those devices.
Code in graceful feature deprecation
What you have to decide as an android developer is what features you want in your appliction will determine what devices you can support. And if you wish to support a wider variety of devices you will then have to write code to detect device version and safely disable portions of your code that will use incompatible features on older devices.
The google developers have clear guidelines as to what features are supported in new devices and working with backwards compatibility is up to the developer to ensure that it works as intended.
When can I start learning android?
Pretty much anytime you like, from one of your other posts I see that you are already familiar with C#. Java is very similar to C# (chronologically it's the other way around iirc) in a lot of ways and what differences there are can be minor in a lot of ways (no LINQ, and different support for generics) etc.
However those differences should in no way impact your ability to learn java and apply that knowledge to writing android apps. Almost like winforms android has it's own way of doing things which will determine what techniques you will need to use to get your desired functionality.