android histroy and usage
TRANSCRIPT
![Page 1: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/1.jpg)
Android Overview
Sarwan Singh
www.SarwanSingh.com
![Page 2: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/2.jpg)
www.android.comSession 2
![Page 3: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/3.jpg)
Brief History 1996
The WWW already had websites with color and images
But, the best phones displayed a couple of lines of monochrome text! Wireless Application Protocol (WAP) – stripped down
HTTP for bandwidth reduction Wireless Markup Language (WML) – stripped down
HTML for content
![Page 4: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/4.jpg)
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 5: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/5.jpg)
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 6: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/6.jpg)
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
GingerbreadAndroid 2.3
![Page 7: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/7.jpg)
Brief History cont. 2011
SDK 3.x (Honeycomb) Optimized for tablet support
SDK 4.0 (Ice Cream Sandwich) Virtual UI buttons
2012 SDK 4.1.1 (Jelly Bean)
Triple buffered graphics pipeline
HoneycombAndroid 3.0-3.2
Ice cream SandwichAndroid 4.0+
Jelly BeanAndroid 4.1.1
Kit KatAndroid 4.4
![Page 8: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/8.jpg)
Brief History cont.
![Page 9: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/9.jpg)
Distribution of Devices
http://developer.android.com/resources/dashboard/platform-versions.html
![Page 10: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/10.jpg)
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 11: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/11.jpg)
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 12: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/12.jpg)
Android Architecture
More details at: http://developer.android.com/guide/basics/what-is-android.html
![Page 13: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/13.jpg)
13
Android Architecture - DVM Dalvik Virtual Machine
Providing environment on which every Android application runs Each Android application runs in its own process, with
its own instance of the Dalvik VM. Dalvik has been written such that a device can run
multiple VMs efficiently.
Register-based virtual machine
![Page 14: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/14.jpg)
14
Android Architecture - DVM Dalvik Virtual Machine (Cont)
Executing the Dalvik Executable (.dex) format .dex format is optimized for minimal memory footprint. Compilation
Relying on the Linux Kernel for: Threading Low-level memory management
![Page 15: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/15.jpg)
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
![Page 16: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/16.jpg)
Java for Android Android applications are developed using the
Java language. Java is a very popular programming language
developed by Sun Microsystems (now owned by Oracle).
Developed long after C and C++, Java incorporates many of the powerful features of those powerful languages while addressing some of their drawbacks.
![Page 17: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/17.jpg)
Java for Android (Cont.) Important Features of Java
It’s easy to learn and understand It’s designed to be platform-
independent and secure, using virtual machines
It’s object-oriented Its secure (no pointers), It’s robust, multi-threaded,
distributed...
![Page 18: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/18.jpg)
Java for Android (Cont.) Android relies heavily on these Java fundamentals. The Android SDK includes many standard Java
libraries (data structure libraries, math libraries, graphics libraries, networking libraries and everything else you could want) as well as special Android libraries that will help you develop awesome Android applications.
![Page 19: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/19.jpg)
Setting up the Android Development Environment
Install Oracle JDK SE Setting up the ADT Bundle
Download the ADT from Google’s Android Developer Resources
Unpack the ZIP file (named adt-bundle-<os_platform>.zip) and save it to an appropriate location, such as a "Development" directory in your home directory.
Open the adt-bundle-<os_platform>/eclipse/ directory and launcheclipse
That's it! The IDE is already loaded with the Android Developer Tools plugin and the SDK is ready to go.
![Page 20: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/20.jpg)
Development process for an Android app
http://developer.android.com/guide/developing/index.html
![Page 21: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/21.jpg)
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 23: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/23.jpg)
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 24: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/24.jpg)
Android Architecture
![Page 25: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/25.jpg)
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 26: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/26.jpg)
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
![Page 27: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/27.jpg)
Publishing to Google Play
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 28: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/28.jpg)
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 29: Android Histroy and usage](https://reader036.vdocuments.net/reader036/viewer/2022062503/5878ceb81a28ab917a8b4793/html5/thumbnails/29.jpg)
Other design principles
http://developer.android.com/design/index.html