Android Platform Overview (1)

Slides:



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

Google Android Introduction to Mobile Computing. Android is part of the build a better phone process Open Handset Alliance produces Android Comprises.
Introduction.  Professor  Adam Porter 
Mobile Application Development with ANDROID Mobile Application Development with ANDROID d.
What is Android?.
Android architecture overview
 Android is a software platform and operating system for mobile devices, based on the Linux kernel, developed by Google. It allows developers to write.
Introduction to Android Mohammad A. Gowayyed CS334-Spring 2014.
Android: An Open Software Platform for Mobile Devices
Google's android as an application environment for DTV decoder system Consumer Electronics (ISCE), 2010 IEEE 14th International Symposium on, 7-10 June.
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 CSCE 4013: Mobile Systems Programming Nilanjan Banerjee Mobile Systems Programming University of Arkansas Fayetteville, AR
Mobile Application Development
This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this license, visit
Android An open handset alliance project Janice Garcia September 18, 2008 MIS 304.
@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.
S MARTPHONE A PPLICATION D EVELOPMENT Sam Palmer.
Introduction to Android Platform Overview
To be Presented by, T.Sathishkumar [11mw07] 1. Synopsis Introduction Version Features License An Application Development Demo Possibilities Advantages.
Android Introduction Platform Overview.
Mobile Application Development with ANDROID Tejas Lagvankar UMBC 29 April 2009.
Mobile Application Development with ANDROID. Agenda Mobile Application Development (MAD) Intro to Android platform Platform architecture Application building.
About me Yichuan Wang Android Basics Credit goes to Google and UMBC.
Mobile Application Development using Android
Overview of Android North Carolina A&T State University Some slides contain material taken from the Google Android website.
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.
Week II Platforms and Engines. Overview Platforms and Engines Tools and SDKs Netbeans Game Development Walkthrough
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
01. Introduction to Android Prof. Oum Saokosal Master of Engineering in Information Systems, South Korea
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 설정, 간단한 프로그램 실행 ) - 안드로이드 동작원리 - 안드로이드 핵심.
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.
1 Android Introduction Platform Overview. 2 What is Android?  Android is a software stack for mobile devices that includes an operating system, middleware.
Mobile Application Development with ANDROID Umang Patel(6537) LDCE.
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.
Operating Systems A.Biswas Architecture. Computer Startup.
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.
Vijetha Prabhu B & Sushmitha Shenoy. Android is a software stack for mobile devices that includes an operating system, middleware and key applications.
Presented by: Saurabh Kumar Sinha (MRT07UGBIT 186) IT VII Semester, Shobhit University Meerut.
The Basics of Android App Development Sankarshan Mridha Satadal Sengupta.
Computer System Structures
Android Mobile Application Development
Android Application -Architecture.
Visit for more Learning Resources
Architecture of Android
ANDROID AN OPEN HANDSET ALLIANCE PROJECT
Chapter 2: Operating-System Structures
chapter 6- Android Introduction
Software Engineering in Mobile Computing
Contents: Introduction Different Mobile Operating Systems
CMPE419 Mobile Application Development
Application Framework
Application Development A Tutorial Driven Course
Android Introduction Platform Mihail L. Sichitiu.
Korea Software HRD Center
Android Platform, Android App Basic Components
CMPE419 Mobile Application Development
Presentation transcript:

Android Platform Overview (1) © Frank Mueller & Seokyong Hong (TA) North Carolina State University Center for Efficient, Secure and Reliable Computing 1

Operating System (Linux Kernel 2.6) Android A S/W stack for mobile devices developed and managed by OHA A free S/W under Apache License Operating System (Linux Kernel 2.6) Middleware Key Applications Android 2

OHA (Open Handset Alliance) A business alliance consisting of 47 companies to develop open standards for mobile devices

Android Software Stack

Android S/W Stack – Linux Kernel Relying on Linux Kernel 2.6 for core system services Memory and Process Management Network Stack Driver Model Security Providing an abstraction layer between the H/W and the rest of the S/W stack

Android S/W Stack – Linux Kernel (Cont) Kernel Enhancements Alarm Ashmem Binder Power Management Low Memory Killer Kernel Debugger Logger

Android S/W Stack – Linux Kernel (Cont) Binder Driver to facilitate IPC between applications and services Problems of Linux IPC Applications and Services may run in separate processes but must communicate and share data IPC can introduce significant processing overhead and security hole Properties of Binder High performance through shared memory Per-process thread pool for processing requests Reference counting and mapping of object references across processes Synchronous calls between processes

Android S/W Stack – Linux Kernel (Cont) Binder in Action A pool of threads is associated to each service application to process incoming IPC. Binder performs mapping of object between two processes. Binder uses an object reference as an address in a process’s memory space.

Android S/W Stack – Linux Kernel (Cont) Power Management Problem Mobile devices depend on battery power and batteries have limited capacity. Properties of Power Management PM is built on top of standard Linux Power Management. PM supports more aggressive power management policy. Components make requests to keep the power on through “Wake Locks”. PM supports several different types of wake “Wake Locks”.

Android S/W Stack – Linux Kernel (Cont) Power Management in Action If there are no active wake locks, CPU will be turned off. If there are no partial wake locks, screen and keyboard will be turned off.

Android S/W Stack - Runtime Core Libraries Providing most of the functionality available in the core libraries of the Java language APIs Data Structures Utilities File Access Network Access Graphics Etc

Android S/W Stack – Runtime (Cont) Dalvik Virtual Machine Providing environment on which every Android application runs Each Android application runs in its own process, with its own instance of the Dalvik VM. Dalvik has been written so that a device can run multiple VMs efficiently. Register-based virtual machine

Android S/W Stack – Runtime (Cont) Dalvik Virtual Machine (Cont) Executing the Dalvik Executable (.dex) format .dex format is optimized for minimal memory footprint. Compilation Relying on the Linux Kernel for: Threading Low-level memory management

Android S/W Stack - Libraries Including a set of C/C++ libraries used by components of the Android system Exposed to developers through the Android application framework

Android S/W Stack – Libraries (Cont) Features System C Library (Bionic) Media Libraries Surface Manager (Surface Flinger) Audio Manager (Audio Flinger) LibWebCore (WebKit) SGL 3D Libraries FreeType SQLite

Android S/W Stack – Libraries (Cont) Bionic Custom libc implementation optimized for embedded use Problem with GNU libc License The authors want to keep GPL out of user-space. Size Libc will load in each process, so it needs to be small. Speed Limited CPU power means it needs to be fast.

Android S/W Stack – Libraries (Cont) Bionic (Cont) Properties BSD license Small size and fast code paths Very fast and small custom pthread implementation No support for certain POSIX features No compatibility with GNU libc Constraint that all native code must be compiled against bionic

Android S/W Stack – Libraries (Cont) WebKit An application framework that provides foundation for building a web browser based on open source WebKit browser Properties Ability to render pages in full (desktop) view Full CSS, JavaScript, DOM, AJAX support Support for single-column and adaptive view rendering

Android S/W Stack – Libraries (Cont) Media Framework A media framework based on PacketVideo OpenCore platform Properties Support for standard video, audio, still-frame formats Support for hardware/software codec plug-ins SQLite Light-weight relational database management system Back end for most platform data storgae

Android S/W Stack – Libraries (Cont) Surface Manager (Surface Flinger) Providing system-wide surface composer, handling all surface rendering to frame buffer device Operation

Android S/W Stack – Libraries (Cont) Surface Manager (Cont) Properties Can combine 2D and 3D surfaces and surfaces from multiple applications Surfaces passed as buffers via Binder IPC calls Can use OpenGL ES and 2D hardware accelerator for its compositions Double-buffering using page-flip

Android S/W Stack – Libraries (Cont) Audio Manager (Audio Flinger) Processing multiple audio streams into PCM audio out paths Operation

Android S/W Stack – Libraries (Cont) SGL The underlying 2D graphics engine 3D Libraries An implementation based on OpenGL ES 1.0 APIs Using either H/W 3D acceleration (if available) or the included optimized 3D S/W rasterizer FreeType Rendering bitmap and vector font

Android S/W Stack – App Framework Enabling and simplifying the reuse of components Developers have full access to the same framework APIs used by the core applications. Users are allowed to replace components.

Android S/W Stack – App Framework (Cont) Features Feature Role View System Used to build an application, including lists, grids, text boxes, buttons, and embedded web browser Content Provider Enabling applications to access data from other applications or to share their own data Resource Manager Providing access to non-code resources (localized string , graphics, and layout files) Notification Manager Enabling all applications to display customer alerts in the status bar Activity Managing the lifecycle of applications and providing a common navigation backstack

Android S/W Stack - Application Android provides a set of core applications: Email Client SMS Program Calendar Maps Browser Contacts Etc All applications are written using the Java language.