Wednesday 4 January 2017

Android Platform Architecture

Android Platform Architecture

Android is an open source, Linux based software. Following diagram shows component of the Android platform.


The Linux kernel :

The foundation of the Android platform is the Linux kernel.Using a Linux kernel allows Android to take advantage of key security features and allows device manufacturers to develop hardware drivers for a well-known kernel.

Hardware Abstraction Layer(HAL) :

 The hardware abstraction layer provides standard interfaces that expose device hardware capabilities to the higher-level Java API framework. The HAL consists of multiple library modules, each of which implements an interface for a specific type of hardware component, such as the camera or Bluetooth module. When a framework API makes a call to access device hardware, the Android system loads the library module for that hardware component.

Android Run time :

For devices running Android version 5.0 (API 21) or higher, each app runs in its own process and with its own instance of the Android Run time(ART).ART is written to run multiple virtual machines on low-memory devices by executing DEX files, a byte code format designed specially for Android that's optimized for minimal memory footprint.

Native C/C++ Libraries :

Many core Android system components and services, such as ART are built from native code that require native libraries written in C and C++.The Android platform provides Java framework APIs to expose the functionality of some of these native libraries to apps.

Java API Framework :

The entire feature-set of the Android OS is available to you through APIs written in the java language. These APIs form the building blocks you need to create Android apps by simplifying the reuse of core, modular system components and services, which include following:

  • A rich and extensible View System you can use to build an app’s UI, including lists, grids, text boxes, buttons, and even an embeddable web browser
  • A Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files
  • A Notification Manager that enables all apps to display custom alerts in the status bar
  • An Activity Manager that manages the life cycle of apps and provides a common navigation back stack
  • Content Providers that enable apps to access data from other apps, such as the Contacts app, or to share their own data.

System Apps :

Android comes with a set of core apps for email, SMS messaging, calendars, internet browsing, contacts, and more. Apps included with the platform have no special status among the apps the user chooses to install. So a third-party app can become the user's default web browser, SMS messenger, or even the default keyboard (some exceptions apply, such as the system's Settings app).

1 comment: