160 likes | 171 Views
This survey explores the features and architecture of Google's Android operating system. It covers topics such as the Open Handset Alliance, Android Developer Challenge, Android system software overview, Linux kernel, system libraries, Android runtime, application software overview, and more.
E N D
A Survey on Modern Mobile OS – Google Android Chang, Yung-Ching (張永慶) Applied Computing Lab Department of Computer Science National Taipei University of Technology
Agenda • What is Android • Open Handset Alliance • Android Developer Challenge • Android System Software Overview • Linux Kernel • System Libraries • Android Runtime (Core Libraries, Dalvik VM) • Android Application Software Overview • Application Framework • Applications • Conclusions Applied Computing Lab @ NTUT CS
What is Android • Google’s Mobile Development Platform • Introduced by Google on 2007/11/12 • The era of Mobile 2.0 with integration of internet service • An Open Handset Alliance Project • Integrate Google’s services - Gmail, Google Talk, Google Search, Google Map, Google Earth, Blogger, Picasa, YouTube etc. • Google’s Open and Royalty/License Free Mobile OS • Android kernel is using GPL v2 licenses • Android application software is using Apache Software License (ASL) licenses • ASL doesn’t request open source code. ISV can make profits from this Applied Computing Lab @ NTUT CS
Open Handset Alliance Applied Computing Lab @ NTUT CS
Android Developer Challenge • Attract more ISPs, ISVs, OEM/ODMs resources and creativities on Android platform • US$ 10M distributed equally between two challenges • ADC 1 : based on SDK • 50 teams of finalist received US$ 25,000 award each • ADC 2: based on GPhone • 10 teams received a US$ 275,000 award each • 10 teams received a US$ 100,000 award each Source Applied Computing Lab @ NTUT CS
Android Software Architecture App Software Sys Software Applied Computing Lab @ NTUT CS
Linux Kernel • Access and management hardware resources • Power management, memory management, process managements, network stack, security model, driver models • Shared libraries and sources supported on multiple hardware platforms • Optimized for mobile hardware platform • Alarm, Android Shared Memory, Binder, Power Management, Lowe Memory Killer, Kernel Debugger and Logger • Binder IPC Driver : All apps are executed on their own dedicated Process. Thus, communications, data sharing and performances among processes are very important • Power Management : optimize Linux Power Management module for embedded Linux-based devices • Android is following GPL v2 license agreement and publishing its modifications of sources • Drivers are executing like apps on top of Linux Kernel. • Drivers are moving to User Space instead of Kernel Space, which allow users to control hardware through applications Applied Computing Lab @ NTUT CS
System Libraries • Android includes a set of C/C++ libraries • libc : Android-based System C Library, tuned for embedded Linux-based devices • WebKit : Open source web browser engine which is used for Apple Safari, Google Chrome, and Nokia S60 Web Browser • Surface Manager : Compose different 2D/3D graphics planes from multiple applications and show on the display • Media Framework : Based on PacketVideo’sOpenCORE; the libraries support playback/recording of common media formats (MPEG-4, H.264, MP3, AAC, AMR, JPG, and PNG) • Free Type : Bitmap and vector font rendering • SQLite: A powerful and lightweight relational database engine available to all applications • SGL : Scalable Graphics Library is the underlying 2D graphics engine • HAL : Define driver APIs called by system libraries. Hardware Abstraction Layer (Display, Camera, Audio, Radio, GPS, BT, WiFi) Applied Computing Lab @ NTUT CS
Android Runtime • Android Runtime consists of Core Libraries and Dalvik VM • Core Libraries • Provides most of the functionality for Java programming • Includes original Java class library, Android-based class library, and Open Source class library, mainly from Apache Software Foundation • Dalvik VM • Every Android applications runs its own process, with its own instance of Dalvik VM • Dalvik has been written so that a device can run multiple VMs efficiently. • The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint and processor speed. • A tool called “dx” is used to convert Java .class files into the .dex format. Multiple classes are included into a single dex file. Applied Computing Lab @ NTUT CS
Application Framework • Developers have full access to the same framework APIs used by the core applications, including browser, email client, calendar, maps, contacts etc. • The framework consists of 9 major core APIs • Activity Manager : manages the life cycle of applications • Windows Manager : manages all the opened windows • Content Providers : enable applications to access data from other applications (such as Contacts) • View System : a rich set of APIs that can be used to build apps, including Lists, Grids, Text Boxes, and Buttons • Package Manager : manages all installed programs in Android • Telephony Manager : manages all incoming/outgoing call functions • Resource Manager : providing access to non-code resources such as localized strings, graphics, and layout files • Location Manager : manages all location-based services and functions • Notification Manager : enables all applications to display custom alerts in the status bar Applied Computing Lab @ NTUT CS
Conclusions • Open-source Mobile OS is industrial trend • Google Andriod • Nokia Symbian • Intel Moblin • Motorola LiMO • One OS for different hardware architectures and embedded devices • ARM (Smartphone, Consumer Handhelds etc.) • x86 (Netbook, MID) • Software + Services are the next-generation of computing • Google Android + Gmail, Google Talk, Google Search, Blogger, Picasa, YouTube • Windows Mobile + Live Mail, Live Messenger, Facebook, Office Live • All services are in the cloud • Browser is the key to access services Applied Computing Lab @ NTUT CS
References • Open Handset Alliance - http://www.openhandsetalliance.com/ • Android Official Website - http://www.android.com/ • Android Open Source Project - http://source.android.com/ • Android Application Developer Website - http://code.google.com/android/ • Google I/O Session Videos and Slides - http://sites.google.com/site/io/ • MISOO Android - http://sites.google.com/site/misoo777/ • Android Development Community - http://www.anddev.org/ • Android Community - http://androidcommunity.com/ • Android Quick Start - http://code.google.com/p/androidbmi/wiki/IntroAndroid • Google Developer Day 2008 Taiwan - http://sites.google.com/site/developerdaytaiwan/google-developer-day-2008-taiwan Applied Computing Lab @ NTUT CS
Backup Applied Computing Lab @ NTUT CS
http://www.hope.com.tw/form/gen/cf004_0115.html Applied Computing Lab @ NTUT CS
Android Lifecycle Applied Computing Lab @ NTUT CS
Android Emulator Applied Computing Lab @ NTUT CS