• Manual Testing

    Manual Testing is the process of manually testing software for defects.

  • Automation Testing

    Test Automation is the use of special software to control the execution of tests and the comparison of actual outcomes with predicted outcomes.

  • Mobile Application Testing

    Mobile application testing is a process by which application software developed for hand held mobile devices is tested for its functionality, usability and consistency.

  • Database Testing

    Database testing is about checking exact values which have been retrieved from the database by the web or desktop application data should correctly match as per the records that are stored in the Database

Monday, February 3, 2014

Posted by Sri Harsha Emani
No comments | 2/03/2014 02:00:00 AM
Android Architecture

The Android OS can be referred to as a software stack of different layers, where each layer is a group of several  program components. Together it includes operating system, middle ware and important applications. Each layer in the architecture provides different services to the layer just above it. The below figure shows the diagram of Android Architecture which is roughly divided into five sections and four main layers.


The different layers in the Android architecture are:

  • Linux Kernel Layer
  • Native Layer
  • Application Framework Layer
  • Applications layer

Kernel Layer:


The basic layer at the bottom of the Android stack is the Linux Kernel. The Linux kernel acts as an abstraction layer between the hardware and other software layers. It is this Linux that interacts with the hardware and contains all the essential hardware drivers. Drivers are programs that control and communicate with the hardware. 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
The different Kernel versions are given below:

Native 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. These libraries are written in c or c++ language and are specific for a particular hardware.


Open Source Libraries:
  • Surface Manager: composing windows on the screen
  • SGL: 2D Graphics
  • Open GL|ES: 3D Library
  • Media Framework: Media framework provides different media codecs allowing the recording and playback of different media formats
  • Free Type: Font Rendering
  • WebKit: It is the browser engine used to display HTML content
  • SQLite: SQLite is the database engine used in android for data storage purposes
Android Runtime:

Located on the same level as the libraries layer, the Android runtime layer includes a set of core Java libraries as well. Android application programmers build their apps using the Java programming language. It also includes the Dalvik Virtual Machine.



Dalvik Virtual Machine
It is the software responsible for running apps on Android devices. It is a type of JVM used in android devices to run apps and is optimized for low processing power and low memory environments. Unlike the JVM, the Dalvik Virtual Machine doesn’t run .class files, instead it runs .dex files. .dex files are built from .class file at the time of compilation and provides higher efficiency in low resource environments. The Dalvik VM allows multiple instance of Virtual machine to be created simultaneously providing security, isolation, memory management and threading support. It is developed by Dan Bornstein of Google.

Core Java Libraries
These are different from Java SE and Java ME libraries. However these libraries provides most of the functionalities defined in the Java SE libraries.

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 in detail click here
  • Content Providers: Manage the data sharing between applications. Our Post on Content Provider component describes this in greater detail
  • 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
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.).


Several standard applications come installed with every device, such as:
  • SMS client app
  • Dialer
  • Web browser
  • Contact manager

0 comments:

Post a Comment

Blogroll

Blogger news

BLOGROLL

Blogger templates

Blogroll

About