Thu. Oct 3rd, 2024

Architectute is nothing but physical structural plan or block diagram of some view.

Android is Linux based software stack , it is open source for lot of devices.  For developers they are giving full acces to Frame work API acces to develop core level applications, because of that only manufactrers are customizing their own features.

The following diagram is shows rhe components of android.

Android architecture has total 6 layers.

System Apps

The top most layer is system APPS. Normally normal devices will come with Contacts, Messages, Browsers, calenders etc.. so here user can install any number of applications which they are using, some third party applications may be we can set as default apps like browers, Messengars and keyboards

These all very helpful to for because if developer is developing his own applications he can those functionalities for example if we developemnet any application related to SMS just developer invoke the services then next portion of the service like sending sms & sms status will be done android system only

Java API Framework

The Android OS complete feature set is avaible for devlopers in the form of APIs those APIs are written by Java language. This are very  helpful to developers to simplify their app development, even developer can use cor part of architecture alos to build apps like components  and services which are included in API framework. The following are few of the APIs

  • View System:

View System is for building of user interface in android like textview, button, grid, list, image,vidoes etc. here using XML/Java we can build UI is very very rich, simple  & attractive.

  • Content Providers:

Content providers is nothing but we can access the data from other applications like while sending the message we are accessing contacts data & in now days all social media applicatiosn we are accessing the contacts, gallery etc.

Managers:

These are also API but non coding portion providing layouts, images, strings, colors, default styles etc.

  • Resource

Resource manager provides acces to resources for our developemnet such as Strings, Images, nimations, graphics, colors, vidoes etc.

  • Notification

Notification Manger will help enable the custom notification in status bar.

  • Activity

Activity Manager as very very important API in android it is only controlling the navigation of each screen in our apps using lifecycle methods.

  • Location

This Api could help to acces the geo location,navigation using Services of Android Architecture.

  • Package

Each package contains multiple java classes and it can control all the functionalities of those classes.

  • Telephony

It can communicate with networks like mobile data, wifi, hotspot & sharing data etc.

  • Window

It can handle the multiple windows in our device. For example symultantously while listing the songs chatting with some one so its handling two two different windows at a time like same some windows cache memory & browser windows etc.

  1. Native C/C++ Libraries

Many of the android componnts and servicew are build from native code those android runtime & Hardware abstraction layers because native libraries wriiten in C & C++.

  • Webkit

It can support all type of browsers.

  • Open Max AL

It should create run time environment.

  • Libc

Lot of componets are developed by C & C++ so it always requied support of Libc.

  • Meida framework

Android apps can support all type of media like jpg, png, mp3, mp4 etc.

  • Open GLES

It can support 2D & 3D graphics

  1. Android Run Time
  2. Android Runtime (ART)

From android 5.0 and above version of android with its own process and its own instance of Android Runtime. ART is designed for low memory device by excuting the DEX (byte code) files to run on virtual devices,and bytecode is designed special optimized for low memory devices.

ART features

  • Optimized garbage collection (GC)
  • Just In Time complier (JIT)
  • Ahead of Time (AOT)
  • Better debugging support
  • Supporting Crash reports

Note:

Previosly Lower version (less than 5.0) is run in Dalvik virtual machine, now as well as it can run in ART also, then it can run DVM as well, but vicevera is not possible.

  • Core Librariries

Android application also includes a set of core libraries that provide most of the runtime functionality of the Java programming language, and it includes android 8.0 features as well

  1. Android Abstraction Layer(HAL)

The android hardware abstraction layer provides User interfaces that expose hardware capabilities of device with higher version of Java. It can lot of hard ware components, suac as  Audio, Bluetooth, Camera, sensors. When access device hardware through a framework API  Android system loads the library module for that hardware component.

  1. Linux Kernel

Linux kernel is hardware layer. For example, the ART relies on the Linux kernel for functionalities such as threading and low-level memory management.  Linux kernel allows Android to take advantage of key features like develop hardware drivers for a well-known kernel such as Audio, Keypad, Shraed memory, Usb, Bluetooth, Binder(IPC)Display, Camera, Wifi, Power Management etc.

By Rajashekar

I’m (Rajashekar) a core Android developer with complimenting skills as a web developer from India. I cherish taking up complex problems and turning them into beautiful interfaces. My love for decrypting the logic and structure of coding keeps me pushing towards writing elegant and proficient code, whether it is Android, PHP, Flutter or any other platforms. You would find me involved in cuisines, reading, travelling during my leisure hours.

Leave a Reply

Your email address will not be published. Required fields are marked *