Android System Architecture
Lets have a look at the below image, which represents the overall android architecture. This image will give you some basic idea about android OS design. Basically you will learn the overall control flow between different android layers. The below image gives us some idea how the entire android OS communicate through different layers.
Basically android has the following layers:
- applications (written in java, executed in Dalvik). All your custom applications will be available in this layer. This is the top most layer in android OS.
- framework services and libraries (written mostly in java). Internally all of your custom application APIs will call this layer. So what ever API we call from the java layer, all of them will go through this layer.
- Android Runtime. All applications and most of the framework code executes in a virtual machine. It means all the Java and framework code will be converted into executable code in this layer. The Android virtual machine is also called Dalvik virtual machine.
- Native libraries, daemons and services (written in C or C++). Native libraries are nothing but part of internal Android OS. These libraries are used when we called any API from the application layer. Basically when we call any API from Java layer or from the upper layer, then it calls the API from the native layer which is mostly written in C/C++, SO we can say here the Java API is converted into C/C++ API.
- The Linux kernel, this layer includes drivers for hardware, networking, file system access and inter-process-communication. This is the most complex layer in the Android OS. What ever we do on the upper layer, every thing will be passed through this layers, which will give us the final output.
For more details on Android system layout, partition table, partition size etc, you can read my article ‘Android File System Structure/Architecture/Layout Details’.
I hope this small tutorial will help you at it’s best. If you have queries kindly send it to us, we will try to reply asap.