Android is a Linux based mobile operating system that uses Linux for its device drivers,memory management, process management,Permission-based security model,support for shared libraries,Provide core system services and networking. It provides an abstract layer between the H/W and the rest of the S/W stack.The features of a Linux based OS helps the Android to develop.
Above the kernel there lies the Android native libraries. Libraries are normally written in C/C++ and can be called through Java interfaces. In this layer you can find the Surface Manager, 2D and 3D graphics, Media codecs, the SQL database (SQLite), and a native web browser engine (WebKit).
Application frameworks run above libraries and Android run time. Dalvik Virtual Machine optimized for mobile devices and Dalvik runs dex files, which are coverted at compile time from standard class and jar files.Applications are found even above the application frameworks.
Other features of Android platform are:
1) It extends media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
2) It suports wireless communication using:GSM mobile phone technology,3G ,EDGE,802.11 wifi network.Especially,
Cellular networking : GSM, EDGE, 3G (hardware dependent)
LAN : Bluetooth, and Wi-Fi (hardware dependent)
3) Graphics Hardware Acceleration
4) Camera, GPS and Compass (hardware dependent)
5) Touch screen and accelerometerfor motion sensing
6)Integrated browser based on the open source WebKit engine
7)SQLite for relational data storage
While running an application, security is ensured in Android which is much similar to that of Linux facilities.User and group IDs are assigned to applications just like super user power and normal user power in Linux. Due to this, security is enforced at the process level .A permission mechanism in Android enforces restrictions on the specific operation that a particular process can perform, and per-URI permissions for granting ad-hoc access to specific pieces of data.