Android :- It includes the OS+ middleware + applications. (Linux HAL , device driver ).
1. Libraries are written in c/ c++.
i.Surface Manager:- Its responsible for the drawing window on the screen. It is responsible for the whole screen may be occupied by different/multiple process.
ii. OpenGL ES /SGL are the graphics library which includes the s/w if device having 3D chip on it. SGL for 2D.
iii.Media framework :- provided by packet video. (By OMA) Contain all codecs.
iv. Freetypes:- Are for fonts.
v.SQlite:- For data storage.
vi. Webkit:- opensource browser engine.
2. Android runtime:- (Its has Dalvik virtual machine + Core Library ). written in c/c++
which executes the dex files. (.dex is equivalent to .class files). .dex contains bytecodes with more efficient way than .class files. bytecode also highly CPU optimised.
Multiple DVM instances are running at the same time.
Core Library :- written in java. ex. collection , i/o (utility)etc
3. Application framework:- all in java programming language. It is toolkit almost every app uses it.
1. Activity manager:- manages the lifecycle of the applications. Maintain common backstack like navigation controller stack( this is across the processes also)..
2.Package Manager:- keeps track of which app is installed on your device + with that applications capability.
3.window manager:- manages the window. Java code + little lower with surface manager.
4.Telephony manager :- to access the data related to telephony like network etc.
5.Content provider:- it is the used to share the data across the multiple process.
6.Resource manager :- is reponsible for to store the localizable ie string, bitmaps, layout file
7. View system:- contain the UI components like button label etc.
8.Location manager:- location related
9. notification manager.:- like push, local notification.
Above all there is application layer. where you will find all the application like addressbook, camera etc.