Linux Kernel: This is located at the bottom of the stack. It has got Linux 3.6. This stack has got all the important device drivers like a camera, graphics, and keypad. It abstracts the device hardware. This layer takes care of networking and interfacing with other peripheral devices.
Libraries: In the second layer from the bottom, there are different libraries. This includes Runtime libraries, Web browser engine (Webkit), SQLLite, etc. In short, it will have all the libraries that might be required by the applications in the Android environment. We can compare this as a repository of libraries that an operating system has to support the operating environment.
This layer will have the android libraries as well. This contains the Java-based libraries which are specifically meant for Android-based development. It will contain the Application Framework libraries, UI development libraries, graphics libraries, and database access libraries. Some of the key android libraries are listed below:
In this stack, we will also have an Android runtime section. Here we find Dalvik Virtual Machine, which is prototyped on Java Virtual Machine. Dalvik Virtual Machine is optimized completely for the Android environment. Dalvik Virtual Machine makes use of key Linux features such as multithreading and memory management. Dalvik Virtual Machine allows each and every Android application to run within its process, which will have its instance of Dalvik VM.
The Application Framework stack is made up of essential services. These high-level services are made accessible to the applications as Java classes. These services are used by the application developers, within their applications. Some of the key services are listed below:
This is the topmost stack made up of android applications. The applications are installed at this layer.