Android An Open Handset Alliance Project• http://code.google.com/android • Write apps to run on mobile phones• Will be released as open source• Can download the SDK today!
Android Features• Application Framework• Dalvik virtual machine• Integrated (webkit) browser• 2D and 3D graphics APIs with HW• SQLite• Video and audio codecs• Bluetooth, EDGE, 3G, and WiFi• Camera, GPS, compass, and accelerometer
Challenges• CPU typically runs 500-600 Mhz• RAM available to an App may only be a few megabytes• Disk (flash) access is very slow• Lifecycle - apps must pause/quit often, and restore to give the illusion that they are always running• UI design o typical screen may be HVGA (320x480) o may be in portrait or landscape o very high DPI - small text may not be readable o touch resolution is very low (~25 pixel)• Network access may be slow and (very) intermittent
Opportunities• 100s of millions of mobile phone users• Very high growth, esp. in Asia• "Wild wild west" of application development o think 1985 on the desktop (if you were born by then) o no dominant 3rd party developers.... yet o what will the killer app categories be? o what does it mean to have any app + the internet in your pocket?• You can develop for it today!
PossibilitiesAugmented Campus Reality Web scraping • camera + maps + compass • news filters = heads up info • sport scores • dook news eliminatorsGames• multi-player (bluetooth, Distributed computing? wifi, cell) • 10,000 phones all donating• location-based (scavenger their idle time hunt) • tiny terminal (phone) + fast cpu/network (server)Custom overlays for maps • weather, traffic, friends Shared whiteboard
Project Suggestions• Web Scrapers [movies, weather, sports, <topic> news] o Find multiple web sources o Scrape them for the relevant information o Present in a custom UI on the phone• Asynchronous games [chess, poker, risk] o Develop an API for all games to communicate through 1.Establish connections by phone number – Send and receive game data – Ability to reopen connections • Planner/To-do list with location data o Decide route to next class, meeting, etc o Find a order/route for non time-critical tasks o Connect to campus directory to find teachers/classmates