Android Overview
Dr. Siddharth Kaza Dr. Josh Dehlinger
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 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
Job market is hot
1 2
Students (and faculty!) are naturally interested!
http://www.businessweek.com/technology/content/oct2010/tc20101020_639668.htm http://it-jobs.fins.com/Articles/SB129606993144879991/Mobile-App-Developers-Wanted-at-Ad-Agencies 3http://www.gartner.com/it/page.jsp?id=1466313
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) Low learning curve CS0 students can use App Inventor for Android
Students already know Java and Eclipse
1http://testkitchen.colorado.edu/projects/reports/smartphone/smartphone-appendix1/ 2http://www.gartner.com/it/page.jsp?id=1543014
Why Android?
Transferring app to phone is trivial
Its not 1984
Can distribute by putting it on the web Android Market (now Google Play) for wider distribution
Types of Android Devices
Various Android Phones
Galaxy Note 3
Galaxy Tablet
Android-Powered Microwave
By Touch Revolution at CES 2010
http://www.pocket-lint.com/news/30712/android-powered-microwavecooking-google
Android-Powered Watch
Android-Powered Camera
Android-Powered TV
Android-Powered Car Radio
Android-Powered Washing Machine
Android-Powered PC
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
Brief History
Many issues (WAP = Wait And Pay)
Few developers to produce content (it wasnt 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
Brief History - Android
2005
Google acquires startup Android Inc. to start Android platform Work on Dalvik VM begins Open Handset Alliance announced Early look at SDK
2007
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
Brief History cont.
2009
SDK 1.5 (Cupcake)
New soft keyboard with autocomplete feature Support Wide VGA Revamped UI, browser
SDK 1.6 (Donut) SDK 2.0/2.0.1/2.1 (Eclair)
2010
Nexus One released to the public SDK 2.2 (Froyo)
Flash support, tethering UI update, system-wide copy-paste
SDK 2.3 (Gingerbread)
Brief History cont.
2011
SDK 3.x (Honeycomb)
Optimized for tablet support Virtual UI buttons
SDK 4.0 (Ice Cream Sandwich)
2012
SDK 4.1.1 (Jelly Bean)
Triple buffered graphics pipeline
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 Sandwic
Android 4.0+
Jelly Bean
Android 4.1.1
Distribution of Devices
Data collected during a 14-day period ending on January 3, 2012
http://developer.android.com/resources/dashboard/platform-versions.html
Distribution of Devices
http://developer.android.com/resources/dashboard/platform-versions.html
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
Android Architecture
More details at: http://developer.android.com/guide/basics/what-is-android.html
Mobile Devices: Advantages
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
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 link
Mobile Applications
What are they?
Any application that runs on a mobile device Web apps: run in a web browser
Types
HTML, JavaScript, Flash, server-side components, etc. Often make use of web services
Native: compiled binaries for the device
Android Apps
Built using Java and new SDK libraries
No support for some Java libraries like Swing & AWT
Java code compiled into Dalvik byte code (.dex)
Optimized for mobile devices (better memory management, battery utilization, etc.)
Dalvik VM runs .dex files
Development process for an Android app
http://developer.android.com/guide/developing/index.html
Building and running
Compiled resources (xml files)
Android Debug Bridge
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
Building and Running
Applications Are Boxed
By default, each app is run in its own Linux process
Process started when apps 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 apps files are only visible to that app
Android Architecture
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 Ex. Skyhook Wireless (http://www.skyhookwireless.com/)
Services to other developers
Contests (Android Developer Challenge) Selling products from within your app
Android Market (Google Play)
https://play.google.com/store Has various categories, allows ratings Have both free/paid apps Featured apps on web and on phone The Android Market (and iTunes/App Store) is great for developers
Level playing field, allowing third-party apps Revenue sharing
Publishing to Google Play
Requires Google Developer Account
$25 fee Google Checkout Link to your checking account Google takes 30% of app purchase price
Link to a Merchant Account
Android Design Philosophy
Applications should be:
Fast
Resource constraints: <200MB RAM, slow processor Apps must respond to user actions within 5 seconds Apps declare permissions in manifest Usability is key, persist data, suspend services Android kills processes in background as needed
Responsive
Secure
Seamless
Other design principles
http://developer.android.com/design/index.html
Great reference!