ANDROID OPERATING SYSTEM
Seminar Report
By
Rajmane Aarti P.
(3409)
Nandgave Ankita D. (3404)
Android Operating System
Abstract
Android is a software stack for mobile devices that includes an operating system,
middleware and key applications. It can be considered as a software platform as well as
an operating system for mobile devices based on the Linux operating system and
developed by Google and the Open Handset Alliance. It allows developers to write
managed code in a Java-like language that utilizes Google-developed Java libraries.
The android architecture consists of key applications, application framework, core
libraries, android runtime and a Linux kernel. The main features of android applications
are which have an integrated browser, SQLite for data storage, support for common
audio, video formats and it has GSM, EDGE, 3G and Wi-Fi connectivity etc
An android application consists of four important parts. They are Activity, Intent
receiver, services and content provider. There are some application development tools
like Eclipse for the android phones. Google also develop emulator of android phone.
Which help the application developers to run the application without an android phone.
Many versions of android operating system are available like Gingerbread, Honeycomb,
Froyo etc. the latest one is Ice Cream Sandwich ie, Android4.0 . The development of
android made a boom in the mobile technology field.
SCJIT,Narsobawadi
Android Operating System
Index
Page
no.
Sr. no. Contents
1.
INTRODUCTION
2.
ARCHITECTURE OF ANDROID OPEARATING
2
SYSTEM
3.
4.
5.
DIFFERENT SECURITY FEATURES
ANDROID OPERATING SYSTEM
FEATURES
ADVANTAGES & DISADVANTAGES
6.
CONCLUSION
7.
REFERANCE
SCJIT,Narsobawadi
OF
8
11
12
13
Android Operating System
Introduction
Android operating system is one of the most widely used mobile operating system
these days. Android mobile operating system is based on the linux kernel and is
developed by google. Android operating system is primarily designed for smart phone
and tablets. Since android is open source it has become the fastest growing mobile
operating system. Due to its open nature it has become favorite for many consumers and
developers. More over software developer can easily modify and add an enhanced feature
in it to meet the latest requirements of the mobile techonology. Android users download
more than 1.5 billion applications and games from google play each month due to its
powerful developments framework users as well software devlopers are able to create
their own application for wide range of devices. Some of key features of android
operating system are: Application freamwork, dalvik virtual machine, media support,
GSM technology, Bluetooth, edge, 3G, Wi-Fi, camera and GPSetc. To help a developer
for better software development android provides android software development kit
(SDK).it provides java programming language for application development. The android
software development kit includes a debugger, libraries, a handset emulator based on
QEMU (Quick emulator), documentation, sample code, and tutor
SCJIT,Narsobawadi
Page no.
1
Android Operating System
Architecture of Android Operating System
Figure: Architecture of Android Operating System
Android operating system is stack of software components. main components of
Android Operating system Architecture or software stack are Linux Kernel, Native
libraries, Android Runtime, Application Framework and Applications.
SCJIT,Narsobawadi
Page no.
2
Android Operating System
Linux Kernel
Linux kernel is at the bottom layer of the software stack. Whole Android Oprating
System is built on this layer with some changes made by the Google. Like main
Operating System it provides the following function: process management, memory
management, device management (ex. camera, keypad, display etc.) Android operating
system interacts with the hardware of the device with this layer. This layer also contains
many important hardware device drivers. Linux kernel is also responsible for managing
virtual memory, networking, drivers, and power management.
Native Libraries Layer
On the top of the Linux kernel layer is Androids native libraries.This layer
enables the device to handle different type of data. Data is specific to handle different
types of data. Data is specific to hardware.All these libraries are written in c or c+
+language.these libraries are called through java interface. Some important native
libraries are:
1. Surface manager: it is used to manege display of device. Surface maneger used
for composing windows on the screen.
2. SQLite: SQLite is the database used in android for data storage.it is relational
database and available to all application.
3. WebKit: it is the browser engine used to display HTML content.
4. Media Framework: media Framework provides playback and recording of various
audio, video& picture format (ex.MP3, AAC,AMR,JPJ,MPEG4,H.264&PNG),
5. Free type: Bitmap and font rendering.
6. Open GL/ES: Used to render 2D or 3D graphics content to the screen.
Android Run Time
SCJIT,Narsobawadi
Page no.
3
Android Operating System
It consists of Dalvik virtual machine and core java libraries. It is located on the
same level as the library layer. Dalvik virtual machine is a type of java virtual machine
used for running applications on android device. The dalvik VM enables every android
application to a run in its own process, with its own instance of the delvik virtual
machine. The dalvik VM allow multipal instance of virtual Machine to be created
simultaneously providing security, isolation memory management and threading support.
Unlike java VM which is process-based, dalvik virtual machine is register-base. Dalvik
virtual machine a run.dex files which are created from .class file by dx tool.
Application Framework The Application Framework Layer Provides Many
HigherLevel services or major APIs to applications in the form of Java classes.
Application developers are allowed to make use of these services in their applications
These is the blocks with which developer's applications directly interact. Important
blocks of Application framework are:
1. Activity Manager: It manages the life cycle of applications.Content
Providers: It is used to manage the datasharing between applications,
manages how to access data from other applications.
2. Telephony Manager: it manages all voice call related functionalities.
3. Location Manager: It is used for Location management, using GPS or cell
tower.
4. Resource Manager: Manage the various types of resources used in
application.
5. Application Layer the Applications Layer is the top layer in the
Android architecture.
Page no.
4
Different Security Features of Android OS
Android Operating system should ensure the security of users, user's data,
SCJIT,Narsobawadi
Android Operating System
Applications, the device, and the network. To achieve the security of these
components Android provides these key security features :
1) Security at the Operating System level through the Linux kernel.
2) Application and box for all applications
3) Secure intercrosses communication.
4) Application mining.
5) Application-defined and user-granted permissions
Linux Kernel
Android operating system is based on Linux kernel. Due to its open source
nature it is researched, attacked and fixed by many research developers. So Linux has
become stable and secure kernel. Linux kernel provides Android with several key
security features including:
a) A user-based permissions model In the Linux file system each file and directories
has three user based permissions. Owner, group, other users. Owner -The Owner
permissions apply only the owner of the file or directory. Group -The group
permissions apply only to the group that has been assigned to the file or directory.
Other users -The other Users permissions apply to all other users on the system. Each
file or directory has three basic permission types: read -The read permission means
user's ability to read the contents of the file. Write -write permissions mean's user's
ability to write or edit a file or directory. Execute-The execute permission means
user's ability to execute a file or view the contents of a directory.
This permission model ensures that proper security is maintained while accessing
android files.
b) Process isolation: The Android operating system assigns a unique userID (UID) to
each Android application. And runs it as a separate process.
The Application Sandbox
Page
No.5
Sandbox is a security mechanism for separatingrunning programsand
limitingthe resources of the device to application. It is often used to execute untested
SCJIT,Narsobawadi
Android Operating System
code or programsfrom untrusted users and untrusted websites. By using sandboxing
technique limited access to devices resources is given therefore security of the
system is increased. Sandboxing technology is frequently used to test unverified
programs which may contain a virus or other malware code, without allowing the
software or Code to harm a the host device. With the help of sandbox untrusted
program access nylons resources of the device for which permission is
granted.Permissionis denied if it tries to access other resources of the device.
Secuer inter-process communication
Some of the applications still use traditional Linux techniques such as network
sockets, file system and shared files for inter-process communication. But android
operating system also provides new mechanism for IPC such as Binder, Services,
Intents and Content Providers. All these mechanism allows developers to verify the
identity of application and also used to set the security policies.
Application signing
In order to install and run applications on Android
OS they must be digitally signed. With this mechanism Android OS identifying the
author of an application. This feature also used to establishing trust relationship
between applications. If an application is no signed properly then it cannot be
installed on the emulator also. Some standard tools such as key tool and Jarsigner are
used to generate keys and sign application. Apk files 3.5 Application-defined a and
user-granted Permission are an android security mechanism to allow or restrict
application access. By default Android application have no permission granted.
Making them safe by not allowing them to gain access to protected APIs.
Features
Application Framework
SCJIT,Narsobawadi
Page no.
6
Android Operating System
It is used to write applications for Android. Unlike other embedded mobile
environments, Android applications are all equal, for instance, an applications
which come with the phone are no different than those that any developer
writes.The framework is supported by numerous open source libraries such as
openssl, SQLite and libc. It is also supported by the Android core libraries. From
the point of security, the framework is based on UNIX file system permissions that assure
applications have only those abilities that mobile phone owner gave them at install time.
Dalvik Virtual Machine
It is extremely low-memory based virtual machine, which was designed especially for
Android to run on embedded systems and work well in low power situations. It is also
tuned to the CPU attributes. The Dalvik VM creates a special file format (.DEX) that
is created through build time post processing. Conversion between Java classes
and .DEX format is done by included .dx tool.
Integrated Browser
Google made a right choice on choosing WebKit as open source web browser. They
added a two pass layout and frame flattening. Two pass layout loads a page without
waiting for blocking elements, such as external CSS or external Java Script and after
a while renders again with all resources downloaded to the device. Frame flattening
converts founded frames into single one and loads into the browser. These features
increase speed and usability browsing the internet via mobile phone.
Optimized Graphics
As Android has 2D graphics library and 3D graphics based on Open GL ES
1.0, possibly we will see great applications like Google Earth and spectacular
games like Second Life, which come on Linux version. At this moment, the shooting
legendary 3D game Doom was presented using Android on the mobile phone.
SQLite
Page no.
Extremely small (~500kb) relational database management system,7 which is
integrated in Android. It is based on function calls and single file, where all definitions,
SCJIT,Narsobawadi
Android Operating System
tables and data are stored. This simple design is more than suitable for a platform such as
Android.
Handset Layouts
The platform is adaptable to both larger, VGA, 2D graphics library, 3D graphics
library based on OpenGL ES 1.0 specifications, traditional smart phone layouts. An
underlying 2D graphics engine is also included. Surface Manager manages access to the
display subsystem and seamlessly composites 2D and 3D graphic layers from multiple
applications
Data Storage
SQLite is used for structured data storage .SQLite is a powerful and lightweight
relational database engine available to all applications.
Connectivity
Android supports a wide variety of connectivity technologies including GSM,
CDMA, Bluetooth, EDGE, EVDO, 3G and Wi-Fi.
Messaging
SMS, MMS, and XMPP are available forms of messaging including threaded text
messaging.
Web Browser
The web browser available in Android is based on the open-source WebKit
application framework. It includes LibWebCore which is a modern web browser engine
which powers both the Android browser and an embeddable web view.
Java Virtual Machine
Software written in Java can be compiled into Dalvik bytecodes and executed in the
Dalvik virtual machine, which is a specialized VM implementation designed for mobile
device use, although not technically a standard Java Virtual Machine.
Media Support
Android will support advanced audio/video/still media formats such asPage
MPEG-4,
no.
H.264, MP3, and AAC, AMR, JPEG, PNG, GIF.
Additional Hardware Support
SCJIT,Narsobawadi
Android Operating System
Android is fully capable of utilizing video/still cameras, touchscreens, GPS,
compasses, accelerometers, and accelerated 3D graphics.
Development Environment
Includes a device emulator, tools for debugging, memory and performance profiling,
a plugin for the Eclipse IDE. There are a number of hardware dependent features,
for instance, a huge media and connections support, GPS, improved support for
Camera and simply GSM telephony. A great work was done for the developers to
start work with Android using device emulator, tools for debugging and plugin for
Eclipse IDE.
Advantages
SCJIT,Narsobawadi
Page no.
9
Android Operating System
Open - Android allows you to access core mobile device functionality
throughstandard API calls.
All applications are equal - Android does not differentiate between the phone's
basic and third-party applications -- even the dialer or home screen can be
replaced.
Breaking down boundaries - Combine information from the web with data
onthe phone -- such as contacts or geographic location -- to create new user
experiences.
Fast and easy development - The SDK contains what you need to build and run
Android applications, including a true device emulator and advanced debugging
tools
Disadvantages
Security - Making source code available to everyone inevitably invites the
attention of blackhathackers.
Open Source - A disadvantage of open-source development is that anyone can
scrutinize the source code to find vulnerabilities and write exploits.
Login - Platform doesn't run on an encrypted file system and has a vulnerablelog-
in
Incompetence - Googles dependence on hardware and carrier partners puts the
final product out of their control.
Page no.
10
Conclusion
Mobile software development has evolved over time. Android has emerged as a
new mobile development platform, building on past successes and avoiding past failures
SCJIT,Narsobawadi
Android Operating System
of other platforms .Android was designed to empower the developer to write innovative
applications .The platform is open source, with no up-front fees, and developers enjoy
many benefits over other competing platforms.
Android is open to all: industry, developers and users.
Participating in many of the successful open source projects.
Aims to be as easy to build for as the web.
Google Android is stepping into the next level of Mobile Internet.
Page no.
11
References
Websites
SCJIT,Narsobawadi
Android Operating System
www.wikipedia.com
www.google.com
www.wikihow.com
Page no.
12
Page no.
11
SCJIT,Narsobawadi