Evolution or Revolution?
                    - Sanjiv Malik
Market Trends
Trends before Mid-2007
• Platforms available:
    –   J2ME
    –   Symbian
    –   Windows Mobile
    –   RIM
    –   Palm...
Trends - 2008
• Apple’s iPhone entered
  market as a “package”
• Apple delivered a
  ‘solution’
  – Slim & sleek          ...
iPhone Stands Out!!
LG Voyager             Trends - 2008




                                                   iRiver GSM
                 Bl...
Market Share
            Others
       Linux
       5.1%
Windows
Mobile
13.6%
                     Symbian
               ...
Need of Another Mobile Platform
• Everyone’s developing their own Platform
• Handset manufacturer have strict control over...
The Google Approach
• Google announces platform based solution –
  Android
• 47 Major telecommunication giants join hands
...
Philosophy

    “Never settle for the best”
Has proven this through:
• innovation of technology
• increasing the value of ...
Google Mission

Web           Video      Books       News      Enterprise
                                                ...
Market Share
        TOTAL MARKET SHARE – SEPT. 2008




•   99% of revenue from Ads
•   Adwords (Google’s Flagship
    ad...
History
• In July 2005, Google acquired Android, Inc., a small
  startup company based in Palo Alto, CA
• Android's co-fou...
Open Handset Alliance




The Alliance competes against Apple, Microsoft, Nokia, Palm, Symbian
47 Major Companies including Handset manufacturer, Semiconductor,
Telecom Service Providers, Mobile platform/app designers...
Android Theory
• Enjoys broad developer base & industry support
• Based on proven technologies Java, XML and
  Linux
• Ope...
Win-Win Situation
Handset Manufacturers                                 Mobile Operators
  Single platform
 Single platfor...
How will Google Make Money?
• Google doesn't want to develop and sell
  smart phones, it just wants to sell advertising
  ...
iPhone Vs Android
Philosophy

      Apple                           Google
•   Users first              •   Developers first
•   Home button...
Android Vs iPhone
iPhone Vs Android
• iPhone apps can only be       • Android apps can be
  developed on a fairly new       developed on any...
iPhone Vs Android
• Only one app can run at a      • Apps on an Android
  time. Other apps will be         handset can run...
Android Internals
The Platform
• Software stack for mobile devices
  – Includes an OS, middleware & key applications
  – Java based applicat...
Features
• Graphics Library                • Messaging
   – Adaptable to custom 2D          – SMS & MMS
     graphics libr...
Features
• Media Support                 • Development
   – MPEG-4, H.264, MP3,          Environment
     AAC, OGG, AMR, J...
System Architecture
Linux Kernel
• Kernel version 2.6.x
• Acts as an abstraction layer between the hardware and
  the rest of the software sta...
Linux Kernel to Android
• Goldfish
  – virtual CPU executing ARM926T instructions
• YAFFS2
  – high performance interface ...
Linux Kernel to Android
• IPC Binder
  – processes to provide services to other processes
• Low Memory Killer
  – scan lis...
Linux Kernel to Android
• RAM Console & Log Device
  – store kernel log messages to a RAM buffer
• Power Management
  – ad...
Libraries
• System C Libraries – tuned for embedded Linux
• Media Libraries – support popular audio/video formats
• Surfac...
Android Runtime
• Runtime includes core
  libraries & Dalvik VM
• DVM specifically
  designed to run in limited
  environm...
Dalvik Virtual Machine
• Bytecode interpreter for systems with
  –   Slow CPU (250-500 MHz)
  –   Little RAM (64 MB)
  –  ...
Dalvik Virtual Machine
  • Consider the loop inside this simple method
                       public static long sumArray(...
Android Runtime
• Core libraries are basically Java core libraries
   –   java.io.*
   –   java.util.*
   –   Java.net.*
 ...
Application Framework
• Simplified architecture for reuse of
  components
• Applications are based on set of services:
  –...
Applications
• Android ships a set of core applications:
  –   Email client
  –   SMS/MMS program
  –   Calendar
  –   Map...
Application Building Blocks
• Divide the application into following components:

  Activity            UI component corres...
Application Building Blocks
• Define & list all components to be used in
  AndroidManifest.xml file
  – Required file for ...
Lifecycle of Applications
• Each application runs in its own Linux process. App is
  launched inside a new instance of the...
Application Life-Cycle




• Android is responsible to manage which application
  should run and which should be killed
• ...
Platform Initialization
  Kernel                                              •   Boot loader loads kernel &
             ...
Developing Applications
• Best support for developing programs is to do it through
  Eclipse IDE
   – Eclipse IDE version ...
Programming API’s

 Android.graphic    Provides low level graphics tools such as
                    canvases, color filte...
Programming API’s
                    Handle screen layout and interaction with the
 Android.view
                    user...
Android SDK
•   SDK, an open-source package is available for
      – Windows
      – Linux
      – Mac OS
•   Java is inde...
New Project in SDK




                     50
        50
Example – Hello Android
package com.android.hello;
import android.app.Activity;
import android.os.Bundle;
import android.w...
Android SDK
Android Debug Bridge (ADB)
• Android Debug Bridge (adb) is a versatile tool
  that lets you manage the state of a device o...
Native Applications for Android
• The ADB debugger gives a root shell under the Android
  Emulator which allows native ARM...
Android Emulator
•   SDK includes a mobile device emulator - a virtual mobile device that runs
    on your computer. Emula...
Emulator on PC
Developer Challenge
• Android’s Vision – cool applications that
  surprise and delight mobile users
  – Total award amount...
Android Apps Market
• Google’s application store, where users can
  search, download, buy and install software
• Android M...
Sample Applications - List
•   Cab4me               •   BreadCrumbz
•   Compare Everywhere   •   CookingCapsules
•   Ecori...
Sample Applications -
    Snapshots
Sample Applications -
    Snapshots
Sample Applications -
    Snapshots
Sample Applications -
    Snapshots
Sample Applications -
        Snapshots




Cab4me            Compare Everywhere
First Android Handset

   T-Mobile G1(Dream)
Features
• 500 MHz, 192 MB RAM, HVGA
• Touch Screen
• QWERTY keyboard
• One-Touch Google Search
• Real Web Browsing
• Easy...
T-Mobile G1 Sale
• Launched on 22nd
  Oct, 2008
• T-Mobile has totally
  overshot their sales
  expectations for the
  G1
...
Android on Notebooks
– ASUS Notebooks:   – Nokia Internet Tablet:
   • EEEPC 701          • N810
   • EEEPC 1000H
Market Share
                                                                          Window Mobile
                     ...
References
•   Android Open Source Project
•   http://www.youtube.com/watch?v=7Y4thikv-OM
•   Introduction to Androidology...
Android – Is It a Revolution?
Android : Evolution or Revolution
Upcoming SlideShare
Loading in...5
×

Android : Evolution or Revolution

32,726

Published on

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

Published in: Technology
2 Comments
7 Likes
Statistics
Notes
No Downloads
Views
Total Views
32,726
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
0
Comments
2
Likes
7
Embeds 0
No embeds

No notes for slide

Transcript of "Android : Evolution or Revolution"

  1. 1. Evolution or Revolution? - Sanjiv Malik
  2. 2. Market Trends
  3. 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. 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. 5. iPhone Stands Out!!
  6. 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. 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. 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. 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. 10. Philosophy “Never settle for the best” Has proven this through: • innovation of technology • increasing the value of it’s products
  11. 11. Google Mission Web Video Books News Enterprise Content all Organize all the world's information and make it universally accessible and useful
  12. 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. 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. 14. Open Handset Alliance The Alliance competes against Apple, Microsoft, Nokia, Palm, Symbian
  15. 15. 47 Major Companies including Handset manufacturer, Semiconductor, Telecom Service Providers, Mobile platform/app designers etc
  16. 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. 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. 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. 19. iPhone Vs Android
  20. 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. 21. Android Vs iPhone
  22. 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. 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. 24. Android Internals
  25. 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. 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. 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. 28. System Architecture
  29. 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. 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. 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. 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. 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. 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. 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. 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. 37. Android Runtime • Core libraries are basically Java core libraries – java.io.* – java.util.* – Java.net.* – Java.math.* • Relies on the Linux kernel for underlying functionality
  38. 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. 39. Applications • Android ships a set of core applications: – Email client – SMS/MMS program – Calendar – Maps – Browser – Contacts
  40. 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. 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. 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. 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. 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. 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. 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. 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. 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. 49. New Project in SDK 50 50
  50. 50. Example – Hello Android package com.android.hello; import android.app.Activity; 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. 51. Android SDK
  52. 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. 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. 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. 55. Emulator on PC
  56. 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. 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. 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. 59. Sample Applications - Snapshots
  60. 60. Sample Applications - Snapshots
  61. 61. Sample Applications - Snapshots
  62. 62. Sample Applications - Snapshots
  63. 63. Sample Applications - Snapshots Cab4me Compare Everywhere
  64. 64. First Android Handset T-Mobile G1(Dream)
  65. 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. 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. 67. Android on Notebooks – ASUS Notebooks: – Nokia Internet Tablet: • EEEPC 701 • N810 • EEEPC 1000H
  68. 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. 69. References • Android Open Source Project • http://www.youtube.com/watch?v=7Y4thikv-OM • Introduction to Androidology • http://android.com • http://code.google.com/android/ • http://www.youtube.com/watch?v=QBGfUs9mQYY • http://www.youtube.com/watch?v=fL6gSd4ugSI • http://www.youtube.com/watch?v=MPukbH6D-lY • Dalvik Virtual Machine • http://www.youtube.com/watch?v=RF62c4HgbU4 • HTC G1 Android Phone • http://www.youtube.com/watch?v=0ZHgZr3SXCA
  70. 70. Android – Is It a Revolution?

×