Your SlideShare is downloading. ×
Android : Evolution or Revolution
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Android : Evolution or Revolution


Published on

Study of Google Android vis-a-vis the Market Trends. Andorid Architecture coverage, Dalvik Virtual Machine, Future of Android

Study of Google Android vis-a-vis the Market Trends. Andorid Architecture coverage, Dalvik Virtual Machine, Future of Android

Published in: Technology

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Evolution or Revolution? - Sanjiv Malik
  • 2. Market Trends
  • 3. Trends before Mid-2007 • Platforms available: – J2ME – Symbian – Windows Mobile – RIM – Palm OS • Bulky devices • Limited applications • Small screen size • Non-customized buttons • Expensive data transfer • Crippled browsers
  • 4. Trends - 2008 • Apple’s iPhone entered market as a “package” • Apple delivered a ‘solution’ – Slim & sleek iPhone is not just another phone, it’s a brand – Data transfer – Full featured browser – One screen size and no buttons – Content evaluation – Easy application deployment Apple is having Strict Control over what’ll go inside iPhone
  • 5. iPhone Stands Out!!
  • 6. LG Voyager Trends - 2008 iRiver GSM Blackberry Storm Nokia 5800 All Touchscreen interface Full Functional browser similar to PC Smooth User Interface Samsung Omnia HTC Touch
  • 7. Market Share Others Linux 5.1% Windows Mobile 13.6% Symbian 46.6% BlackBerry 15.2% Apple 17.3% Android is nowhere as of Q3 2008 Expecting to gain a big share by 2012
  • 8. Need of Another Mobile Platform • Everyone’s developing their own Platform • Handset manufacturer have strict control over what will go inside • The efforts can be shared and much better end- products can be offered to the end-user • The platform should be independent of the operator • Apps should not be dependent upon the platform
  • 9. The Google Approach • Google announces platform based solution – Android • 47 Major telecommunication giants join hands with Google to form Open Handset Alliance • Open source OS, will enable to develop cheaper and competitive smart phones • Allows 3rd parties to develop innovative applications with no interference • No content monitoring • Plans to use Android for any device, not just the mobiles
  • 10. Philosophy “Never settle for the best” Has proven this through: • innovation of technology • increasing the value of it’s products
  • 11. Google Mission Web Video Books News Enterprise Content all Organize all the world's information and make it universally accessible and useful
  • 12. Market Share TOTAL MARKET SHARE – SEPT. 2008 • 99% of revenue from Ads • Adwords (Google’s Flagship advertising product), Adsense, Adwords Website Optimizer • Audio Ads • Click to Call • Double Click
  • 13. History • In July 2005, Google acquired Android, Inc., a small startup company based in Palo Alto, CA • Android's co-founders Andy Rubin joined Google • Speculation that Google would be entering the mobile- phone market came in December 2006 • At Google, the team, led by Rubin, developed a Linux- based mobile device OS which they marketed to handset makers and carriers on the premise of providing a flexible, upgradeable system. • On 5 November 2007, the Open Handset Alliance, a consortium of several companies which include Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, Sprint Nextel and NVIDIA, was unveiled with the goal to develop open standards for mobile devices
  • 14. Open Handset Alliance The Alliance competes against Apple, Microsoft, Nokia, Palm, Symbian
  • 15. 47 Major Companies including Handset manufacturer, Semiconductor, Telecom Service Providers, Mobile platform/app designers etc
  • 16. Android Theory • Enjoys broad developer base & industry support • Based on proven technologies Java, XML and Linux • Open source & free { Not All Open Source } • Operator independent • Platform independent applications based on widely used Java • Supports parallel execution of applications
  • 17. Win-Win Situation Handset Manufacturers Mobile Operators Single platform Single platform Revenue generation No customization Revenue generation No customization Developers Customers Innovation Rich features Rich features Innovation Technology edge Creativity Creativity Technology edge Appreciation Less expensive Less expensive Appreciation Better experience Earnings Earnings Better experience • Appealing to developers • Appealing to manufacturers • Appealing to operators • Appealing to customers
  • 18. How will Google Make Money? • Google doesn't want to develop and sell smart phones, it just wants to sell advertising space on them • The Key is Mobile advertisement • Google Strategy “Create a Critical Mass first & the rest will follow” follow
  • 19. iPhone Vs Android
  • 20. Philosophy Apple Google • Users first • Developers first • Home button • Back button • Closed, rich UI • Open, feature rich • Apps & developers will • Apps & users will follow follow
  • 21. Android Vs iPhone
  • 22. iPhone Vs Android • iPhone apps can only be • Android apps can be developed on a fairly new developed on any Mac platform (Windows XP and Vista, Linux, and Mac OS X) • iPhone apps require • Based on Java which all developers to learn mobile app developers Objective-C are familiar with • Apple has strict control of • Anyone can develop and their App Store. launch an Android app
  • 23. iPhone Vs Android • Only one app can run at a • Apps on an Android time. Other apps will be handset can run in sleeping parallel (an app running in the background can send an alert) • In the US, AT&T has • Android is license and exclusive rights to sell the operator independent iPhone 3G • No support for MMS, • Android supports MMS, video recording & video camera & bluetooth bluetooth
  • 24. Android Internals
  • 25. The Platform • Software stack for mobile devices – Includes an OS, middleware & key applications – Java based applications run on Dalvik, a custom VM designed for embedded use – Dalvik VM runs on top of a Linux kernel • Light weight and full featured • Extensible
  • 26. Features • Graphics Library • Messaging – Adaptable to custom 2D – SMS & MMS graphics library, 3D • Web Browser graphics library based on OpenGL ES 1.0 – WebKit Application Framework • Storage • Dalvik Virtual Machine – SQLite for structured data storage – Specialized VM implementation for • Connectivity applications written in Java – GSM/EDGE, CDMA, optimized for mobile UMTS, EV-DO, Bluetooth devices & Wi-Fi
  • 27. Features • Media Support • Development – MPEG-4, H.264, MP3, Environment AAC, OGG, AMR, JPEG, – Device Emulator PNG, GIF – Debugging Tools • Additional Hardware – Eclipse IDE & plugin Support • Application Framework – Cameras, touch screens, – Enable reuse and GPS, accelerometers & replacement of accelerated 3D Graphics, components Compass
  • 28. System Architecture
  • 29. Linux Kernel • Kernel version 2.6.x • Acts as an abstraction layer between the hardware and the rest of the software stack • Core services : – security – memory management – process management – network stack – driver model
  • 30. Linux Kernel to Android • Goldfish – virtual CPU executing ARM926T instructions • YAFFS2 – high performance interface between kernel & NAND flash devices • Bluetooth – fixed bugs related to Bluetooth headsets, added Bluetooth debugging and access control functions • Scheduler – modified CPU process scheduling & time keeping algorithms
  • 31. Linux Kernel to Android • IPC Binder – processes to provide services to other processes • Low Memory Killer – scan list of running process and kill one • Ashmem – adds interfaces so processes can share named blocks of memory • Android Debug Bridge – protocol that runs over a USB link between a Android hardware device and a developer writing applications on a desktop
  • 32. Linux Kernel to Android • RAM Console & Log Device – store kernel log messages to a RAM buffer • Power Management – added new power management system • Miscellaneous – additional debugging support, keypad light controls, and management of TCP networking
  • 33. Libraries • System C Libraries – tuned for embedded Linux • Media Libraries – support popular audio/video formats • Surface Manager – manages access to display subsystem • WebKit – modern web browser engine • SGL – 2D graphics engine • 3D Libraries – based on OpenGL ES 1.0 • Free Type – bitmap and font rendering • SQLite – lightweight relational database engine (~500KB)
  • 34. Android Runtime • Runtime includes core libraries & Dalvik VM • DVM specifically designed to run in limited environment – Non standard JVM – Not Java SE, ME – No Swing/AWT windowing toolkits – .jar files are converted to .dex files to generate efficient bytecode – Device can run multiple VMs efficiently
  • 35. Dalvik Virtual Machine • Bytecode interpreter for systems with – Slow CPU (250-500 MHz) – Little RAM (64 MB) – No swap space – Battery power Java Dalvik Eclipse Dx Converter Compiler VM
  • 36. Dalvik Virtual Machine • Consider the loop inside this simple method public static long sumArray(int[ ] arr) { long sum = 0; for (int i : arr) { sum += i; } return sum; Java Byte Code } DVM Byte Code 000b: iload 05 0007: if-ge v0, v2, 0010 000d: iload 04 0009: aget v1, v8, v0 000f: if_icmpge 0024 000b: int-to-long v5, v1 0012: aload_3 000c: add-long/2addr v3, v5 0013: iload 05 000d: add-int/lit8 v0, v0, #int 1 0015: iaload 000f: goto 0007 0016: istore 06 0018: lload_1 30% less instructions 0019: iload 06 001b: i2l 001c: ladd 001d: lstore_1 001e: iinc 05,
  • 37. Android Runtime • Core libraries are basically Java core libraries –* – java.util.* –* – Java.math.* • Relies on the Linux kernel for underlying functionality
  • 38. Application Framework • Simplified architecture for reuse of components • Applications are based on set of services: – A rich and extensible set of Views – Content Providers – Resource Manager – Notification Manager – Activity Manager
  • 39. Applications • Android ships a set of core applications: – Email client – SMS/MMS program – Calendar – Maps – Browser – Contacts
  • 40. Application Building Blocks • Divide the application into following components: Activity UI component corresponding to one screen Intent Receiver Responds to notification or status change Service A task that runs in background Content Provider Enables applications to share data
  • 41. Application Building Blocks • Define & list all components to be used in AndroidManifest.xml file – Required file for all the applications located in the root folder – Contains: • all global values for the package • all the components and its classes used • intent filters, which describe where and when the certain activity should start • permissions
  • 42. Lifecycle of Applications • Each application runs in its own Linux process. App is launched inside a new instance of the VM • When a new app is installed, its having user permission, so it has access to only certain resources. • Process’s lifetime not directly controlled by application • Determined by the system depending on: – running applications – their importance – available memory • Components impact the lifetime of the application’s process • Importance hierarchy for killing processes based on – components running in them – state of these components
  • 43. Application Life-Cycle • Android is responsible to manage which application should run and which should be killed • Android takes the complete headache of allocating sufficient memory to each App. • It manages it very fast & without any user interaction
  • 44. Platform Initialization Kernel • Boot loader loads kernel & starts init process • Daemons for handling low Init level hardware interfaces • “Zygote”, the initial Dalvik VM Daemons Zygote Runtime process is created • Runtime process initiates the Service Manager Service Manager • Runtime process requests Dalvik VM Zygote to start a new instance System Server of Dalvik for running the Registration System Server Surface Manager • The first process handles graphic outputs Telephony Bluetooth … • All the others android components are then started Activity Manager Package Manager Service Manager
  • 45. Developing Applications • Best support for developing programs is to do it through Eclipse IDE – Eclipse IDE version 3.3 or newer – JDK 5 or 6 – Android SDK – Java Beans IDE • Install the Android Development Tools Plugin (ADT) – ADT automates a lot of what you would have to do manually
  • 46. Programming API’s Android.graphic Provides low level graphics tools such as canvases, color filters, points and rectangles that handles drawing to the screen directly Android.hardware Contains classes to manipulate data returned from content providers Android. database Provides support for hardware devices that may not be present on every Android device Android.telephony Monitoring the basic phone information, such as the network type and connection state, utilities for manipulating phone number strings
  • 47. Programming API’s Handle screen layout and interaction with the Android.view user Android.Webkit Provides tools for browsing the web Android.Os Basic operating system services, message passing, and inter-process communication on the device Android.Widget Contains (mostly visual) UI elements to use on your Application screen
  • 48. Android SDK • SDK, an open-source package is available for – Windows – Linux – Mac OS • Java is indeed the programming language for software running on the Linux-based phones • Use the open-source Eclipse IDE, founded by IBM, along with an Android plug-in • Includes an emulator, write software even without phone hardware. "The look and feel of the UI in the emulator is a placeholder for a final version that is under development." • Contains APIs that support location-based services, video and audio streaming and playback, and 3D graphics. • Bluetooth and 802.11 wireless networking APIs aren't yet available.
  • 49. New Project in SDK 50 50
  • 50. Example – Hello Android package; import; import android.os.Bundle; import android.widget.TextView; public class HelloAndroid extends Activity { /* Called when the activity is first created */ @Override public void onCreate(Bundle savedInstState) { super.onCreate(savedInstState); TextView tv = new TextView(this); tv.setText("Hello, Android");setContentView(tv); } }
  • 51. Android SDK
  • 52. Android Debug Bridge (ADB) • Android Debug Bridge (adb) is a versatile tool that lets you manage the state of a device or emulator. • Some of ways you can use adb include: • Run shell commands on a device • Manage port forwarding on an emulator or device • Copy files to/from an emulator or device • The sections below introduce adb and describe many of its common uses.
  • 53. Native Applications for Android • The ADB debugger gives a root shell under the Android Emulator which allows native ARM code to be uploaded and executed. ARM code can be compiled using GCC on a standard PC. Running native code is complicated by the fact that Android uses a non-standard C library (known as Bionic). The underlying graphics device is available as a framebuffer at /dev/graphics/fb0. • The graphics library that Android uses to arbitrate and control access to this device is called the Skia Graphics Library (SGL), and it has been released under an open source license.Skia has backends for both win32 and Cairo, allowing the development of cross-platform applications, and it is the graphics engine underlying the Google Chrome web browser. • Native classes can be called from Java code running under the Dalvik VM using the System.loadLibrary call, which is part of the standard Android Java classes.
  • 54. Android Emulator • SDK includes a mobile device emulator - a virtual mobile device that runs on your computer. Emulator is based on QEMU • Allows to (without using a physical device ) : – prototype – develop – test applications • Mimics typical hardware and software features (except that it can not receive or place actual phone calls) • Allows application to use the services of the Android platform to: – invoke other applications – access the network – play audio and video – store and retrieve data – notify the user – render graphical transitions and themes • Includes a variety of debug capabilities, such as : – a console from which kernel output can be logged, – simulate application interrupts (such as arriving SMS messages or phone calls), – simulate latency effects and dropouts on the data channel.
  • 55. Emulator on PC
  • 56. Developer Challenge • Android’s Vision – cool applications that surprise and delight mobile users – Total award amount - $10 million – 50 teams qualified as finalists, each received award of $25,000 – 10 teams received an award of $275,000 each – 10 teams received $100,000 each
  • 57. Android Apps Market • Google’s application store, where users can search, download, buy and install software • Android Market allows developers to offer applications to people with Android based smartphones. – 27.10.2008 opened for developers to upload free software ($25 one time application fee) – Q1 2009 developers can distribute paid apps (developers get 70% of the revenue from each purchase, remaining part goes to carriers and billing settlement fees)
  • 58. Sample Applications - List • Cab4me • BreadCrumbz • Compare Everywhere • CookingCapsules • Ecorio • Maverick • GoCart • PebbleBox • Life 3600 • PhoneBook 2.0 • Locale • Piggyback • PicSay • Pocket Journey • Softrace • Rayfarla • TuneWiki • ShareYourBoard • Wertago • Teradesk e-Storage
  • 59. Sample Applications - Snapshots
  • 60. Sample Applications - Snapshots
  • 61. Sample Applications - Snapshots
  • 62. Sample Applications - Snapshots
  • 63. Sample Applications - Snapshots Cab4me Compare Everywhere
  • 64. First Android Handset T-Mobile G1(Dream)
  • 65. Features • 500 MHz, 192 MB RAM, HVGA • Touch Screen • QWERTY keyboard • One-Touch Google Search • Real Web Browsing • Easy Access to Google Apps – Google Maps street view (in-built compass) – Calendar – YouTube, Gmail, GTalk • 3G Network and Wi-Fi Access • IM/Text/E-mail • 3.2 Megapixel Camera • Music Player • Android Market • Customizable Home Screen
  • 66. T-Mobile G1 Sale • Launched on 22nd Oct, 2008 • T-Mobile has totally overshot their sales expectations for the G1 • 1.5 million G1s have already been sold in pre-orders
  • 67. Android on Notebooks – ASUS Notebooks: – Nokia Internet Tablet: • EEEPC 701 • N810 • EEEPC 1000H
  • 68. Market Share Window Mobile iPhone OS (Apple) BlackBerry OS (RIM) (Microsoft) Android (Google) Symbian (Nokia) Platform • Closed • Closed • Open • Open • Open Source Code • Closed • Closed • Closed • Open • Open (in future) Q2 WW Market • 2.8% (1) • 17.4% • 12.0% • n/a • 57.1% Share (Gartner) Smartphone traffic • WW: 4% • WW: 11% • WW: 13% • n/a • WW: 64% share (AdMob) • US: 16% • US: 31% • US: 29% • US: 2% Pros • Early momentum • Strong reach • Manufacturer / • Manufacturer / • Massive global • Data hungry early (particularly in US) carrier agnostic carrier agnostic reach adopters • Open source • Open source • Powerful innovation innovation distribution channel Issues • Apple dependant • BB dependent • Distribution • Late to market • Limited reach in US • Distribution • Uncertain • Distribution consumer demand Application • >3K apps (~20% • Fewer free apps • >18K apps • Android Market • >10K apps ecosystem free) • BB Application • Skymarket to announced • Claims >90MM • More than 1M Center being launch in 2009 • $3.8MM awarded in installs over last 2 installs in only a developed for Developer years few months Storm Challenge
  • 69. References • Android Open Source Project • • Introduction to Androidology • • • • • • Dalvik Virtual Machine • • HTC G1 Android Phone •
  • 70. Android – Is It a Revolution?