Overview of Android North Carolina A&T State University Some slides contain material taken from the Google Android website.

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

Introduction.  Professor  Adam Porter 
Intro to Android and iOS CS-328 Dick Steflik. The Players Android – Open source mobile OS developed ny the Open Handset Alliance led by Google. Based.
What is Android?.
Android architecture overview
Introduction to Android Mohammad A. Gowayyed CS334-Spring 2014.
Android Platform Overview (1)
Operating-System Structures
DEPARTMENT OF COMPUTER ENGINEERING
ANDROID OPERATING SYSTEM Guided By,Presented By, Ajay B.N Somashekar B.T Asst Professor MTech 2 nd Sem (CE)Dept of CS & E.
© 2010 MindTree Limited CONFIDENTIAL: For limited circulation only Slide 1 CONFIDENTIAL: For limited circulation only An automaton that is created from.
1/28/2004CSCI 315 Operating Systems Design1 Operating System Structures & Processes Notice: The slides for this lecture have been largely based on those.
Mobile Application Development
OPERATING SYSTEMS Introduction
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 2: Operating-System Structures.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department Asst.Prof.Dr.Ahmet Ünveren SPRING Computer Engineering Department.
Background of Mobile App Development North Carolina A&T State University.
Introduction to Android Platform Overview
To be Presented by, T.Sathishkumar [11mw07] 1. Synopsis Introduction Version Features License An Application Development Demo Possibilities Advantages.
Chapter 1: Voilà! Meet the Android. Smartphones –Can browse the Web –Allow you to play games –Use business applications –Check –Play music –Record.
Android Introduction Platform Overview.
Mobile Application Development with ANDROID. Agenda Mobile Application Development (MAD) Intro to Android platform Platform architecture Application building.
Android Introduction Based on slides made by
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Android Programming By Mohsen Biglari Android Programming, Part1: Introduction 1 Part1: Introduction By Mohsen Biglari.
Chapter 1: Voilà! Meet the Android
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
Presentation Seminar on “IMAGE SLIDER –AN ANDROID APPLICATION”
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
Introduction 1-1 Introduction to Virtual Machines From “Virtual Machines” Smith and Nair Chapter 1.
Silberschatz, Galvin and Gagne ©2013 Operating System Concepts – 9 th Edition Chapter 2: Operating-System Structures.
Monday, August 31, 2015 CSCI 351 – Mobile Applications Development.
ANDROID BY:-AANCHAL MEHTA MNW-880-2K11. Introduction to Android Open software platform for mobile development A complete stack – OS, Middleware, Applications.
Created By. Jainik B Patel Prashant A Goswami Gujarat Vidyapith Computer Department Ahmedabad.
Android. Basic Architecture Linux Kernel Libraries Applications Android Runtime Application Framework.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Mobile Application Development with ANDROID Umang Patel(6537) LDCE.
By, Rutika R. Channawar. Content Introduction Open Handset Alliance Minimum Hardware Requirements Versions Feature Architecture Advantages Disadvantages.
1 Android Workshop Platform Overview. 2 What is Android?  Android is a software stack for mobile devices that includes an operating system, middleware.
Android operating system N. Sravani M. Tech(CSE) (09251D5804)
By : Abhishek Verma Main Topics : 1. Introduction 2. Platform 3. Software Development 4. Overall Evaluation.
By Adam Reimel. Outline Introduction Platform Architecture Future Conclusion.
Android. I. What’s Android Android is a mobile operating system (OS) based on the Linux kernel and currently developed by Google. Android is designed.
ANDROID OS Ravi Soni MTech (CS) III Sem. W HAT IS A NDROID ? Android is a software stack for mobile devices that includes an operating system, middleware.
Android. Android An Open Handset Alliance Project A software platform and operating system for mobile devices Based on the Linux kernel Developed by Google.
Android Training in Chandigarh. What is Android Android is a mobile operating system based on the Linux Kernel. The goal of android project is to create.
Presented by: Saurabh Kumar Sinha (MRT07UGBIT 186) IT VII Semester, Shobhit University Meerut.
Google. Android What is Android ? -Android is Linux Based OS -Designed for use on cell phones, e-readers, tablet PCs. -Android provides easy access to.
Computer System Structures
Android Mobile Application Development
Visit for more Learning Resources
Architecture of Android
ANDROID AN OPEN HANDSET ALLIANCE PROJECT
Chapter 2: Operating-System Structures
chapter 6- Android Introduction
Android is the step in the vision of creating a better mobile phone.
Contents: Introduction Different Mobile Operating Systems
CMPE419 Mobile Application Development
Mobile Handset Virtual Machine
Lecture Topics: 11/1 General Operating System Concepts Processes
Android Developer Fundamentals V2
Java Programming Introduction
Android Introduction Platform Mihail L. Sichitiu.
Korea Software HRD Center
Introduction to Virtual Machines
Android Platform, Android App Basic Components
Introduction to Virtual Machines
CMPE419 Mobile Application Development
Presentation transcript:

Overview of Android North Carolina A&T State University Some slides contain material taken from the Google Android website

OS for Telephones Smartphones have an operating system that is just as complex as a desktop or laptop Telephones are often said to have limited resources, although they are not that limited Over 106 million people in the United States owned smartphones in 2012 [L2ThinkTank] Smartphone sales make up 59% of total handset sales, 62% in the age range as of 2011 [Wikipedia]

[Wikipedia]

Explosive Growth In 2006, Android, iOS, Windows Phone and Bada did not exist Only 64 million smartphones were sold in 2006 As of 2011, nearly 10 times as many smartphones were sold annually

First Smartphone The IBM Simon Personal Communicator was the first smartphone in 1992 Originally priced at $899 $1358 in today’s dollars Had a calendar, address book, calculator, note pad, and games

Phone OS 2013 [Wikipedia]

Separation Some phone OS separate the “computer” functionality from the “telephone” functionality Programs on these systems cannot make phone calls Other phone OS allow programs access the full hardware of the device

Android OS Android is an operating system for telephones Open Source system from Google Android is the fastest growing phone OS

Google's mission is "to organize the world's information and make it universally accessible and useful" The unofficial company slogan is "Don't be evil"

Why Google is in the Phone Market

Android Levels Code nameVersionAPI level Lollipop5.1API level 22 Lollipop5.0API level 21 KitKat API level 19 Jelly Bean4.3.xAPI level 18 Jelly Bean4.2.xAPI level 17 Jelly Bean4.1.xAPI level 16 Ice Cream Sandwich API level 15, NDK 8 Ice Cream Sandwich API level 14, NDK 7 Honeycomb3.2.xAPI level 13 Honeycomb3.1API level 12, NDK 6 Honeycomb3.0API level 11 Gingerbread API level 10 Gingerbread API level 9, NDK 5 Froyo2.2.xAPI level 8, NDK 4

Usage share of the different versions [Wikipedia]

Overview of Android

Kernel Android is built on the Linux kernel, but Android is not Linux Many standard Linux features are not included Patch of “kernel enhancements” to support Android Linux provides memory and process management, security and device drivers Linux is open source

SELinux The latest versions of Android are based on Security Enhanced Linux SELinux supports Mandatory Access Control (MAC) MAC is used in default allow mode

Inter-Process Communication (IPC) The Android processes run in separate address spaces isolated from one another A method call-like IPC interface allows one process to call another There is a name resolution feature that maps requests to processes Objects passed through shared memory

Hardware Adaption Layer Similar to the Hardware Adaption Layers of Windows and other systems Sits just above the kernel Defines the interface that Android requires hardware “drivers” to implement Separates the Android platform logic from the hardware interface Expected to change for different platforms

Libraries Android provides a collection of libraries written in native code Features include – WebKit – open source web browser – SQLite – most data is stored in a database – Surface Flinger – merges multiple images into the display frame – Audio Flinger – merges multiple audio streams to any audio device

Bionic Android uses its own Bionic libc instead of the standard libc Bionic is customized to have low memory requirements Doesn't support certain POSIX features Bionic is loaded into each application memory While Bionic is open source as part of Android, it avoids the Gnu License

Different Open Source Licenses GNU General Public License – Any modification or application using GPL software must conform to GPL BSD licenses – unlimited redistribution for any purpose as long as its copyright notices remain Apache License – Applications using the license do not have to be open source

Dalvik - Android Virtual Machine Creates environment to execute applications Interpretively executes Java programs Provides an ability to link to libraries

Limited Memory Total system RAM: 64 MB (minimum – it is possible for the machine to have more) Available RAM after low-level startup: 40 MB Available RAM after high-level services have started: 20 MB Large system library: 10 MB

Pseudo Virtual Memory No swapping to disk Libraries can be mapped into a programs address space If the system runs out of memory, it will terminate the least recently used application (low memory killer)

Interpreting Java Applications on Android are written in Java After the Java program is compiled, the Java Jar file is converted to a new format called Dex (Dalvik EXecutable) The Java byte codes are converted to Dex byte codes

Dex File Entire Jar file with multiple classes are converted to a single Dex file The merging of multiple class files into one Dex file reduces significant redundancy Dex file is often less than half the size of normal Jar file, even more than compressed Jar

To JIT or Not Originally Google stated that Dex byte codes will only be interpreted and not compiled to native code Android 2.2 included a Just in Time (JIT) compiler Machine language is a little bigger than Dex Most libraries written in native code (C) Java Native Interface (JNI) is available

Dex Checks Byte codes are verified when loaded on device Optimizations are made to byte codes – Empty methods are removed – Static linking where possible – “inlining” special native methods

Register Machine Model The traditional JVM model is a stack machine Dex assumes the CPU has registers Higher semantic density per instruction Significantly fewer instructions are interpreted – about 30% fewer instructions – Important in an interpreter

Example Java Method

Traditional Java Byte Codes

Dex Byte Codes

Oracle, Java SE Embedded Performance Versus Android 2.2, Nov 2010

Law Suits On August 12, 2010, Oracle sued Google over claimed infringement of Java copyrights and patents for $6.1 billion In May 2012 the jury found Google not guilty Almost every phone maker has sued every other phone maker

Memory Categories Clean or Dirty – Similar in concept to traditional virtual memory – Clean memory is mapped into the address space and has not been changed Shared or Private – shared: used by many processes – private: used by only one process

Memory Use Application Dex files are clean private Library Dex files are clean shared Application heap and local data are dirty private Dirty shared memory includes – library “live” Dex structures – shared copy-on-write heap (mostly not written)

Application Framework Provides APIs to a collection of services including: – Windows Manager – Location Manager (GPS) – Telephony Manager

Android Runtime Services

Developer Tools Most phone systems provide a set of developer tools for the desktop Android applications are written in Java using Eclipse and Apache Ant Iphone apps are written in Objective C Simulators allows you to run and debug applications on your desktop

MIT App Inventor The App Inventor allows you to create an Android app using drag and drop programming Similar to the language Scratch

Consistency Phone developers have complained that it is difficult to create an application that runs the same way on different phones The layout of objects on the screen has been a complaint. Screens can be of different sizes

[Wikipedia]

Beyond the Phone Both Google and Apple have table computers based on their phone OS A tablet does everything a phone does, except act as a phone What is a small device?

Google Glass Google has made a wearable computer with optical display It runs the Android OS

Google Glass Spec input: microphone, accelerometer, gyroscope, magnetometer, ambient light sensor, proximity sensor, Touchpad output: Prism projector, 640×360 pixels (equivalent of a 25 in. screen from 8 ft. away) network: Wi-Fi b/g, Bluetooth 16 GB Flash total (12 GB of usable memory) 1GB RAM