Android is a complete set of software for mobile devices: an operating system, middleware and key mobile applications. It is developed by Open Handset Alliance which is a group of 47 companies formed by Google Inc.

Android comes with a set of core applications including an email client, SMS program, calendar, maps, browser, contacts, and others. All applications are written using the Java programming language.

The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language. Android runtime includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language. Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack.

As of now following are the various features and specifications of Android:

Optimized graphics

Android is powered by a custom 2D graphics library, VGA, and 3D graphics based on the OpenGL ES 1.0 specifications (hardware acceleration optional) 

Storage

The Database Software SQLite is used for structure data storage

Connectivity

Android supports connectivity technologies including GSM/EDGE, CDMA, 3G, UMTS, Bluetooth, and Wi-Fi.

Messaging

SMS and MMS are available forms of messaging including threaded text messaging.

Web browser

The web browser available in Android is based on the open-source WebKit application framework.

Java support

Software written in Java can be compiled to be executed in the Dalvik virtual machine, which is a specialized VM implementation designed for mobile device use, although not technically a standard Java Virtual Machine.

Media support

Android supports the following audio/video/still media formats: H.263, H.264, MPEG-4, AMR, AAC, MP3, MIDI, WAV, JPEG, PNG, GIF, BMP.

Additional hardware support

Android can utilize video/still cameras, touchscreens, GPS, accelerometers, compass, and accelerated 3D graphics.

Development environment

Includes a device emulator, tools for debugging, memory and performance profiling, a plugin for the Eclipse IDE.

Multi-touch

Android has native support for multi-touch but the feature is disabled at the kernel level possibly to avoid Apple patents on touch-screen technology. An unofficial mod has been developed that enables multi-touch, but requires superuser access to the device to flash an unsigned kernel.

References: 1. Android Official Site 2. Android at Wikipedia