Android is a mobile platform that consist of 3 things such as:
- Operating System
- Middleware
- Key Applications
I’ll justify this definition with the help of architecture. So, here it goes:
ANDROID ARCHITECTURE
The software stack is split into four layers and those are:
The main responsibilities of Operating System are:
- Memory Management
- Driver Management
- Resource Management
- Application Layer
This is the top most layer of the architecture. We can also call it as Software Component.
We can develop android application by using Java/C++ and .NET.
But the latest version of android supports only java. So, if we want to write a code in java; we need support of SDK.
In order to write a code in C/C++ support of NDK is required.
And if we write a code in .NET then we need a support of Mono Android framework. Android Runtime
Android runtime:
In android runtime, there are core libraries and DVM (Dalvik Virtual Machine) which is responsible to run any android application.
Core Libraries are written in the Java programming language.
DVM:
DVM is like JVM but it is optimized for mobile devices.
NATIVE LIBRARIES:
If we want to display some graphics in java we need to use some Native methods.
With the help of native methods java code interacts with some other programming languages and those other programming languages are called as Native Methods.
So If we want to display some graphics we use a graphic library and we call it as OpenGL|ES library which is a native library.
Application Framework:
Application Framework provides the infrastructure for the application development.
Everything is ready made in the library; we don’t need to write huge amount of code to get the Wi-Fi component, Bluetooth component, and Position.
We need to just call the method of their ready made class to work with their component.