Android Architecture
×
Home Courses Community Support
Gray Matter

First Step Towards Android: Introduction »

Understanding Activities and Intents »

Hands On With UI Designing In Android (Controls-Views,Widgets and Layouts) »

Updating... »

Android Architecture

Android is an open-source software stack for mobile devices that includes an operating system, middleware and key applications.
 


Linux Kernal

It is the soul/heart of android architecture as android is based on linux kernel. This is very first or we may say the root layer of android architecture which is responsible for all the responsibilities of an OS i.e. power management, device drivers, memory management, resource management/access and device management.

It has approximately 115 patches. This provides a level of abstraction between the device hardware and it contains all the essential hardware drivers like camera, keypad, display etc. Also, the kernel handles all the things that Linux is really good at such as networking and a vast array of device drivers, which take the pain out of interfacing to peripheral hardware.


Libraries (middleware) : Android libraries

On top of Linux kernel there is a set of libraries or we may say Native libraries including open-source Web browser engine WebKit which is responsible for browser support, Open GL, FreeType for font support, well known C runtime library i.e. libc, SQLite database which is a useful repository for storage and sharing of application data, libraries to play and record audio and video i.e. Media, SSL libraries responsible for Internet security etc.

This category contains those Java-based libraries which are specific to Android development. A summarize study of some key core Android libraries available to the Android are discussed below−

  • android.app − Provides access to the application model and is the cornerstone of all Android applications.
     
  • android.content − Facilitates content access, publishing and messaging between applications and application components.
     
  • android.database − Used to access data published by content providers and includes SQLite database management classes.
     
  • android.opengl − A Java interface to the OpenGL ES 3D graphics rendering API.
     
  • android.os − Provides applications with access to standard operating system services including messages, system services and inter-process communication.
     
  • android.text − Used to render and manipulate text on a device display.
     
  • android.view − The fundamental building blocks of application user interfaces.
     
  • android.widget − A rich collection of pre-built user interface components such as buttons, labels, list views, layout managers, radio buttons etc.
     
  • android.webkit − A set of classes intended to allow web-browsing capabilities to be built into applications.


Android runtime

At the same layer as the libraries, This is the third section available on the second layer from the bottom of the android architecture. Android runtime provides a set of core libraries which enable Android application developers to write Android apps using standard Java programming language.

This section provides a key component  called as  Dalvik Virtual Machine which is very much similar to the Java Virtual Machine however it is specially designed and much optimized for mobile devices. It uses memory management and multithreading which are the core features of Linux and are intrinsic in the java language.It consumes less memory than and provides fast and better performance as DVM enables every Android application to run its own process, with its own instance of the Dalvik virtual machine.
 

Application Framework

It is on the top of Native libraries and android runtime, it provides the various capabilities of Android OS to the developers so that they can make use of them in their apps.
Android framework includes Android API's such as UI (User Interface), telephony, resources, locations, Content Providers (data) and package managers. It provides a lot of classes and interfaces for android application development.


The Application Framework layer provides many higher-level services to applications in the form of Java classes. Application developers are allowed to make use of these services in their applications.

The Android framework includes the following key services −

  • Activity Manager − Controls all aspects of the application lifecycle and activity stack.
     
  • Content Providers − Allows applications to publish and share data with other applications.
     
  • Resource Manager − Provides access to non-code embedded resources such as strings, color settings and user interface layouts.
     
  • Notifications Manager − Allows applications to display alerts and notifications to the user.
     
  • View System − An extensible set of views used to create application user interfaces.


Applications

This is the topmost layer of the android architecture, it is on the top of android framework.

Android will ship with a set of core applications including an email client, SMS program, calendar, maps, browser, contacts, and other applications which you download and install from the play stores i.e. Android market. All applications are written using the Java programming language.

 

← Preview

Android Enabled Devices

Next →

The Right Environment

NOTES

Our mission is to provide highly effective and quality education via innovative solutions. Geeksdemy look forward to bridge the gap between in-demand technology and academics in order to deliver innovative, easy, interesting and affordable learning across the Globe.

Courses

  • Python
  • Game Development with Unity 3D
  • Arduino
  • PCB & Circuit Designing
  • Robotics and Embedded C
  • 8051/8052 Embedded Systems
  • QuadCopter & UAV
  • MATLAB with Robotics
  • Raspberry Pi
Learn On the Go!
Get the Android App
Get the iOS App