290 likes | 553 Views
Introduction to the Android Ecosystem. Philip Hays Colin Bellmore. Welcome. Philip Hays (pmh6059@rit.edu) BS/MS Computer Engineer Bar code scanning at Honeywell Technologies Senior Design Project (Home Health Station) Thesis (ASL Transcription to Text) Colin Bellmore
E N D
Introduction to the Android Ecosystem Philip Hays Colin Bellmore
Welcome • Philip Hays (pmh6059@rit.edu) • BS/MS Computer Engineer • Bar code scanning at Honeywell Technologies • Senior Design Project (Home Health Station) • Thesis (ASL Transcription to Text) • Colin Bellmore • BS/MS Computer Engineer • Senior Design Project (Home Health Station)
Welcome • Ask freely at anytime. • I am willing to focus on one topic more if needed. • URL to Slides • Sign up on sheet if you desire materials after.
Syllabus • Brief history • Android Concepts • MIT App Inventor: • Working Demo • Step by Step • Free play • Advanced Development (Eclipse) • Simple • Multilanguage • Education applications
Begin • Google purchased Android Inc. in 2005 • Unveiled Open Handset Alliance in 2007 • Source code is open sourced under Apache license • Apps written in customized version of Java using the Dalvik virtual machine. • Low barrier entry for development and entrance to market
Progress • Became worlds leading smartphone platform end of 2010 • 2012 so far: 400 million devices activated, 1 million per day, 59% of world market share • 190 countries • Thousands of features http://developer.android.com/about/index.htmlhttp://www.pcworld.com/article/256155/android_apple_own_80_of_global_smartphone_market_microsofts_share_22.html
Future • Latest Release: Jelly Bean • Triple buffering • Google Now • Global Languages • Expandable Notifications • App Encryption
MIT App Inventor • Use simple concepts to create apps • Connect puzzle pieces • Online tool • Free
MIT App Inventor • ‘Blocks Editor’ creates functionality
MIT App Inventor • Main Site • For Teachers • Course In A Box • Code Snippets • San Francisco App Course Story
Basics: Activity Cycle • Screen which users interact with • Application made of multiple activities
Basics: View • Basic building blocks for the user interface • Textboxes, image views, buttons, widgets, ect. • Created in java or xml • Holds: • Properties: type, color, text, image. • Focus: respond to user input • Listener: respond to events, update, movement • Visibility
Basics: Processes/Threads • Generally: Activity = One Process • All functions run in this process. • Main process = UI Thread. • Create extra worker threads to do other work.
Basics: Services • Perform long running operations in the background w/o user input. • File transfer • Perform work while user moves to a different application • Bind to other services • Have application bind to music playback service already running • Seen sometimes in notification bar w/ icon • It is NOT another thread, keeps application process running in background w/ higher priority.
Basics: Intent • Send information to other applications other than own • Start background service • Notify another application of a change • Launch another application • Send contact to dialer • Open an image viewer • Send to twitter/facebook • Interoperability built into android
Basics: Sensors/Connectivity • Accelerometer • Gyroscope • Light • Magnetic • Orientation • Pressure • Wi-Fi • Cellular Data • 3G -> 4G • Blue-tooth • Near Field Communications • Google Wallet
Basics: Permissions • Define what the application has access to. • Security: Helps prevent malicious applications. • Cannot access any personal data w/o. • Internet • Contacts • Play music • GPS location • WiFi • Battery stats • Bluetooth • Camera • Manage Accounts • Read Calendar • Read/Send SMS • Record Audio • Vibrate • Set time • Read Memory
Eclipse Development • Developer Site • Install Environment • Built in plug ins • Standard way of development • All Java + native languages (C, C++)
Simple Development • Notepad Example: • Should be preloaded on phone. • Shows simple text layouts • Using Intents to start other activities • Extra options button • Adding functionality to built in
Advanced Development • My Thesis: ASL Fingerspelling • I have access to the source code. • Work in Progress • Includes: • Real-Time Video • Native Language: C++ through Java Native Interface (JNI) • OpenCV: Computer Vision libraries • Network Communication • Multi-Threading
Advanced Development • Process: • Video frame selected • Skin detected by Color Segmentation • Hand singled out • Processing to edge image • Data compression (PCA, LPP)* • Classification (SVM)* • Return result to user • Write text or play music! * You do not need to understand these
Advanced Development • Look at some of the source
Education Applications • Readers, Quiz Apps, Note takers • Evernote • Lecture Notes • Tools for Teachers • Anatomy Test • LHC • Star Chart • Babbel language learner