35
Android Overview Dr. Josh Dehlinger Dr. Siddharth Kaza

From Deepa's client

Embed Size (px)

DESCRIPTION

From Deepa's client

Citation preview

Page 1: From Deepa's client

Android Overview

Dr. Josh Dehlinger

Dr. Siddharth Kaza

Page 2: From Deepa's client

Why Mobile App Development?

The fact that we can! Only a few years ago you had to be in the Motorola inner circle to do it!

Mobile platform is the platform of the future Double-digit growth in world-wide smartphone ownership3

Job market is hot Market for mobile software surges from $4.1 billion in 2009 to

$17.5 billion by 20121

2010 Dice.com survey: 72% of recruiters looking for iPhone app developers, 60% for Android1

Dice.com: mobile app developers made $85,000 in 2010 and salaries expected to rise2

Students (and faculty!) are naturally interested!1 http://www.businessweek.com/technology/content/oct2010/tc20101020_639668.htm

2 http://it-jobs.fins.com/Articles/SB129606993144879991/Mobile-App-Developers-Wanted-at-Ad-Agencies

3http://www.gartner.com/it/page.jsp?id=1466313

Page 3: From Deepa's client

Why Android?

A lot of students have them 2010 survey by University of CO1: 22% of college

students have Android phone (26% Blackberry, 40% iPhone)

Gartner survey2: Android used on 22.7% of smartphones sold world-wide in 2010 (37.6% Symbian, 15.7% iOS)

Students already know Java and Eclipse Low learning curve CS0 students can use App Inventor for Android

1http://testkitchen.colorado.edu/projects/reports/smartphone/smartphone-appendix1/

2http://www.gartner.com/it/page.jsp?id=1543014

Page 4: From Deepa's client

Why Android? Transferring app to phone is trivial

Can distribute by putting it on the web Android Market for wider distribution

• It’s not 1984

Page 5: From Deepa's client

Types of Android Devices

Page 6: From Deepa's client

Various Android Phones

http://cloud.addictivetips.com/wp-content/uploads/2010/09/android-phone-timeline.jpg

Page 7: From Deepa's client

Galaxy Tablet

http://www.samsung.com/global/microsite/galaxytab/10.1/index.html

Page 8: From Deepa's client

Android-Powered Microwave

http://www.pocket-lint.com/news/30712/android-powered-microwave-cooking-google

By Touch Revolution – at CES 2010

Page 9: From Deepa's client

http://www.google.com/nexus/

Google/Samsung Galaxy Nexus

Page 10: From Deepa's client

Brief History

1996 The WWW already had websites with color and

images But, the best phones displayed a couple of lines

of monochrome text! Enter:

Wireless Application Protocol (WAP) – stripped down HTTP for bandwidth reduction

Wireless Markup Language (WML) – stripped down HTML for content

Page 11: From Deepa's client

Brief History

Many issues (WAP = “Wait And Pay”) Few developers to produce content (it wasn’t fun!) Really hard to type in URLs using the small

keyboards Data fees frightfully expensive No billing mechanism – content difficult to monetize

Other platforms emerged Palm OS, Blackberry OS, J2ME, Symbian (Nokia),

BREW, OS X iPhone, Windows Mobile

Page 12: From Deepa's client

Brief History - Android

2005 Google acquires startup Android Inc. to start Android platform Work on Dalvik VM begins

2007 Open Handset Alliance announced Early look at SDK

2008 Google sponsors 1st  Android Developer Challenge T-Mobile G1 announced SDK 1.0 released Android released open source (Apache License) Android Dev Phone 1 released

Page 13: From Deepa's client

Brief History cont.

2009 SDK 1.5 (Cupcake)

New soft keyboard with “autocomplete” feature SDK 1.6 (Donut)

Support Wide VGA SDK 2.0/2.0.1/2.1 (Eclair)

Revamped UI, browser 2010

Nexus One released to the public SDK 2.2 (Froyo)

Flash support, tethering SDK 2.3 (Gingerbread)

UI update, system-wide copy-paste

Page 14: From Deepa's client

Honeycom

b

Android 3.0-3.2

Brief History cont. 2011

SDK 3.0/3.1/3.2 (Honeycomb) for tablets only New UI for tablets, support multi-core processors

SDK 4.0/4.0.1/4.0.2/4.0.3 (Ice Cream Sandwich) Changes to the UI, Voice input, NFC

Ice cream SandwichAndroid 4.0+

Page 15: From Deepa's client

The Android Developer Website

http://developer.android.com/index.html

This should be your homepage for the next semester!

Page 16: From Deepa's client

Distribution of Devices

Data collected during a 14-day period ending on January 3, 2012

http://developer.android.com/resources/dashboard/platform-versions.html

Page 17: From Deepa's client

What is Google Android?

A software stack for mobile devices that includes An operating system Middleware Key Applications

Uses Linux to provide core system services Security Memory management Process management Power management Hardware drivers

Page 18: From Deepa's client

Android Architecture

More details at: http://developer.android.com/guide/basics/what-is-android.html

Page 19: From Deepa's client

Mobile Devices: Advantages (as compared to fixed devices)

Always with the user Typically have Internet access Typically GPS enabled Typically have accelerometer & compass Most have cameras & microphones Many apps are free or low-cost

Page 20: From Deepa's client

Mobile Devices: Disadvantages

Limited screen size Limited battery life Limited processor speed Limited and sometimes slow network access Limited or awkward input: soft keyboard, phone

keypad, touch screen, or stylus Limited web browser functionality Range of platforms & configurations across

devices

Page 21: From Deepa's client

Mobile Applications

What are they? Any application that runs on a mobile device

Types Web apps: run in a web browser

HTML, JavaScript, Flash, server-side components, etc.

Native: compiled binaries for the device Often make use of web services

Page 22: From Deepa's client

Development process for an Android app

http://developer.android.com/guide/developing/index.html

Page 23: From Deepa's client

Android Apps

Built using Java and new SDK libraries No support for some Java libraries like Swing &

AWT Oracle currently suing Google over use

Java code compiled into Dalvik byte code (.dex) Optimized for mobile devices (better memory

management, battery utilization, etc.) Dalvik VM runs .dex files

Page 24: From Deepa's client

Building and running

ADB is a client server program that connects clients on developer machine to devices/emulators to facilitate development.

An IDE like Eclipse handles this entire process for you.

http://developer.android.com/guide/developing/building/index.html#detailed-build

Compiled resources (xml files)

Android Debug Bridge

Page 25: From Deepa's client

Building and running (more details)

Expand figure

Android Interface Definition Language (AIDL) – Definitions to exchange data between applications (think SOAP)

http://developer.android.com/guide/developing/building/index.html#detailed-build

Android Asset Packing Tool

Allows processes across apps to communicate.

Page 26: From Deepa's client

Applications Are Boxed

By default, each app is run in its own Linux process Process started when app’s code needs to be executed Threads can be started to handle time-consuming

operations Each process has its own Dalvik VM By default, each app is assigned unique Linux ID

Permissions are set so app’s files are only visible to that app

Page 27: From Deepa's client

Android Architecture

Page 28: From Deepa's client

Publishing and Monetizing

Paid apps in Android Market, various other markets

Free, ad-supported apps in Android Market Ad networks (Google AdMob, Quattro Wireless) Sell your own ads

Services to other developers Ex. Skyhook Wireless (

http://www.skyhookwireless.com/) Contests (Android Developer Challenge) Selling products from within your app

Page 29: From Deepa's client

Android Market

http://www.android.com/market/

Has various categories, allows ratingsHave both free/paid appsFeatured apps on web and on phoneThe Android Market (and iTunes/App Store) is great for developers Level playing field, allowing third-party apps Revenue sharing

Page 30: From Deepa's client

Publishing to Android Market

Requires Google Developer Account $25 fee

Link to a Merchant Account Google Checkout Link to your checking account Google takes 30% of app purchase price

Page 31: From Deepa's client
Page 32: From Deepa's client

Android Design Philosophy

Applications should be: Fast

Resource constraints: <200MB RAM, slow processor Responsive

Apps must respond to user actions within 5 seconds Secure

Apps declare permissions in manifest Seamless

Usability is key, persist data, suspend services Android kills processes in background as needed

Page 33: From Deepa's client

Leveraging the web

To keep your apps fast and responsive, consider how you can leverage the web What ____________ can be ________ on a

server or in the cloud? Tasks/performed Data/persisted Data/retrieved

Beware, data transfer is also expensive and can be slow

Page 34: From Deepa's client

Other design principles

http://developer.android.com/design/index.html

Great reference!

Page 35: From Deepa's client

Apple vs. Google

Open Handset Alliance 30+ technology companies Commitment to openness, shared vision, and

concrete plans Compare with Mac/PC battles

Similar (many PC manufacturers, one Apple) Different (Microsoft sells Windows, Google gives

away Android)