Android Architecture
Hi folks,In our previous Android Tutorials, we have discussed quite a few concepts of Android development.
We have successfully set up android development environment in our last tutorial; I think that it is time to start with Android Architecture before starting basic android programing we must be aware of android architecture and layer's in android stack .
So lets take a take a quick walk through of the Android Architecture.
Following are the different layers in the Android stack:
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.
This layer enables the device to handle different types of data. These libraries are written in c or c++ language and are specific for a particular hardware.
Media framework: Media framework provides different media codecs allowing the recording and playback of different media formats.
SQLite: SQLite is the database engine used in android for data storage purposes.
WebKit: It is the browser engine used to display HTML content.
OpenGL & SGL: Used to render 2D or 3D graphics content to the screen.
Free Type: Font Rendering.
Open SSL

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 Architecture: Layers in the Android Stack
The Android stack, as the guys over at Google call it, has a number of layers, and each layer groups together several programs. In this tutorial I’ll walk you through the various layers in Android stack and the functions they are responsible for.Following are the different layers in the Android stack:
- Linux Kernel Layer
- Libraries Layer
- Application Framework Layer
- Applications layer
Kernel Layer:
The basic layer is the Linux kernel. The whole Android OS is built on top of the Linux 2.6 Kernel with some further architectural changes made by Google. It is this Linux that interacts with the hardware and contains all the essential hardware drivers.
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
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.
This layer enables the device to handle different types of data. These libraries are written in c or c++ language and are specific for a particular hardware.
Some of the important native libraries include the following:
Surface Manager: It is used for compositing window manager with off-screen buffering. Off-screen buffering means you cant directly draw into the screen, but your drawings go to the off-screen buffer. There it is combined with other drawings and form the final screen the user will see. This off screen buffer is the reason behind the transparency of windows.Media framework: Media framework provides different media codecs allowing the recording and playback of different media formats.
SQLite: SQLite is the database engine used in android for data storage purposes.
WebKit: It is the browser engine used to display HTML content.
OpenGL & SGL: Used to render 2D or 3D graphics content to the screen.
Free Type: Font Rendering.
Open SSL
Android Runtime
Android Runtime consists of Dalvik Virtual machine and Core Java libraries.
Dalvik Virtual Machine
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 hifger 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.
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
Android 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 are:
Activity Manager: Manages the activity life cycle of applications.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.
Application Layer
The applications is 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.) and this is where our applications are gonna fit. Several standard applications comes pre-installed with every device, such as:
- SMS client app
- Dialer
- Web browser
- Contact manager
- Games etc.
As a developer we are able to write an app which replace any existing system app. That is, you are not limited in accessing any particular feature. You are practically limitless and can whatever you want to do with the android (as long as the users of your app permits it). Thus Android is opening endless opportunities to the developer.
I hope you are clear with the basic Android architecture now! So, in next tutorial we will see what are the android app components. So, Stay tuned for more android development tutorials.
This tutorial has been written with an aim to teach you and explore a little bit about what is android architecture. #Some of Stats/Info mentioned in this post are taken from Wikipedia. They are subjected to changes as android technology is growing very fast.
This comment has been removed by the author.
ReplyDeleteIt’s always so sweet and also full of a lot of fun for me personally and my office colleagues to search your blog a minimum of thrice in a week to see the new guidance you have got.
ReplyDeleteDotnet Training in Chennai | Dotnet Training course in Chennai
Android Training in Chennai |Best Android Training course in Chennai
CCNA Training in Chennai | CCNA Training course in Chennai
MCSE Training in Chennai | MCSE Training course in Chennai
Embedded Systems Training in Chennai |Embedded Systems Training course in Chennai
Matlab Training in Chennai | Matlab Training course in Chennai
C C++ Training in Chennai | C C++ Training course in Chennai
linux Training in Chennai | NO.1 linux Training in Chennai
Unix Training in Chennai | NO.1 Unix Training in Chennai
Sql Training in Chennai | NO.1 Sql Training in Chennai
It’s great to come across a blog every once in a while that isn’t the same out of date rehashed
ReplyDeletematerial. Fantastic read.
Java Training in Chennai |Best
Java Training in Chennai
C C++ Training
in Chennai |Best C C++ Training Institute in Chennai
Data science Course
Training in Chennai |Best Data Science Training Institute in Chennai
RPA Course
Training in Chennai |Best RPA Training Institute in Chennai
AWS Course Training
in Chennai |Best AWS Training Institute in Chennai
Devops Course Training
in Chennai |Best Devops Training Institute in Chennai
Selenium Course Training in
Chennai |Best Selenium Training Institute in Chennai
Java Course Training in Chennai |
Best Java Training Institute in Chennai
It has been simply incredibly generous with you to provide openly what exactly many individuals would’ve marketed for an eBook to end up making some cash for their end, primarily given that you could have tried it in the event you wanted.
ReplyDeleteData Science Training in ChennaiKK Nagar | Data Science Course in Chennai
Python Course in Chennai KK Nagar | Python Training Course Institutes in Chennai
RPA Training in Chennai KK Nagar | RPA Training in Chennai
You always try to sharing such a good information with us.
ReplyDeleteAndroid Training in Delhi
Android Course in Delhi
Nice post. Thanks for sharing this basic detail and informing about your services.
ReplyDeleteAndroid Training Institute in Chennai | Android Training Institute in anna nagar | Android Training Institute in omr | Android Training Institute in porur | Android Training Institute in tambaram | Android Training Institute in velachery
Excellent post, it will be definitely helpful for many people. Keep posting more like this.. oracle training in chennai
ReplyDeleteHire the Best best application development company San Francisco
ReplyDeleteReally wonderful blog! Thanks for taking your valuable time to share this with us. Keep us updated with more such blogs.
ReplyDeleteBest IAS Coaching in Mumbai
Great Post. Very informative. Keep Sharing!!
ReplyDeleteApply Now for Android Training in Noida
For more details about the course fee, duration, classes, certification, and placement call our expert at 70-70-90-50-90
Best HNI database Providers In India
ReplyDelete