November 16, 2019

Android Architecture


Android architecture or Android software stack is categorized into five parts:
  1. linux kernel
  2. native libraries (middleware),
  3. Android Runtime
  4. Application Framework
  5. Applications
Let's see the android architecture first.



Application Layer :

The applications are at the topmost layer of the Android stack. An average user of the Android device would mostly interact with this layer (for basic functions, such as making phone calls, accessing the Web browser etc.). The layers further down are accessed mostly by developers, programmers and the likes.
Several standard applications come installed with every device, such as:
  • SMS client app
  • Dial-er
  • Web browser
  • Contact manager

Application Framework Layer : 

Our applications directly interact with these blocks of the Android architecture. These programs manage the basic functions of phone like resource management, voice call management etc.

Important Blocks of Application Framework

  • Activity Manager: Manages the activity life cycle of applications. To understand the Activity component in Android.
  • Content Providers: Manage the data sharing between applications.
  • Telephony Manager: Manages all voice calls. We use telephony manager if we want to access voice calls in our application.
  • Location Manager: Location management, using GPS or cell tower
  • Resource Manager: Manage the various types of resources we use in our Application

Android Runtime Layer :

Dalvik is open-source software. Dan Bornstein, who named it after the fishing village of Dalvík in Eyjafjörður, Iceland, where some of his ancestors lived, originally wrote Dalvic VM. It is the software responsible for running apps on Android devices.
  • It is a Register based Virtual Machine.
  • It is optimized for low memory requirements.
  • It has been designed to allow multiple VM instances to run at once.
  • Relies on the underlying OS for process isolation, memory management and threading support.
  • Operates on DEX files.

Platform Libraries Layer :

The next layer in the Android architecture includes Android’s native libraries. Libraries carry a set of instructions to guide the device in handling different types of data. For instance, the playback and recording of various audio and video formats is guided by the Media Framework Library.

Open Source Libraries:

  • Surface Manager: composing windows on the screen
  • SGL: 2D Graphics
  • Open GL|ES: 3D Library
  • Media Framework: Supports playbacks and recording of various audio, video and picture formats.
  • Free Type: Font Rendering
  • WebKit: Browser Engine
  • libc (System C libraries)
  • SQLite
  • Open SSL

Linux Kernel Layer :

At the bottom of the Android stack is the Linux Kernel. It never really interacts with the users and developers, but is at the heart of the whole system. Its importance stems from the fact that it provides the following functions in the Android system:
  • Hardware Abstraction
  • Memory Management Programs
  • Security Settings
  • Power Management Software
  • Other Hardware Drivers (Drivers are programs that control hardware devices.)
  • Support for Shared Libraries
  • Network Stack
With the evolution of Android, the Linux kernels it runs on have evolved too.

Here is a Table highlighting the different Kernel versions.

Code
name
Version
numbers
Initial release
date
API
level
Ref.
No codename Old version, no longer supported: 1.0 September 23, 2008 1 [2]
Petit Four (only internally used) Old version, no longer supported: 1.1 February 9, 2009 2 [2]
Cupcake Old version, no longer supported: 1.5 April 27, 2009 3
Donut Old version, no longer supported: 1.6 September 15, 2009 4 [3]
Eclair Old version, no longer supported: 2.0 – 2.1 October 26, 2009 5 – 7 [4]
Froyo Old version, no longer supported: 2.2 – 2.2.3 May 20, 2010 8 [5]
Gingerbread Old version, no longer supported: 2.3 – 2.3.7 December 6, 2010 9 – 10 [6]
Honeycomb Old version, no longer supported: 3.0 – 3.2.6 February 22, 2011 11 – 13 [7]
Ice Cream Sandwich Old version, no longer supported: 4.0 – 4.0.4 October 18, 2011 14 – 15 [8]
Jelly Bean Old version, no longer supported: 4.1 – 4.3.1 July 9, 2012 16 – 18 [9]
KitKat Old version, no longer supported: 4.4 – 4.4.4 October 31, 2013 19 – 20 [10]
Lollipop Old version, no longer supported: 5.0 – 5.1.1 November 12, 2014 21 – 22 [11]
Marshmallow Old version, no longer supported: 6.0 – 6.0.1 October 5, 2015 23 [12]
Nougat Old version, no longer supported: 7.0 August 22, 2016 24 [13]
Older version, yet still supported: 7.1.1 – 7.1.2 December 5, 2016 25 [14]
Oreo Older version, yet still supported: 8.0 – 8.1 August 21, 2017 26 – 27 [15]
Pie Older version, yet still supported: 9.0 August 6, 2018 28 [16]
Android 10 Current stable version: 10.0 September 3, 2019 29 [17]
Legend:
Old version
Older version, still supported
Latest version
Latest preview version
Future release



No comments:

Post a Comment