Vous êtes sur la page 1sur 21

Android Operating System

BY Nitin Ramchandani Roll No:09BCE050

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING AHMEDABAD-382481 October 2011

Android Operating System


Seminar
Submitted in partial fulfillment of the requirements For the degree of Bachelor of Technology in Computer Engineering By Nitin Ramchandani Roll No: 09BCE050

DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING AHMEDABAD-382481 October 2011

Certificate
This is to certify that the Seminar entitled "Android Operating System" submitted by Student Nitin Ramchandani (09BCE050), towards the partial fulfillment of the requirements for the degree of Bachelor of Technology in Computer Engineering of Nirma University of Science and Technology, Ahmedabad is the record of work carried out by him under my supervision and guidance. In my opinion, the submitted work has reached a level required for being accepted for examination. The results embodied in this Seminar, to the best of my knowledge, haven't been submitted to any other university or institution for award of any degree or diploma.

Prof. Swati Jain D. J. Patel Assistant Professor Professor and Head, Dept. of Computer Science & Engg., of Computer Science & Engg., Institute of Technology, Institute of Technology, Nirma University, Ahmedabad University, Ahmedabad

Prof.

Dept.

Nirma

Prof. Ankita Jain Assistant Professor Institute of Technology,

Nirma University, Ahmedabad

ACKNOWLEDGEMENT

I would like to acknowledge and extend my heartfelt gratitude to following persons who made the completion of this seminar presentation and report possible: Prof. Vishal Parikh and Prof. Ankita Jain for his invaluable technical support and guidance throughout the completion of this seminar. Prof. Swati Jain for her constant reminders and much needed motivation. My batch mates for the help and inspiration they extended. And, last but not the least to God almighty who made all this possible. - Nitin Ramchandani

09BCE050

Abstract
Android is a software stack for mobile devices that includes an operating system, middleware and key applications. Android is a software platform and 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, but does not support programs developed in native code. The unveiling of the Android platform on 5 November 2007 was announced with the founding of the Open Handset Alliance, a consortium of 34 hardware, software and telecom companies devoted to advancing open standards for mobile devices. When released in 2008, most of the Android platform will be made available under the Apache free-software and open-source license.

CONTENTS
Certificate Acknowledgement Abstract Table of Contents Chapter 1 Introduction 1.1 1.2 1.3 1.4 General History Open Handset Alliance Evolution of Android

Chapter 2

Android Architecture 2.1 Linux Kernel 2.1.1 2.1.2 2.1.3 Libraries 2.2.1 2.2.2 2.2.3 2.2.4 2.3 Varoius Libraries Surface Manger Audio Manager HAL(Hardware Abstraction Libraries) General Power management Binder

2.2

Android RunTime 2.3.1 Dalvik Virtual Machine 2.3.2 Core Libraries Application Framework Applications

2.4 2.5

Chapter 3 Chapter 4 Chapter 5 Chapter 6

Application Lifecycle Booting of Android Activity Cycle Difference Between Various Moblie O.S 6.1 6.2 6.3 6.4 Android and Apples iOS Android and Nokias Symbian OS Android and Windows Mobile OS Android and BlackBerrys RIM OS

1. Introduction
1.1.

What is Android?
A software platform and operating system for mobile devices Based on the Linux kernel Developed by Google and later the Open Handset Alliance (OHA) Allows writing managed code in the Java language Possibility to write applications in other languages and compiling it to native code. At least 150,000 Application available in Android. It run on java based and object- Oriented based application

1.2.

History

Foundation

Android, Inc. was founded in Palo Alto, California, United States in October, 2003 by Andy Rubin (co-founder of Danger), Rich Miner (co-founder of Wildfire Communications, Inc.), Nick Sears (once VP at T-Mobile), and Chris White (headed design and interface development at WebTV) to develop, in Rubin's words "...smarter mobile devices that are more aware of its owner's location and preferences". Despite the obvious past accomplishments of the founders and early employees, Android Inc. operated secretly, revealing only that it was working on software for mobile phones. Google acquired Android Inc. in August 2005, making Android Inc. a wholly owned subsidiary of Google Inc. Key employees of Android Inc., including Andy Rubin, Rich Miner and Chris White, stayed at the company after the acquisition.

1.3. Open Handset Alliance


On November 5, 2007, the Open Handset Alliance, a consortium of several companies which include Broadcom Corporation, Google, HTC, Intel, LG,Marvell Technology

Group, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile and Texas Instruments unveiled itself. The goal of the Open Handset Alliance is to develop open standards for mobile devices.[12] On the same day, the Open Handset Alliance also unveiled their first product, Android, a mobile device platform built on the Linux kernel version 2.6. On December 9, 2008, 14 new members joined, including ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Huawei Technologies, PacketVideo, Softbank, Sony Ericsson, Toshiba Corp, and Vodafone Group Plc.

1.4.Evolution Of Android

Each Android Version is named after a dessert in alphabetical order

Recent releases
2.3 Gingerbread refined the user interface, improved the soft keyboard and copy/paste features, improved gaming performance, SIP support (VoIP calls), and added support for Near Field Communication. Android 2.3 Gingerbread is the latest Android version that is available to phones. 3.0 Honeycomb was a tablet-oriented release which supports larger screen devices and introduces many new user interface features, and supports multicore processors and hardware acceleration for graphics. The Honeycomb SDK has been released and the first device featuring this version, the Motorola Xoom tablet, went on sale in February 2011. 3.1 Honeycomb was announced at the 2011 Google I/O on 10 May 2011. One feature focuses on allowing Honeycomb devices to directly transfer content from USB devices. 3.2 Honeycomb released at July 15 2011, is "an incremental release that adds several new capabilities for users and developers". Highlights include optimization for a broader range of screen sizes; new "zoom-to-fill" screen compatibility mode;

capability to load media files directly from the SD card; and an extended screen support API, providing developers with more precise control over the UI. Android 3.2 Honeycomb is the latest Android version that is available to tablets.

2. Android Architetecture

2.1. Linux Kernel


2.1.1General

Android is built on LINUX kernel, but it is not the LINUX. No native windowing system(X window system)

No glibc support Does not support all set of standard GNU libraries

Why Linux Kernel?


Great memory and process management Great permissions based security model Proven driver model Support for shared libraries Its already open source

2.1.2 Power Management


Based on the standard Linux Power Management, Android has its own component. Application uses user space library to inform the framework about its constrains.. Constraints are implemented using lock mechanism..

PARTIAL_WAKE_LOCK CPU on, screen off, keyboard off Cannot power down via power button SCREEN_DIM_WAKE_LOCK CPU on, screen dim, keyboard off SCREEN_BRIGHT_WAKE_LOCK CPU on, screen bright, keyboard off FULL_WAKE_LOCK CPU on, screen on, keyboard bright

2.1.3 Binder
Driver to facilitate inter-process communication between applications and services.. A pool of threads is associated to each application to process incoming IPC The driver performs mapping off object between two processes

Binder uses an object reference as an address in a processs memory space

2.2.Libraries
2.2.1 Various Libraries

All the libraries are written in c/c++.


Media Libraries - based on PacketVideo's OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view SGL - the underlying 2D graphics engine 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer FreeType - bitmap and vector font rendering SQLite - a powerful and lightweight relational database engine available to all applications

2.2.2 Surface manager


Provides a system-wide surface composer to render all the surfaces in a frame buffer Can combined 2D and 3D surfaces Can use OpenGL ES and 2D hardware accelerator for its compositions

2.2.3 Audio Manager


Handle several types of devices (headphone, ear piece)

Redirects audio stream to the specified output

2.2.4 Hardware Abstraction Libraries


Defines the interface that Android requires hardware drivers to implement.
Set of standardized APIs the developer will have to implement Available for all the components a manufacturer can integrate on its Android platform

2.3 Android Runtime


2.3.1 Dalvik VM Designed for embedded environment Supports multiple VM processes per device. Highly CPU-optimized byte code

interpreter. Uses run time memory very efficiently. Run optimized file format(.dex) Dalvik bytecode. Java .class/.jar are converted to .dex at build time.

2.3.2 Core Libraries


Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language

2.4 Application Framework

A Notification Manager that enables all applications to display custom alerts in the status bar

An Activity Manager that manages the lifecycle of applications and provides a common navigation backstack A rich and extensible set of Views that can be used to build an application, including lists, grids, text boxes, buttons, and even an embeddable web browser Content Providers that enable applications to access data from other applications (such as Contacts), or to share their own data A Resource Manager providing access to non-code resources such as localized strings, graphics, and layout files

2.5 Applications
Built in and user apps Can replace built in apps

3.
I. II. III.

Application Lifecycle
In android every application runs in their own process. Processes are started or stopped as needed to run application components. A process may be killed to reclaim resources.

Video Demonstrating Application LifeCycle

http://developer.android.com/videos/index.html#v=fL6gSd4ugSI

4.

Android Booting

Similar to most Linux-based systems at startup, the boot-loader loads the Linux kernel and starts the init process Init starts Linux daemons, including: USB Daemon (usbd) to manage USB connections Android Debug Bridge (adbd) to manage ADB connections Debugger Daemon (debuggerd) to manage debug processes requests (dump memory, etc.) Radio Interface Layer Daemon (rild) to manage communication with the radio Init usbd Init process starts the zygote process: A nascent process which initializes a Dalvik VM instance Loads classes and listens on socket for requests to spawn VMs Forks on request to create VM instances for managed processes Copy-on-write to maximize re-use and minimize footprint

Init starts runtime process:

Initializes Service Manager the context manager for Binder that handles service registration and lookup Registers Service Manager as default context manager for Binder services o o o Runtime process sends request for Zygote to start System Service Runtime process sends request for Zygote to start System Server Zygote forks a new VM instance for the System Service process and starts the service o o System Service starts the native system servers, including: Surface Flinger Audio Flinger Native system servers register with Service Manager as IPC service targets: System Service starts the Android managed services Android managed Services register with Service Manager:

After system server loads all services, the system is ready Each subsequent application is launched in it s own process

5.

Activity Cycle

onCreate (Bundle): This is called when the activity first starts up. onStart ( ): This indicates the activity is about to be displayed to the user. onResume ( ): This is called when your activity can start interacting with the user. This is a good place to start animations and music. onPause ( ): This runs when the activity is about to go into the background, usually because another activity has been launched in front of it. This is where you should save your programs persistent state, such as a database record being edited. onStop( ): This is called when your activity is no longer visible to the user and it wont be needed for a while. If memory is tight, onStop( ) may never be called (the system may simply terminate your process). onRestart( ): If this method is called, it indicates your activity is being redisplayed to the user from a stopped state. onDestroy( ): This is called right before your activity is destroyed. If memory is tight, onDestroy( ) may never be called (the system may simply terminate your process). onSaveInstanceState(Bundle): Android will call this method to allow the activity to save per-instance state, such as a cursor position within a text field. Usually you wont need to override it because the default implementation saves the state for all your user interface controls automatically. onRestoreInstanceState(Bundle): This is called when the activity is being reinitialized from a state previously saved by the onSaveInstanceState( ) method. The default implementation restores the state of your user interface.

Building Blocks Of an App Activities


Activity is an User Interface Screen. An application may have two or more activities to handle different phases of program. For e.g. opening page, menu page, etc

Activity is responsible for saving its own state so that it can be restored later as part of the application life cycle.

Intents
Intent is a mechanism for describing a specific action such as pick a photo. Basically we register a activity to handle a Intent.

Content Provider

A content provider is a set of data wrapped up in a custom API to read and write it. This is the best way to share global data between applications. Google provide content provider for contacts.

Services

A service is a task that runs in the background without the users direct interaction, similar to a Unix daemon. For e.g. we can have Music player program playing in background even if we are browsing other programs.

6.Difference between Various Mobile O.S


6.1. Android v/s Apple
The Apple iPhone comes with an expansive set of applications, available for free or for a small fee; the Google Android comes with a smaller package of applications. The Apple iPhone comes with a feature to alert the user of any missed instances, though this feature forces the user to prematurely end whatever action he is performing; the Google Android comes with a drag and drop screen that alerts the user of any occurrences ,but allows him to continue his actions. Apple controls all of its hardware, and it is therefore simple to perform the necessary accessory maintenance; Googles Android is simply a platform that functions on different platforms, and doesnt allow for easy accessory support.

6.2 .

Android v/s Symbian

Android is fairly new and has a smaller market share than the older Symbian Android is designed around touch capable devices while Symbian is designed around keypad devices Symbian is somewhat outdated while Android is constantly updated Android is used by many phone manufacturers while Symbian is almost exclusive to Nokia.

6.3. Android v/s Windows Mobile


Windows Mobile is from Microsoft while Android was developed by Google. Windows Mobile is proprietary while Android is open source. Windows Mobile is relatively old and pretty established while the Android is pretty new. There are a lot of phones that uses Windows Mobile while there are only a handful running Android. There are a lot more programs available for Windows Mobile compared to Android.

6.4. Android v/s BlackBerry


Android smartphones are more apps-centered while BlackBerry smartphones cater more to business. BlackBerry has a good security system while the Androids is questionable. Android has plenty of apps that appeal to the geekier nature while BlackBerry was created for the business people in the corporate world. BlackBerry was the pioneering smartphone. Android just followed through. BlackBerry was first in email transferring while Android was the first in customizing.

References
http://elinux.org/Android_Portal http://www.androidenea.com/2009/08/init-process-and-initrc.html http://developer.android.com/videos/index.html#v=Oq05KqjXTvs Hello.Android.3rd.Edition.pdf Android in Action 2nd Edition 2011.pdf 33_Printemps.pdf
The anatomy and philosophy of Android - Google I/O 2009 By J Vishwanath

http://www.thenewboston.com http://www.mybringback.com

Vous aimerez peut-être aussi