Android OS
Android OS
Android OS
Prepared by : Ujjaval Jayantilal Vadvi
Roll. No.
: U13C0054
Class
Year
: 2016-17
CERTIFICATE
This is to certify that the seminar report entitled Android OS
is prepared and presented by Mr. Ujjaval Jayantial Vadvi bearing
Roll No. : U13CO054, 4th
GUIDE
(Prof Bhavesh
Gohil)
JURY(s)
HOD
COED
Index
Abstract....4
List of Images.......5
1. Introduction.....6
2. Android Architecture7
2.1 Levels of Android...7
2.2 Linux Kernel...8
2.3 Hardware Abstraction Layer...8
2.4 Libraries and Android Runtime...9
2.5 Android Framework10
3. Android vs Linux....11
3.1 Android vs Linux: Introduction...11
3.2 Android vs Linux: Core Differences...12
3.3 Dalvik Virtual Machine...13
3.4 The Dex File Format14
3.5 What is YAFFS?..............................................................................................15
4 Process and Power Management.16
4.1 Process Management: Principles..16
4.2 Process Management: Priority Hierarchy.16
4.3 Power Management..17
Abstract
This seminar is about Overviewing the latest Android Operating System. Analyze the Android OS
architecture and learning about the terms like YAFFS, Dalvik Virtual Machine and the Dex File Format. We
also will go through the process and power management of Android OS briefly
List of Figures
Chapter 1
INTRODUCTION
Android is the flagship software of the Open Handset Alliance (OHA), established by Google with members
who are chip manufacturers, mobile handset makers, application developers or mobile carriers. Clockwise
development
Android was unveiled in 2007, along with the founding of the Open Handset Alliance a consortium of
hardware, software, and telecommunication companies devoted to advancing open standards for mobile
devices.
Android versions till date are as follows:Alpha(1.0), Beta(1.1), Cupcake(1.5), Donut(1.6), clair(2.0-2.1), Froyo(2.2-2.2.3), Gingerbread(2.3-2.3.7),
Honeycomb(3.0-3.2.6), Ice Cream Sandwich(4.0-4.0.4), Jelly bean(4.1-4.3.1), Kitkat(4.4-4.4.4),
Lollipop(5.0-5.1.1), Marshmallow(6.0-6.0.1), Nougat(7.0-7.1).
Chapter 2
Android architecture
2.1 Levels of Android Architecture
Binder IPC :The Binder Inter-Process Communication (IPC) mechanism allows the application framework to cross
process boundaries and call into the Android system services code. This enables high level framework APIs
to interact with Android system services
Functions of the linux kernal:1. The Linux kernel provides preemptive multitasking, low-level core system services such as memory
management and process management.
2. It also look after the power management and suspend mode powers down all hardware except
memory.
3. It is the one to approach for optimized power management when the os is suspended idle.
4. It also looks after the power management of the binder ipc driver.
5. in addition it provides a network stack and device drivers for hardware such as the device display,
Wi-Fi and audio
The Hardware Abstraction Layer Implement functionality without modify higher levels. The hardware
abstraction layer (HAL) defines a standard interface for hardware vendors to implement and allows Android
to be agnostic about lower-level driver implementations.
(.so file). It contains metadata such as the version, name, and author of the module, which helps Android
find and load it correctly.
An audio module can contain a primary audio device, a USB audio device, or a Bluetooth A2DP audio
device. A device is represented by the hw_device_t struct. Like a module, each type of device defines a
more-detailed version of the generic hw_device_t that contains function pointers for specific features of the
hardware.
Each hardware-specific HAL usually extends the generic hw_module_t struct with additional information
for that specific piece of hardware. For example in the camera HAL, the camera_module_t struct contains
a hw_module_t struct along with other camera-specific function pointers
Libraries contains frameworks for web browser (webkit), database (SQLite), multimedia etc
Android Runtime environment
1. Core libraries:
a) Dalvik VM Specific Libraries
b) Java Interoperability Libraries
c) Android Libraries
2. Android Runtime: the managed runtime used by applications and some system services on Android
Execute the Dalvik Executable format and Dex bytecode specification.
Ahead-of-time compiled runtime
Modern garbage collection
Development and debugging improvements (Support for sampling profiler;
more debugging features; improved diagnostic detail in exceptions and crash reports.
A set of services that collectively form the environment in which Android applications run and are managed;
toolkit for applications
Chapter 3
Android vs. Linux
Target Architecture
Android is designed for mobile devices (ARM ISA)
Linux for general purpose processors (x86 ISA)
Kernel Modifications
Android added alarm driver, power management wrapper, inter processor
communication interface, low memory killer, and kernel debugger and logger
Standard C Library
Android implements a custom implementation of C library which is proper for low memory
Given that the Android application runtime must support a diverse set of devices and that applications must
be sandboxed for security, performance, and reliability, a virtual machine seems like an obvious choice. But
a virtual machine-based runtime doesnt necessarily help you balance those requirements with the the
limited processor speed and limited RAM that characterizes most mobile devices.
So how did Google address all of these somewhat conflicting requirements? To summarize, their approach
for implementing an application runtime environment given these constraints is that every Android
application runs in its own process, with its own instance of the Dalvik virtual machine.
Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes files in
the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM is registerbased, and runs classes compiled by a Java language compiler that have been transformed into the .dex
format by the included "dx" tool. The Dalvik VM relies on the Linux kernel for underlying functionality
such as threading and low-level memory management.3 Given every application runs in its own process
within its own virtual machine, not only must the running of multiple VMs be efficient but creation of new
VMs must be fast as well. The remainder of this paper surveys the major design choices of the Dalvik VM
that were influenced by the requirements outline previously, mainly the .dex file format
Chapter 4
Process and Power Management
Conclusion
We have seen how is the architecture of the Android OS. We have learnt how the linux kernel manages the
process and power related fuctions. We have seen how is Android OS is different of that of OS. Also we have
got the answer that Android is not purely a linux distribution.
Acknowledgement
I take this opportunity to express our deep sense of gratitude and indebtedness to our Project Guide,
Mr. Bhavesh N. Gohil, Assistant Professor in Computer Engineering Department, SVNIT,Surat for his
valuable guidance, useful comments and co-operation with kind and encouraging attitude at every point of
my seminar work.
I would also like to thank our Head of Department, Prof. D.R. Patel
Computer Engineering Department.
I am also thankful to SVNIT, Surat and its staff for providing this opportunity which helped us in gaining
sufficient knowledge and to make this Seminar Report.
References
1. http://show.docjava.com/posterous/file/2012/12/10222640-The_Dalvik_Virtual_Machine.pdf
2. http://students.mint.ua.edu/~pmkilgo/etc/android-os.pdf
3. Android Open Source Project, https://source.android.com/index.html
4. CMU Distributed System Slides, http://www.andrew.cmu.edu/course/95-702/slides/Android.pdf
5. Tutorialpoints, http://www.tutorialspoint.com/android/android_architecture.htm
6. Android App development, [online], http://rest-term.com/technote/index.php/Android
7. http://www.justtotaltech.co.uk/blog/popular-android-app-development-framework