Android Ecosystem - CS4HS @ RIT

crookpatedhatMobile - Wireless

Dec 10, 2013 (3 years and 7 months ago)

74 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


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

1.
Brief history

2.
Android Concepts

3.
MIT App Inventor:

1.
Working Demo

2.
Step by Step

3.
Free play

4.
Advanced Development (Eclipse)

1.
Simple

2.
Multilanguage

5.
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
v
ersion 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.html

http
://www.pcworld.com/article/256155/android_apple
_own_80_of_global_smartphone_market_microsofts_shar
e_22.html

Present

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

Contacts
List

Call

Text

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.

Main
Process/Thread

Worker Thread:

File transfer

Play music

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

Demo code

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

Anything you want to know?