Android - Software Stack for Mobile Devices

Android is a software stack for mobile devices that includes an operating system, middleware and key applications. Android is a mobile operating system running on the Linux kernel. It was initially developed by Android Inc., a firm later purchased by Google, and lately by the Open Handset Alliance. It allows developers to write managed code in the Java language, controlling the device via Google-developed Java libraries.

The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.

Libraries written in C and other languages can be compiled to ARM native code and installed using the Android Native Development Kit. Native classes can be called from Java code running under the Dalvik VM using the System.loadLibrary call, which is part of the standard Android Java classes.

Features:
  1. Application framework enabling reuse and replacement of components
  2. Dalvik virtual machine optimized for mobile devices
  3. Integrated browser based on the open source WebKit engine
  4. Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
  5. SQLite for structured data storage
  6. Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  7. GSM Telephony (hardware dependent)
  8. Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
  9. Camera, GPS, compass, and accelerometer (hardware dependent)
  10. Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE

Ref:
Google Projects for Android - http://code.google.com/android/
Android Developers Home - http://developer.android.com/
Android Development - http://www.androiddevelopment.org/
Android Software Development Kit(SDK) - http://developer.android.com/sdk/index.html
Android Native Development Kit(NDK) - http://developer.android.com/sdk/ndk/1.5_r1/index.html
Android Development with Eclipse - http://www.vogella.de/articles/Android/article.html
Android development with NetBeans - http://wiki.netbeans.org/IntroAndroidDevNetBeans
Android Software and Client-Server Architetcure - http://www.fairtracing.org/wp-content/uploads/2009/07/ivanantipov_report.pdf
The Java API to Android's Telephony Stack - http://www.linuxjournal.com/article/10453
MOTODEV Studio(from Motorola) for Android - http://developer.motorola.com/docstools/motodevstudio/