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
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.
13. 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
14. 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
16. 47 Major Companies including Handset manufacturer, Semiconductor,
Telecom Service Providers, Mobile platform/app designers etc
17. 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
18. 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
19. 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
21. 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
23. 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
24. 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
26. 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
27. 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
28. 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
30. 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
31. 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
32. 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
33. 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
34. 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)
35. 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
36. 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
38. 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
39. 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
40. Applications
• Android ships a set of core applications:
– Email client
– SMS/MMS program
– Calendar
– Maps
– Browser
– Contacts
41. 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
42. 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
43. 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
44. 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
45. 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
46. 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
47. 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
48. 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
49. 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.
51. 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);
}
}
53. 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.
54. 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.
55. 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.
57. 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
58. 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)
66. 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
67. 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
68. Android on Notebooks
– ASUS Notebooks: – Nokia Internet Tablet:
• EEEPC 701 • N810
• EEEPC 1000H
69. 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