Android Introduction

Introduction

Architecture of Android Platform

In this part, I am summarizing the architectural concept of Android which I referred from the post of Prof. Adam Porter.


Basically, we can define the architecture in the following layers:

Kernel
This layer is responsible for handling all the Kernel (OS) related features that is required for any computing device. The Linux Kernel in Android architecture is able to handle all the generic OS features required for any handheld devices. This layer provides the core OS features  (such as, the security, the memory and process management, the files and network management, IPC mechanism called as binder) along with the device drivers, such as, the display driver, the audio drivers and so forth. The layer above this layer uses the drivers as an interface to interact with the handheld device.

Libraries and Run-time
This includes the native libraries that take care of the core, performance critical applications, such as, the display rendering, and so forth. There are many libraries, for instance, the System C library (responsible for process and thread management, memory management), the surface manager (related to display management), the media framework and so forth.
The Android run-time includes the core java libraries and the Dalvik virtual machine. The Dalvik virtual machine runs the byte code format (called DEX format) which is different than the normal byte code format for the general JVM. The Dalvik VM is specifically designed to run in resource constrained environment like the handheld devices.

Application Framework
Contains the reusable components that are reused by many applications. For instance,
  1. package manager - tracks the applications currently present on the device
  2. window manager - manages the windows comprising the application (for instance the sub-windows in the screen)
  3. view system - takes care of the screen elements, such as, the phone icon, messaging icon and so forth
  4. resource manager - manages the non compiled resources, such as, the graphics, the layout files and so forth
  5. activity manager - manages the application life cycle and the navigation throughout the its life cycle 
  6. content provider - allows applications to store and share the information to other applications. For instance, the contact information is stored by contact app and is shared to the phone and messaging app
  7. location manager - manages the current location information
  8. notification manager - takes care of notification events, for instance the notification icons that is displayed in the notification sub-window
Applications
This includes the built-in applications and the user custom applications. User's custom applications are allowed to replace the android default apps.


References:

  1. coursera.org
  2. Dalvik VM video by Dan Bornstein

No comments:

Post a Comment