android location services from social networks to games
TRANSCRIPT
PowerPoint Presentation
Android and Location
June 18, 2009 Open Source Bridge
Don Park
Don Park
@donpdonp
Don Park
Don Park
Don Park
Overview
The Android Market Development/Location APIApps and GamesOpportunities
The Android Market
Past 6 months ofSmartphone Sales
T-Mobile sold 1 million G1 phones from Oct 2008to May 2009[1]. This is the entire installed base for the G1.
AT&T sold 4 million iPhones inthe sametime frame. 17 million installed base.
[1] http://www.deutschetelekom.com/dtag/cms/content/dt/en/654792
AdMob Mobile Browser Traffic
"We found that Android traffic in the US grew an average of 47% per month since it launched five months ago while iPhone traffic in the US grew an average of 88% per month in the five months following the launch of their App Store."
Android Market
Total apps in the market: 3953
http://androidstats.com/home/categoriesApplications
Communications (214)
Entertainment (765)
Finance (115)
Lifestyle (313)
Multimedia (181)
News & Weather (101)
Productivity (216)
Reference (185)
Shopping (63)
Social (105)
Tools (785) Travel (138)
Demo (61)
Software Libraries (16)
total: 3258
Games
Arcade & Action (180)
Brain & Puzzle (307)
Cards & Casino (63)
Casual (145)
total: 695
What Sells? Top Free vs Paid
Top 10 Apps (excluding games)
http://androidstats.com/1. The Weather Channel
2. MySpace Mobile
3. Backgrounds
4. ShopSavvy
5. US Yellow Pages Search 6. DailyHoroscope
7. NBA Game Time
8. T-Mobile My Account
9. Free Dictionary Org
10. fBook - Facebook for Android 197. Power Manager Full
$0.99
238. Open Home - Full $3.99
332. MyBackup Pro $2.99
361. aHome $4.99
422. dxTop : Home Alternative $3.99470. Hello IM! $9.99
486. Snap Photo Pro $0.99
631. BetterCut $2.99
633. Lock 2.0 - Donate $1.49
654. Caller ID by WhitePages $6.99
Top Games Free vs Paid
Top 10 Games
http://androidstats.com/1. PAC-MAN by Namco
2. Solitaire
3. Labyrinth Lite
4. Sudoku
5. BreakTheBlocks Lite
6. Snake
7. Slide Puzzle
8. Tic Tac Toe
9. Smart Tac Toe
10. PapiJump109. Doom for Android $2.99
129. Baseball Superstars 2009 $5.95
203. Jewellust $2.95
219. Retro Defense $4.99
220. Aevum Obscurum $4.99
224. Tangram Pro $0.99
234. WordWrench Full $0.99
237. Battle for Mars $4.99
272. Air Hockey 0.70
289. Spira Defence Pro 1.59
Top Paid Apps March 2009
SnapPhoto pro (about #140) $0.99, 1,000-5,000 download count category $1000-$5000Hello IM! AOL/AIM (about #200) $9.99 1,000-5,000 download count category $10,000-$50,000dxTop Home Screen replacement (about #300) $3.99. 1,000-5,000 download category $4000-$20,000Power Manager (about #400) $0.99. 500-1,000 download category $500-$1000
What is my IP
Sales
What is my IP FreeLaunched on Jan 28 2009
100-200 dls/day
Show my IP $0.99Launched on Feb 20 2009
0.5 sales/day
Android Operating System
Activities
Intents
Services
ContentProvider
Application Composition
ListSelectionCameraOperationFlickruploadAn Application is made up of activities
public class Radar extends MapActivity implements ServiceConnection, Constants {
public void onCreate(Bundle savedInstanceState) { setTitle(getString(R.string.app_name) + " v" + ICECONDOR_VERSION); Location fix = pigeon.getLastFix(); Log.i(appTag, "pigeon says last fix is " + fix); mapController.animateTo(new GeoPoint((int) (fix.getLatitude() * 1000000), (int) (fix.getLongitude() * 1000000))); }}
Activity
Lifecycle
Service/Activity
Background
Less likely to be paused
Foreground
public class Pigeon extends Service implements Constants, LocationListener, SharedPreferences.OnSharedPreferenceChangeListener {
LocationManager locationManager; public void onCreate() {
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); last_local_fix = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); }
}
Intents
Apps can be mashups of pieces of existing applications.
Not used much yet.
Camera Activity
Intent i = new Intent();i.setAction(VIEW_ACTION);i.setData(new ContentURI(http://icecondor.com));startActivity(i);
. . .
Content Provider
Described by a RESTful URL
content://com.example.codelab.transporationprovider
query() insert() update() delete()
Location API
Location Manager
Abstract/hands off model
Last known location
Request updates at a given frequency
GPS basics unavailable is there a lock/signal? (until cupcake)
Timeline
8:00:00 set GPS reporting frequency to 2 minutes8:01:30 GPS powered on by android8:02:15 GPS FIX accuracy 1200m8:02:18 GPS FIX accuracy 700m8:02:21 GPS FIX accuracy 300m8:02:21 GPS FIX accuracy 100m8:02:22 GPS FIX accuracy 80m8:02:23 GPS FIX accuracy 95m8:02:40 GPS FIX accuracy 82m
Location manager update frequency set to:
Every 3 minutes = 10 hours of run timeEvery 10 minutes = 12 hours of run timeTurned off = 24 hours of run time
GPS drains the battery
Cupcake Location Changes
Android 1.5
Location Manager
GpsStatus.getSattelites()
GpsStatus.Listener.onGpsStatusChange()
Apps and Games
IceCondor
IceCondor
Continuous location tracking
http://icecondor.comWrite sideGPS location
OAUTH push to server
long-term server-side storage
Read sideGeoRSS
shizzow, upcoming.org
feed management
Radar
IceCondor
Sales
http://icecondor.comIceCondor LiteLaunched on Feb 22 2009
First download Feb 23
IceCondor fullLaunched on Feb 20 2009
First sale Feb 22
ZombieRun
Augmented Reality
Parallel Kingdom
Opportunities
There are now over 1,900 location apps at the iPhone store, says Skyhook Wireless. Its about a 25 / 75 split between free and paid apps.
Build an open wifi/lat-long database
Wigle.net
Android 1.5 wifi scan-only mode
OpenStreetMap Activity
Google Latitude
ConAppears not to use GPS (battery)
Unknown update frequency
No location history
ProSupport for every smartphone OS
Google-scale implementation
Latitude API
http://www.google.com/latitude/apps/badge/api?user=5189588060747846772&type=json
{ "type": "FeatureCollection","features": [{ "type": "Feature","geometry": {"type": "Point", "coordinates": [-118.44967, 33.988717]},"properties": {"id": "5189588060747846772","accuracyInMeters": 1888,"timeStamp": 1244864014,"reverseGeocode": "Los Angeles, CA, USA","photoUrl": "http://www.google.com/latitude/apps/badge/api?type=photo&photo=FnLJ1yEBAAA.uZB0qF11JdzXqsnWsulMJQ.K28fiRafHVJpP8N9U2nhDQ","photoWidth": 96,"photoHeight": 96,"placardUrl": "http://www.google.com/latitude/apps/badge/api?type=photo_placard&photo=FnLJ1yEBAAA.uZB0qF11JdzXqsnWsulMJQ.K28fiRafHVJpP8N9U2nhDQ&moving=false&stale=false&lod=1&format=png","placardWidth": 56,"placardHeight": 59}}]}
The Google Maps Data API
The data model is based on maps and featuresAPI and PHP LibraryGoogle-scale storage and retrieval
http://googlegeodevelopers.blogspot.com/2009/05/introducing-google-maps-data-api-in.html
Conclusion
Android is well suited for continuous location apps.
The Android Market has 4,000 apps for 1,000,000 phones.
Google has done a lot of the work in acquiring and storing location.
Location apps are fun!