android overview part2
TRANSCRIPT
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 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
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
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
Building and Running
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
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
Services to other developers Ex. Skyhook Wireless (http://www.skyhookwireless.com/)
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 Link to a Merchant Account
Google Checkout Link to your checking account Google takes 30% of app purchase price
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