Android is an operating system which was build for mobile devices and tablets. It is a software stack comprising not only operating system but also middleware and key applications.
Android provides low level system software to high level end user application software. Android includes Linux kernal based OS, rich UI, multiple build in software, Telephony services, multimedia frameworks etcs. One of the best part about android platform is regardless of how strong a build in application might be you can always build similar powerful applications with access to all the resources on the device. Since android is an open source platform you can also get application level codes and start experimenting with it.
The Layer of Android Architecture
Linux Kernel: This provides a foundational hardware abstraction layer as well as core services such as processes, memory, device drivers and file system management. Linux kernel also provide android specific services such as power management, shared memory, interprocess communication etcs.
Prominent Code Libraries: Here is short overview of libraries used within the android system
- Surface Manager: Display Management
- Open GL: Graphics Engine
- Media Framework: Audio/Video
- SQLite: SQL Database
Android Runtime: This provides two main components:
- Core Java Libraries : for a full featured java libraries, such as java.*, javax.*, android.*, org.*, junit.*
- Dalvik Virtual Machine: provides environment for linux based kernel to deploy/host android application. Learn more here.
Application Manager: Array of managers that provide variety of services. Some of them are:
- Package Manager: Keeps track of apps packages on device
- Window Manager: Manages window comprising an app
- View System: Provides common UI elements
- Resource Manager: Manages un-compiled resources.
- Activity Manager: Manages app lifecycle and navigation stack
- Content Provider: Interapplication data sharing
- Location Manager, Notification Manager etcs
User Application: These are the apps that run on top of all the android system. These may be build-in or third party apps such as contacts app, phone, browser etcs.