Android system architecture

1. Linux Kernel

Linux kernel provides an abstraction hardware layer for an Android. This allows an Android to be ported into variety of different devices. Furthermore the linux kernel is used for android's memory management, process management, netwoking and other underlined operating systems services.

2. Native Libraries

These shared libraries are pre-installed on a android device by each vendor. They are written in C/C++ language and allow 3D and 2D graphics, window manager, all sorts audio video formats, Sqllite database and etc.