Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Android overview part2
1. 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
3. 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
4. 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
5. 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
6. 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
7. Development
process for an
Android app
http://developer.android.com/guide/developing/index.html
8. 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
10. 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
12. 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
13. 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
14. 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
15.
16.
17. 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
Notas do Editor
The linux kernel 2.6 is the hardware abstraction layer (HAL) between the hardware and the android software stack.
Maybe more profitable with ads than actually selling the app