As the name suggests here in this article we would be discussing about the Android Architecture.
Android is an open source, Linux based software that has been created to serve a wide array of devices and form factors.
The Linux Kernel
As already told above, Android has the Linux kernel. So, ART (Android Runtime) depends on it for underlying functionalities, such as threading and low-level memory management.
With the usage of Linux kernel, Android gets key security features and also allows device manufacturers to develop hardware for an open-source and widely popular kernel.
Hardware Abstraction Layer (HAL)
It provides standard interfaces that take the device hardware capabilities to the next level Java API (Application Programming Interface) framework. HAL consists of multiple library modules, each of which implements an interface, dedicated to serve a specific type of hardware component like a camera or a bluetooth module. When a framework API makes a call to access any hardware of the device, the Android system loads the respective library module to make the device hardware operational.
Android has a lot of features to offers like:
- SMS messaging
- Internet Browsing
- Contacts and
- Much More.
Apps that come in the platform package have no special status amongst the apps that user installs. So, a 3rd party app can easily become the device’s default :
- Web Browser
- SMS messenger or
- Even the default keyboard (some exceptions do apply, like system settings app.)
System apps functions both as apps for users and also provide key capabilities that are developer accessible from their own app. Like if your app wishes to deliver a text message, you don’t need to build that functionality yourself-you just need to invoke any of the already SMS installed apps, so as to deliver a text to the specified recipient.
There is a whole lot to be learnt and discussed about Android Architecture, you should Google Search it, if you want to go in detail.