ANDROID OPERATING SYSTEM



Similar documents
Android Operating System

Android Architecture. Alexandra Harrison & Jake Saxton

An Introduction to Android

Mobile Phones Operating Systems

Introduction to Android

Analysis of advanced issues in mobile security in android operating system

Overview of CS 282 & Android

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

Università Degli Studi di Parma. Distributed Systems Group. Android Development. Lecture 1 Android SDK & Development Environment. Marco Picone

Remote Desktop on Mobile

Graduate presentation for CSCI By Janakiram Vantipalli ( Janakiram.vantipalli@colorado.edu )

Технологии Java. Android: Введение. Кузнецов Андрей Николаевич. Санкт-Петербургский Государственный Политехнический Университет

Programming the Android Platform. Logistics

Android 5.0: Lollipop OS

Publishing to TIZEN Using the Automated Conversion/Repackaging of Existing Android Apps. Hyeokgon Ryu, Infraware Technology, Ltd.

Hacking your Droid ADITYA GUPTA

ITG Software Engineering

CS378 -Mobile Computing. Android Overview and Android Development Environment

Example of Standard API

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

Lecture 1 Introduction to Android

Mobile Devices - An Introduction to the Android Operating Environment. Design, Architecture, and Performance Implications

Android Basics. Xin Yang

CS 528 Mobile and Ubiquitous Computing Lecture 2: Android Introduction and Setup. Emmanuel Agu

Android Development. Lecture AD 0 Android SDK & Development Environment. Università degli Studi di Parma. Mobile Application Development

Mobile Operating Systems. Week I

Android Mobile App Building Tutorial

Friendly ARM MINI2440 & Dalvik Virtual Machine with Android

Workshop on Android and Applications Development

Here to take you beyond Mobile Application development using Android Course details

ANDROID PROGRAMMING - INTRODUCTION. Roberto Beraldi

ANDROID. Programming basics

Android Programming and Security

ANDROID INTRODUCTION TO ANDROID

Creating and Using Databases for Android Applications

Android v ios Mobile Operating Systems

An Introduction to Android. Huang Xuguang Database Lab. Inha University

Google Android: An Emerging Innovative Software Platform For Mobile Devices

Mobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013

Android Architecture For Beginners

Introduction to Android

ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android

Overview. The Android operating system is like a cake consisting of various layers.

Lecture 17: Mobile Computing Platforms: Android. Mythili Vutukuru CS 653 Spring 2014 March 24, Monday

An Introduction to Android Application Development. Serdar Akın, Haluk Tüfekçi

Smartphone market share

Basic Trends of Modern Software Development

Introduction to Android Development. Ed Burnette

5 reasons to choose Streamezzo SDK over Android SDK Page 2

Reminders. Lab opens from today. Many students want to use the extra I/O pins on

Praktikum Entwicklung Mediensysteme (für Master)

Module Title: Software Development A: Mobile Application Development

ANDROID BASED MOBILE APPLICATION DEVELOPMENT and its SECURITY

Introduction to Android

A Survey on Mobile Forensic for Android Smartphones

imaginea white paper

Developing Applications for ios

Development. SriSeshaa Technologies. Table of Contents

Monitoring and control of users in open environments on the Android platform

Mobile Devices - An Introduction to the Android Operating Environment. Design, Architecture, and Performance Implications

The Android Platform

Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months

Developing and deploying mobile apps

Developer's Cookbook. Building Applications with. The Android. the Android SDK. A Addison-Wesley. James Steele Nelson To

A Review of Different Comparative Studies on Mobile Operating System

Android (Basic + Advance) Application Development

International Engineering Journal For Research & Development

Android Architecture Diagram:

Introduction to Android

Review On Google Android a Mobile Platform

A Short Introduction to Android

Understand and Build Android Programming Environment. Presented by: Che-Wei Chang

Introduction to Android: Hello, Android! 26 Mar 2010 CMPT166 Dr. Sean Ho Trinity Western University

1) SETUP ANDROID STUDIO

Virtualization: Hypervisors for Embedded and Safe Systems. Hanspeter Vogel Triadem Solutions AG

Android in opposition to iphone

Research and Design of Universal and Open Software Development Platform for Digital Home

Berlin Institute of Technology FG Security in Telecommunications

DEVELOPING MOBILE APPLICATIONS USING ANDROID

Evolution of Smartphones And Android Operating System

Mobile Application Development 2014

Issues of Hybrid Mobile Application Development with PhoneGap: a Case Study of Insurance Mobile Application

Mobile Test Strategy. Shankar Garg. Senior Consultant - Testing

Android Operating System:

Android Commercial Spyware Disease and Medication

INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011

ECWM511 MOBILE APPLICATION DEVELOPMENT Lecture 1: Introduction to Android

Programming with Android: System Architecture. Dipartimento di Scienze dell Informazione Università di Bologna

Security Issues in Android Custom ROMs

Lee Barnes, CTO Utopia Solutions. Utopia Solutions

A Review OnEmployee Monitoring Application Using Android Smartphone s Neha S. Mankar 1, Sweeti M. Shambharkar 2 and Asst. Prof. Priti P.

WATTLE. Adobe Connect 9.4 Upgrade Key Differences. Author: Jo Jo Maung, Business Analyst, ITS Version: 1.3 Date: 16 September 2015.

TUTORIALS AND QUIZ ANDROID APPLICATION SANDEEP REDDY PAKKER. B. Tech in Aurora's Engineering College, 2013 A REPORT

UNIVERSITY AUTHORISED EDUCATION PARTNER (WDP)

Android Development: Part One

Architecture (SOSP 2011) 11/11/2011 Minsung Jang

Performance Analysis of Android Platform

Dell Wyse Cloud Connect discussion card

Wiley Publishing, Inc.

Software development. Development requirements. Java. Android SDK. Eclipse IDE (optional)

Transcription:

ANDROID OPERATING SYSTEM Himanshi Grover,Devesh Agrawal IT Department, Dronacharya College Of Engg Gurgaon,Haryana,India Abstract - Android has become need rather than luxury these days. The computing landscape is shifting towards mobile devices. To learn about operating systems.android is the operating system which is widely used in smart phones and mobiles. Android specific process relationships use of sensors and design considerations for resource constrained mobile devices. In this paper we study about android kernel programming and the android virtual lab.android delivers a complete set of software for mobile devices it has operating system, middleware, and key mobile applications. Android has fast and easy application development.android app and framework is java oriented and libraries are of C and C++and OS and drivers are C oriented. It allows quick information gathering and it provides the accurate information sought and its cycle is drastically reduced. Android provides rich browser facilities as well. This facilitates the developer to provide enhanced services., The android community decided to implement their own c libraries (bionic), and to develop an specific java runtime engine (dalvik virtual machine DVM) with android, the focus has always been on optimizing the infrastructure based on the limited resources available on the mobile devices. To complement the operating environment. An android specific application framework has designed and implemented. Therefore android can best be decided as a complete solution stack incorporating the OS, middleware components, and applications. In android the modified Linux 2.6 kernel acts as the hardware abstraction layer (HAL) to summarize the android operating environment can be labeled as: An open platform for mobile development A hardware reference design for mobile devices A system powered by a modified linux 2.6 kernel Introduction A runtime environment Android operating system is 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 smartphones and tablets. Since android is an open source it has become the fastest growing mobile operating system. Due to its open nature it has become favourite for many consumers and developers. Moreover software developers can easily modify and add enhanced feature into it to meet the latest requirements of mobile technology. Android users download more than 1.5 billion applications and games from Google play each month. Due to its powerful development framework users as well as software developers are able to create their own applications for wide range of devices. an application and user interface (UI) Architecture of Android operating system Android operating system is a stack of components main components of android operating system architecture or software stack are: Kernel Layer Native libraries Android runtime Application framework and applications The android operating system is based on a modified Linux 2.6 kernel compared to a Linux 2.6 environment though several drivers and libraries to run as efficiently and effectively as possible on mobile devices (such as smartphones or tablets). Some of these libraries have their roots in open source projects. due to some licensing issues IJIRT 100423 INTERNATONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 877

The above figure outlines the layered android architecture. The modified Linux Kernel operates as the HAL, and provides device drivers, memory management, process management, as well as networking functionalities, respectively. The library layer is interfaced through java (which deviates from traditional Linux design). It is in this layer that the /android Specific libc(bionic) is located. The surface manager handles the user interface windows. The android runtime layer holds the Dalvik Virtual Machine (DVM) and the core libraries (such as java or IO). Most of the functionalities available in the android are provided via the core libraries. The application framework houses the API interface. In this Layer, the activity manager governs the application life cycle. The content providers enable applications to either access data from other applications or to share their own data. The resource manager provides access to noncode resources (such as graphics), While the notification manager enables applications to display custom alerts. On the top of the application framework are the built in, as well as the user applications, respectively. It has to be pointed out that a user application can replace a built-in application, and that each android application runs in its own process space, within its own DVM instance. Linux Kernel Linux Kernel (Linux 2.6) is at the bottom layer of the software stack. Whole Android operating system is built on this layer with some changes made by the Google. Like main operating system it provides the following functionalities: memory management, Process 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 Android s native libraries. This layer enables the device 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: Surface Manager: it is used to manage display of device. Surface Manager used for composing windows on the screen. SQLite: SQLite is the database used in android for data storage. It is relational database and available to all applications. Web Kit: it is the lower engine used to display HTML content Media framework: Media Framework provides playbacks and recording of various audio, video and picture formats. Free type: bitmap and font Rendering opengl/es :used to render 2D or 3D graphics content to screen IJIRT 100423 INTERNATONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 878 libc: it contains system related libraries. Android Runtime Android runtime 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 run in its own process, with its own instance of the Dalvik virtual machine. The Dalvik VM allows multiple 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 run.dex files which are created from.class file by dx tool.dx tool is included in android SDK. DVM is optimized for low processing power and low

memory environments. DVM is developed by Dan Bornstein from Google. 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 are the blocks with which developer's applications directly interact. Important blocks of Application framework are: Activity Manager: It manages the life cycle of applications. Content Providers: It is used to manage the data sharing between applications, manages how to access data from other applications. Telephony Manager: it manages all voice call related functionalities. Location Manager: It is used for Location management, using GPS or cell tower. Resource Manager: Manage the various types of resources used in Application. Application layer The Applications Layer is the top layer in the Android architecture. Some applications come pre- installed with every device, such as: SMS client app, Dialler, Web browser and Contact manager. A developer can write his own application and can replace it with the existing application. Hardware The main hardware platform for android is the 32-bit ARMv7 architecture. The android x 86 projects provides support for x 86 architecture and Google TV uses a special x86 version of android. Intel processors began to appear on more mainstream android platforms such as phones. As of November 2013, android 4.4 recommends at least 512 MB of RAM while for low RAM devices 340 MB is required minimum amount that does not include memory dedicated to various hardware components such as the base band processor. Android 4.4 requires a 32 bit ARM v7, MIPS or x86 architecture processor. Android supports open GLES 1.1, 2.0, and 3.0. Some applications require a certain version of the open GLES, thus suitable GPU hardware is required to run such applications. Android devices incorporate many optional hardware components, including still or video cameras, GPS, orientation sensors, dedicated gaming controls, accelerometers, gyroscopes, barometers, magnetometers, proximity sensors, pressure sensors, thermometers and 2014 IJIRT Volume 1 Issue 5 ISSN: 2349-6002 touch screens. Some hardware components are not required, but became standard in certain classes of devices, such as smartphones, and additional requirements apply if they are present, some other hardware was initially required, but those requirements have been relaxed or eliminated altogether for example: as Android was developed initially as a phone OS, hardware such as microphones were required, while over time the phone function became optional. Android used to require an auto focus camera, which was relaxed to a fixed-focus camera. If it is even present at all, since the camera was dropped as a requirement entirely when android started to be used on set top boxes. Development: Android is developed in private by Google until the latest changes and updates are ready to be released, at which point the source code is made available publically. This source code will only run without modification on select devices, usually the nexus series of devices. The source code is in turn adapted by OEMs to run on their hardware; android s source code does not contain the often proprietary device drivers that are needed for certain hardware components. The green android logo was designed for Google in 2007 by graphic designer Irina Blok. The design team was tasked with project to create a universally identifiable icon with the specific inclusion of a robot in the final design. After numerous design developments based on science fiction and space movies, the team eventually sought inspiration from the human symbol on restroom doors and modified the figure into a robot shape. As android is open sourced, it was agreed that the logo should be likewise, and since its launch the green logo has been reinterpreted into countless variation so on the original design. Different security features of android OS: Android Operating system should ensure the security of users, user's data, 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 sandbox for all applications 3) Secure inter process communication. 4) Application signing. IJIRT 100423 INTERNATONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 879

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 - 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 user ID (UID) to each Android application and runs it as a separate process. c) Extensible mechanism for secure IPC. d) The ability to remove unnecessary and insecure parts of the kernel. The application sandbox A sandbox is a security mechanism for separating running programs and limiting the resources of the device to application. It is often used to execute untested code or programs from untrusted users and untrusted websites. By using sandboxing technique limited access to device s 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 the host device. With the help of sandbox untrusted program access only those resources of the device for which permission is granted. Permission is denied if it tries to access other resources of the device. Secure 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 will identify 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 Jar signer are used to generate keys and sign application.apk files. Application defined and user granted permissions Permissions are an Android security mechanism to allow or restrict application access. By default, Android applications have no permissions granted, making them safe by not allowing them to gain access to protected APIs. Some of the protected APIs include: Camera functions, Location data (GPS), Bluetooth functions, Telephony functions, SMS/MMS functions and Network or data connections. These resources are accessed only through the operating system. Licensing The source code for android is open source; it is developed in private by Google with the source code released publicly when a new version of android is released. Google publishes most of the codes under non copy left apache license version 2.0 which allows modification and re distribution. The license does not grant rights to the android trademark, so device manufacturers and wireless carriers have to license it from Google under individual contacts. Associated Linux kernel changes are released under the copy left GNU general public license version2 developed by the open hand set alliance, with the source code publically available at all times. Typically, Google collaborates with a hardware manufacturer to produce a flagship device featuring a new version of android, then makes a source code available after that device has been released. IJIRT 100423 INTERNATONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 880

Update schedule: Google provides major upgrades, incremental in nature, to android every six to nine months, which more devices are acceptable of receiving over the air. The latest major release is Android4.4 kitkat. Compared to its chief rival mobile operating system, namely ios, android updates are typically low to reach actual devices. For devices not under the nexus brand, updates often arrive months from the time the given version is officially released. This is partly due to the extensive variation in hardware of android devices, to which each upgrade must be specifically tailored, as the official Google source code only runs on their flagship nexus devices. Porting android to specific hardware is a time and resource consuming process for device manufacturers, who prioritize their newest devices and often leave older ones behind. Features of android operating system: Messaging: SMS and mms are available forms of messaging, including threaded text messaging and android cloud to device messaging and now enhanced version of C2DM, android google cloud messaging is also a part of android push messaging service. Web browser: the web browser available in android is based on the open source blink layout engine, coupled with chrome s V8 java script engine. The browser scores 100/100 on the acid3 test on android 4.0. Voice based features: Google search through voice has been available since initial release. Voice actions for calling, texting, navigation, etc. are supported on android 2.2 onwards. As of android 4.1 Google has expanded Vce actions with ability to talk back and read answers from Google s knowledge graph when queried with specific commands. The ability to control hardware has not yet been implemented. Multi-touch: Android has native support for multi touch which was initially made available in handsets such as the HTC hero. The feature was originally disabled at the kernel level. Google has since released an update for the nexus one and the Motorola droid which enables multi touch natively. third party customizations or otherwise by using a PC connection. These alternative methods are still available with the latest android. Video calling: android does not support native video calling, but some handsets have a customized version of the operating system that supports it, either via the UTMS network or over IP video calling through Google talk is available in android 2.3.4 and later. Gingerbread allows nexus S to place internet calls with a SIP account. This allows for enhanced VOIP dialling to other SIP accounts and even phone numbers. Multiple language support: android supports multiple languages. Conclusions From above discussion it is clear that Android Operating System follows a variety of security mechanism. When a developer install an application a new user profile with that application is created. Each application runs with its own instance of Dalvik VM. So applications cannot access each other s data. If applications want to access shared data or resources then they require permissions. All Android applications are signed so users know that the application is authentic. The signing mechanism allows developer to control which applications can grant access to other application on the system. References [1] http://www.ijera.com/papers/vol4_issue2/versio n%201/cc4201519521.pdf [2] http://cseweb.ucsd.edu/classes/fa10/cse120/lectu res/cse120-lecture.pdf [3] http://en.wikipedia.org/wiki/list_of_features_in_ Android [4] http://www.compiletimeerror.com/2012/12/blogpost.html Screen capture: Android supports capturing a screenshot by pressing the power and volume-down buttons at the same time. Prior to android 4.0 the only methods of capturing a screenshot was through manufacturer and IJIRT 100423 INTERNATONAL JOURNAL OF INNOVATIVE RESEARCH IN TECHNOLOGY 881