Introduction to Android Operating System
Beginning of Android OS
Android OS is developed for smart phones and tablets. It is an Open source Software. Android is that the most generally used mobile OS by the people nowadays. Android Software Stack mainly contains four Layers: application layer, application framework layer, Libraries and Linux kernel.
Android was founded by a corporation , named android Inc. in Palo Alto of California, U.S (2003) whose founder was Andy Rubin. Early intension of the corporate was to develop a complicated OS for digital cameras, on the other hand it had been realized that marketplace for such devices wasn't large enough so that diverted their attention to producing a sensible phone OS. Android was then acquired by the Google in 2005 mid and unveiled its distribution in 2007 with formation of Open Handset Alliance led by Google. Android mobile OS is predicated on the Linux kernel and is developed by Google. Android OS has its own virtual machine called DVM which is employed for executing the android application. One of the explanations for the success of Google’s OS is that the constant improvement of its many versions, with every new one offering more advanced features, faster access to the web . Another reason for the Android’s popularity is it's strong collaboration with mobile devices manufacturers worldwide, while it's main global competitor.
Open Handset Alliance:
The Open Handset Alliance or we can say OHA is a consortium whose goal is to develop open standards for mobile devices, promote innovation in mobile phones and supply a far better experience for consumers at a lower cost.
Android Architecture
Software stack is split into four
layers.
1. Application layer
2.
Application Framework
3. Libraries
4. Linux
kernel
Lower layer of android OS is Linux kernel. It doesn't really interact with the users and developers. The Linux Kernel provides A level of abstraction between the device hardware and therefore the upper layers of the Android software stack. Based on Linux version 2.6, the kernel provides pre-emptive multitasking, low level core system services like memory, process and power management additionally to providing a network stack and device drivers for hardware like the device display, Wi-Fi and audio[1]. Also, the kernel handles all the items that Linux is basically good at like networking and a huge array of device drivers, which take the pain out of interfacing to peripheral hardware.
2.2 Libraries:
On top of Linux kernel there's a group of c/c++ libraries employed by the varied components of the android system. Some of the core libraries are listed below:
• System c library – a BSD– derived implementation of the quality and system library (libc) tuned for embedded Linux-based devices.
• SQLite - it's wont to access data published by content providers and includes SQLite management classes.
• SSL - it's wont to provide internet security.
• SGL – the underlying 2D graphics engine.
• Libwebcore – a contemporary browser engine which powers both the android browser and an embedded web view.
• OpenGL - it's wont to provide Java interface to the OpenGL/ES 3D graphics rendering API.
• Media framework - it's wont to provide different media code which permit the recording and playback of various media formats.
• Web Kit - it's the browser engine wont to display internet content or HTML content.
2.2.1 Android Runtime:
Dalvik Virtual Machine:
Dalvik may be a purpose built virtual machine designed specifically for android which was developed by Dan Bornstein and his team. It was mainly developed for mobile devices. Dalvik Virtual Machine is same as JVM but only difference is that it's designed and optimized for Android. Every android application runs in its own process is named Dalvik virtual machine. Dalvik always uses its own 16 bit instruction set than java 8 bit stack instructions, which reduce the Dalvik instruction count and raised its interpreter speed. The Dalvik VM executes files within the Dalvik Executable (.dex)[2] format which is optimized for minimal memory footprint. The VM is register based, and runs its classes compiled by a java language compiler that have been transformed into the .dex format by the included “dx” tool. The Dalvik VM hooked in to the Linux kernel for underlying functionality like threading and low level memory management.
2.3 Application Framework
It provides many higher level services to applications within the sort of Java classes. Application developers are allowed to make use of these services in their application. This framework describes the concept that Android applications are constructed from reusable, interchangeable and replaceable components and it is one of the best[3]. The Android framework includes the following key services:
• Activity Manager – Controls all aspects of the appliance lifecycle and activity stack.
• Content Providers – This service allows applications to publish and share data with other applications.
• Resource Manager – Provides access to non-code embedded resources like strings, color settings and interface layouts.
• Notifications Manager – Allows applications to display alerts and also notifications to the user.
• View System – An extensible set of views wont to create application user interfaces.
• Package Manager – The system by which applications are ready to determine information about other applications currently installed on the device.
• Telephony Manager – Provides the telephony services available on the device like status and subscriber information.
• Location Manager – Provides access to the situation services allowing an application to receive updates about location changes.
2.4 Applications
The applications are at the highest layer of the Android stack. The user of the Android device would mostly interact with this layer (more). Android will ship with a group of applications including an email client, calendar, browser, maps, contacts, others. All applications are written using java programming language.
References:
1.
http://www.ijera.com/An Overview of
Android
Operating System and Its Security
Features.pdf
2.
http://www.ijetmr.com/AndroidOperating
Systems.pdf
3.
http://www.engineersgarage.com/articles/wh
at-is-android-introduction.
4.
http://en.wikipedia.org/wiki/Android_(opera
ting_system)
5.
http://www.tkhts.com/android/android-archit
ecture.jsp
6.
http://www.tutorialspoint.com/android/andro
id_architecture.html
7.
http://www.android-appmarket.com/ android
-architecture.html
8.
http://www.acumin.co.uk/download_files/W
hitePaper/android_white_paper_2.pdf
9. Mobile
Security, Identifying the Mobile
SecurityStack,http://blog.veracode.com/2011
/03/identifying-the-mobile-securitystack/
10.
Reference Architecture, Mobile Security
Reference
Architecture, by CIO Council and
US
Department of Home Land Security May
2013,
https://cio.gov/wpcontent/uploads/2013/05/
Mobile-Security-Reference-Architecture.pdf
Comments
Post a Comment