Android OS Google's Mobile Device Operating System.

Slides:



Advertisements
Similar presentations
Android Application Development A Tutorial Driven Course.
Advertisements

Introduction.  Professor  Adam Porter 
David Angulo Rubio ANDROID OS Open Software Platform for Mobile Devices.
What is Android?.
Android architecture overview
Introduction to Android Mohammad A. Gowayyed CS334-Spring 2014.
Android Platform Overview (1)
Objectives Overview Define an operating system
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.
Mobile Application Development
Google Android as a mobile development platform T Internet Technologies for Mobile Computing Olli Mäkinen.
This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
UFCFX5-15-3Mobile Device Development Android Development Environments and Windows.
Introduction to Android Platform Overview
Emerging Platform#4: Android Bina Ramamurthy.  Android is an Operating system.  Android is an emerging platform for mobile devices.  Initially developed.
Android Introduction Platform Overview.
Mobile Application Development with ANDROID. Agenda Mobile Application Development (MAD) Intro to Android platform Platform architecture Application building.
Mobile Application Development using Android
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.
Introduction CIS 136 Building Mobile Apps 1. What is a mobile app? 2  Computer program  Designed for small devices  Smartphones  Tablets  Other handhelds.
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.
Android for Java Developers Denver Java Users Group Jan 11, Mike
ANDROID 응용 프로그래밍 과정 – 목차 - 안드로이드란 - 안드로이드가 만들어지게 된배경 - 안드로이드의 철학 - 안드로이드 환경설정 ( SDK download, eclipse plug-in 설정, 간단한 프로그램 실행 ) - 안드로이드 동작원리 - 안드로이드 핵심.
© 2016 Cengage Learning®. May not be scanned, copied or duplicated, or posted to a publicly accessible website, in whole or in part. Android Boot Camp.
Android Husam Abdel Rahman. Introduction Android Operating system is most popular operating system these days with the advance in voice communications.
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.
 Installation of Android Development Environment  Creating the App with OpenGL ES API  Running the App on Emulator Android App Development.
1 Android Introduction Platform Overview. 2 What is Android?  Android is a software stack for mobile devices that includes an operating system, middleware.
Chapter 9 Operating Systems Discovering Computers Technology in a World of Computers, Mobile Devices, and the Internet.
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.
1 Get All Answers Get All Answers. Contents History of Android Android Fragmentation The Role of Google Features and Architecture Android Software Development.
J.BHAVANA 3/4B.TECH CSE Ch.Rochasmathi 3/4B.tech CSE.
Android operating system N. Sravani M. Tech(CSE) (09251D5804)
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.
 This work confers an application which makes possible to use a Bluetooth enabled mobile phone to remote control home appliances such electric fan, LEDs.
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.
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.
The Basics of Android App Development Sankarshan Mridha Satadal Sengupta.
Google's Mobile Device Operating System
Computer System Structures
Mobile Device Development
Android Mobile Application Development
Operating Systems Case Study
Visit for more Learning Resources
Architecture of Android
ANDROID AN OPEN HANDSET ALLIANCE PROJECT
chapter 6- Android Introduction
Android.
Software Engineering in Mobile Computing
Contents: Introduction Different Mobile Operating Systems
Android: Modding & Hacking whitone 2012/12/12.
Chapter 2: The Linux System Part 1
Application Development A Tutorial Driven Course
Android Introduction Platform Mihail L. Sichitiu.
Korea Software HRD Center
Android Platform, Android App Basic Components
Presentation transcript:

Android OS Google's Mobile Device Operating System

Intro & Overview Steve Mance

Agenda Intro/Overview Hardware and IO Kernel Software Architecture Programming Languages Application Framework and Components Future for mobile and non-mobile platforms

Intro/Overview - What is Android? Operating System optimized for Mobile Devices Open Source Maintained by Google Based on the Linux kernel

Intro/Overview - System Overview

Intro/Overview - History Android Inc. founded 2003 Purchased by Google from initial dveloper in 2005 Version 2.0 released 2009 o Starts to take hold in the Smartphone Market Version 3.0 released 2011 o Predominantly used in Tablets

Intro/Overview - Features Apps o The "Programs" of Android o Composed of application components Widgets o Provide information and tools directly on the Home Screen o No need to launch an activity Marketplace o A place for App distribution, run by Google o Developers can sell their apps or give them away freely o Third Party distributors also available

Intro/Overview - Marketshare

Late 2009/Early 2010 Android begins it's growth in the US Smartphone market As of Janurary 2011 the Android OS has the highest marketshare in smartphones in the US Now more prevalent than iOS (Apple) and Blackberry (RIM)

Intro/Overview - Relevant Devices Phones: HTC Thunderbolt Motorola Droid/2/X HTC Evo Samsung Nexus S +Many More Tablets: Motorola Xoom Samsung Galaxy Tab 4G Dell Streak Asus Eee-Pad Transformer +More

Hardware and I/O Dmitiry Lozovatskiy

Device Requirements Chipset: ARM-based (32-bit Advanced reduced instruction set computer architecture machine). Dalvik VM graphics processing, currently assume an ARM architecture. Memory: 128 MB RAM; 256 MB Flash External. Android can boot and run in configurations with less memory, but it isn't recommended. Storage: Mini or Micro SD. Not necessary for basic bring up, but recommended. Primary Display: QVGA (320×240) TFT LCD or larger, 16-bit color or better. Touch screen interface no smaller than 2.8 inches in size. Navigation Keys: 5-way navigation with 5 application keys, power, camera and volume controls. Camera: Must have a resolution of at least 2 megapixels, but not required. USB: Standard mini-B USB. For flashing the device system images and debugging. Bluetooth: 1.2 or 2.0, but not required.

Kernel Geoff Hetherington

About the Android Kernel Derived from the Linux 2.6 kernel, with added enhancements not found in Linux Kernel mode and user mode are used the same as in the Linux kernel

Ashmem Anonymous Shared Memory Ashmem uses virtual memory The kernel is allowed to free this shared memory More viable for low memory devices, because it can discard shared memory units

Pmem Process memory allocator Similar to ashmem, but uses physically contiguous memory as opposed to virtual memory Manages large, contiguous regions of memory shared between user space and the kernel drivers

Binder A tool for inter-process communication Binder driver manages synchronization between processes Facilitated using different states o Receive blocked o Ready o Send blocked o Reply blocked

Logger System logging, separate from the Linux kernel’s own logging system Stores logs from applications, events, and the system Write path is optimized to avoid overhead from open(), write(), and close()

Android Power Management Wake locks are used to hold the machine awake until a wake lock is released Wake locks issued in user space, handled by kernel Power management can shut CPU down if there are no active wake locks

Multithreading and Multitasking Expensive operations are done in a background service Slow work is done in a background thread Ensure the UI is responsive to the user Processes are not killed when the user closes an application, instead they remain in the background

Removal From Linux Kernel Android code removed from Linux kernel as of December, 2009 Kernel development has been removed from the Linux kernel tree Android kernel includes features that would need to be integrated into Linux kernel to merge it into main kernel tree

Software Architecture Raanan Korinow

System Libraries libc for C and C++ o Why not glibc? libpthread o not 100% POSIX compliant Isn't Android programmed in Java? SDK vs NDK

More Libraries SSL SQLite WebKit (and LibWebCore for embeddable webpages) Audio Manager Media Framework o MediaPlayer

Graphics Libraries Scalable Graphics Library (SGL- for 2D) OpenGL for Embedded Devices (for 3D) FreeType (vector and bitmap fonts) Surface Manager o Composes 2D and 3D windows, widgets, apps, toolbars and more using Surface Flinger o Uses Binder IPC to get buffers from apps to put into frames

Hardware Abstraction Libraries GPS, Radio, Camera, Bluetooth, other I/O Hardware drivers must implement in order for applicationss to use them Applications interact with the abstraction libraries, not the driver Promotes variety in hardware without breaking applications Gives OS tighter control over devices

Android vs Linux Software Architecture No native window library Does not support full set of GNU libraries Difficult to port Linux applications to Android, but possible if working within libc constraints

Reboot Bug (2008) Android allowed a remote device to be controlled over serial port If device not attached, phone would execute ALL text input as shell commands Typing “reboot” in an /browser/anywhere would result in phone rebooting Architecture and Components at fault! Promptly fixed, but jeopardized Android’s reputation.

Programming on Android Jin Kim

Application Development Most Android applications written in Java However, no Java Virtual Machine in the platform Java classes compiled into Dalvik virtual machine Dalvik - a specialized virtual machine designed specifically for Android

Android Software Development Kit (SDK) The SDK includes a comprehensive set of development tools. Includes a debugger, libraries, documentation, sample code These tools are accessed through an Eclipse plugin called ADT (Android Development Tools) or from command line Developing with Eclipse is preferred (but not required)

Steps for Developing Applications 1. Install Eclipse or own IDE 2. Install ADT plugin, or an editor of your choice 3. Set up Android Virtual Devices or hardware devices on which you will install your applications 4. Create an Android project o Contains all source code and resource files for your application. Built into an.apk package that you can install on Android devices. 5. Build and run your application

Steps for Developing Applications 6. Debug your application with the SDK debugging tools o Involves using a JDWP-compliant debugger along with the tools provided with Android SDK. 7. Test your application with the Testing and Instrumentation framework o The Android SDK provides a testing and instrumentation framework to help set up and run tests

Support for Additional Languages In 2009, Google announced the Android Native Development Kit (NDK) o Allows developers to build Android software components with C and C++ o Comes with limitations, however o Intended to be used alongside Java to code individual parts of programs, not as a full alternative Google also launched the Android Scripting Environment (ASE) - allows developers to build apps with Python and Lua

New Language July, 2009, Google released language called Simple, designed specifically for Android apps Simple - based on BASIC Easy to learn and use language Gives both amateur and professional programmers a quick and easy way to write Android apps

Application Components Jason Loewy

Android Components Four types: Activities - Services - Content Providers - Broadcast Receivers Part of the building blocks of applications Each component type performs its own unique action

Component - Activity Activities can be thought of as a single view that provides a user interface Each activity is it's own entity but all activities work together to form the application.

Component - Services Services are tasks that run in the background Run on the main process thread unless otherwise specified Examples include playing music while using other applications, handling network transactions, etc (Image from

Component - Content Provider Content Providers allow for cross application communication Applications must have necessary permission levels to communicate For example allows applications to select an image from the phones library, select a contacts info from the contacts list, etc

Component - Broadcast Receiver Broadcast are system wide notifications Broadcast Receivers allow applications to receive those notifications and act accordingly For example releasing allocation memory on a low memory warning.

Android's Future Adam LaFave

Growth Android predicted to grow in market share: o 38.6% (#2) tablet OSes by 2015 o 48.8% (#1) phone OSes by 2015

Reasons for Growth Open Source o Many handset / tablet makers utilize this free OS (HTC, Motorola, Samsung)  Saturates the market with Android hardware on multiple carriers o Free to develop on -- no overhead charge for developing apps (iOS) Strong fan base Alternative to iOS-based devices It's Google

With Great Growth Comes Great Responsibility Fragmentation Different screen sizes, hardware features, user interfaces and carrier-decided OS updates cause inconsistent Android experience After selling a device, manufacturer has little incentive to offer updates Security More users = more attractive to malware writers "Open" market means it's customer's responsibility to stay away from malicious software Smartphone use in business world poses risk

Mobile Growth Visualized

Merger With Chrome OS Eric Schmidt (ex-CEO): o The two efforts [Android and Chrome OS] will ultimately converge. o "We're working overtime to get these technologies merged in the right way." What does this mean for Android?

Merger With Chrome OS Chrome OS heavily utilizes the cloud. o A small hard drive is only needed for the OS itself. The merger may bring more cloud services to Android, possibly eliminating the need for internal storage. o Pictures, songs, videos, etc. may not need to be stored on the devices themselves -- instead pulled from the cloud when requested.

References and Resources