Introduction to Android Architecture
Android is an operating system for Mobile devices (Smartphones and Tablets) and it is open source Platform built on Linux OS. It was developed by a conglomerate of Handset companies like Sony, Samsung, Intel and others. This open handset alliance (OHA) was led by Google and it releases versions of Android OS to be deployed on Mobile devices. Android Architecture provides an integrated approach for developers to develop mobile applications that can run on any devices with Android OS installed in it and it allows the applications component to be reused and obviate the need for redevelopment. Android source code are offered under the open source licenses category in multiple web sites. Google hosts most of it under Apache License 2.0 and kernel under General public license 2.0. It also provides a robust run time environment for execution of apps with powerful interaction with peripheral devices and other apps.
In this article let’s study the Android Architecture in detail.
What is Android Architecture?
Before studying the Architecture let us go through some of the features of Android Operating system
- Android OS can be customized as per the need and hence we can notice many avatars of this OS are deployed in different mobile devices with multiple unique features.
- It supports all mobile connectivity technologies viz., Wi-Fi, CDMA, GSM, NFC, Bluetooth etc., and basic functionalities like telephony, SMS and data transfer. With this connectivity data can be transferred back and forth between devices thru various apps.
- It provides Interfaces (APIs) that supports location dependent services such as GPS
- SQLite database provides storage functionalities needed by Android. Being a lightweight database it enables a simpler storage and quicker retrieval of data.
- It supports all versions of multimedia files (Audio/Video) and integrates Microphone, Camera, Accelerometer and speaker for effective management of recording, playback operations.
- HTML5 and CSS3 are supported for development of intuitive and impressive front end screen.
- It allows multiple windows to be active at a time, performing different tasks.
- Graphics 2D/3D are supported.
- Supports NFC technology that enables connectivity between two NFC enabled devices just by touching devices with each other.
- Multi languages support, User adjustable widgets, Google cloud messaging are the other features.
It consists of several software modules to support functioning of mobile devices. These software modules mainly containing kernel and set of Libraries which facilitates mobile application development and they form part of runtime, application framework and the actual application.
The application modules are grouped as five sections under four different layers.
Android runtime layer has two sections namely DVM and Libraries and all the layers has only one section each.
1. Application Layer
Application layer is the topmost layer in the architecture and it is the front end for the users. Native applications developed using Android architecture along with third party applications are installed in this layer. Applications from this layer gets executed with help of run time layer using the classes and services provided by framework layer. Example of Application is Email, Contacts, Calendar, Camera, Time, Music, Gallery, Phone, SMS, Alarm, Home and Clock.
2. Applications Framework Layer
Applications Framework layer holds the classes needed to develop Applications in Android platform. It enables access to hardware, handles user interface and manages resources for application. The services provided by this layer are made available to application layer for development in the form of class. Some of the components in framework layer are NFC service, Notification Manager, Activity Manager, Telephony service, Package Manger and view system and used in application development as needed.
3. Android Runtime Layer
Android Runtime layer is a vital part of this OS and it contains sections like Dalvik Virtual Machine (DVM) and Core libraries. This environment provides basic power to the applications with help of libraries. Dalvik virtual machine exploits the basic inherent power of Java language in managing memory and multi-threading options to provide multiple instances to Android OS and ensure that it runs effectively. It leans on Kernel for threading and OS level functionalities. This layer provides the services of Zygote to handle forking of new process, Android debug bridge etc. Core Libraries provides features of Java language for development of application in Android OS.
4. Kernel Layer
Kernel layer is the bottom most layer and it interfaces basic hardware functionalities with the rest of the OS layers described above. It deals with drivers of display units, camera, Bluetooth, memory units, Audio/Video devices and ensure smooth functioning of Android device. It does centralized management of Memory, Power, resource allocation/de-allocation for the device.
Framework of Android Architecture
Application framework provides Java classes for application development. Developers uses these Java classes during coding. The following services are provided by this component.
- Activity Manager: Manages the lifecycle of the application and tracks all the activities.
- Content Provider: Facilitates sharing data with external applications.
- Resource Manager: Enables applications to use other resources like color settings, user interactions and strings.
- Notification Manager: Manages alerts and notifications to users on status of application execution.
- View system: Provides various view options for creating user interaction.
Android Architecture Libraries
Some of the components in this libraries are:
1. Media framework to manage Audio and video recording and playing.
2. Surface Manager to monitor display functionalities and text manipulation during display.
3. SQLite for Database management.
4. SGL & OpenGL for managing 2D/3D graphics.
5. Freetype supports front end.
6. Web-Kit supports browser functionalities.
7. Readily available Widgets such as buttons, layouts, radio button, lists.
8. SSL provides internal security.
9. Interfaces and other services:
- Access to OS services for communication across processes.
- Access to App model templates for easy development
- Enables content access, interactions across applications.
In summary Android Architecture provides robust framework, interfaces and libraries for development and execution of superior applications in mobile devices. It fully make use of unique features of Android such as Open source, Community support, Effective marketing, Low cost of development, Rich environment for app development and Solid inter app and intra app interfaces.
This is a guide to Android Architecture. Here we discuss the Introduction to Android Architecture and its Libraries along with its various Framework. You can also go through our other suggested articles to learn more –