smartphone-presentation

advertisement
SMARTPHONE APPLICATION
DEVELOPMENT
Sam Palmer
WHY IS THIS INTERESTING?




Smartphones are becoming increasingly common
As hardware improves smartphones are
becoming increasingly more powerful
Smartphones now resemble computers more than
phones
Mobile operating systems are becoming
increasingly robust
EVERYONE LIKES MONEY
Mobile applications are an expanding and
lucrative market
 Itunes store has over 150,000 third party
applications with over 3 BILLION downloads
 Android Market has over 40,000 applications and
is growing by about 8,000 apps a month

THE APP STORE
Used for iphone applications
 $99 yearly membership for unlimited app hosting
 Apps pricing: $0.99 - $999.99
 Profits: 70% developer / 30% Apple
 Apps must be approved by Apple
 Only way to distribute iphone apps

ANDROID MARKET
$25 one time fee for lifetime membership
 No fee for hosting applications
 Profits: 70% developer / 30% Google
 Content not regulated/restricted
 Can distribute apps through other venues

WINDOWS MARKETPLACE
$99 yearly membership
 $99 per app submission
 Apps must be approved by Microsoft
 Profits: 70% developer / 30% Microsoft
 Can distribute apps through other venues

ANDROID
Based on the linux 2.6 kernel
 Open source operating system – Apache public
license
 Operating system is available free to
manufacturers
 Applications written in a combination of Java &
XML
 Designed to encourage use & reuse of
applications
 Uses Eclipse IDE & Android Development
Toolkit plugin (ADT)
 ADT includes graphical phone emulator

LIBRARIES

C & C++ code
Webkit – open source browser engine (also used
in Safari)
 Dalvik VM – specifically designed for android &
embedded systems.
 Uses .dex files – which are more efficiently
compiled bytecode optimized for embedded
systems
 Can run multiple processes & each process has
its own VM

APPLICATION FRAMEWORK

All applications use the same framework & APIs
Activity Manager: manages lifecycle of
applications. Includes a common backstack to
integrate multiple running processes seamlessly
to the user
 Package Manager: keeps track of installed apps
 Window Manager: manages windows
 Telephony manager: contains the phone API

APPLICATION FRAMEWORK
Content providers: allow applications to share
data with other apps
 Resource Manager: stores bitmaps, layout files,
and other external parts that are not code
 View System: contains buttons, lists, and other
UI components

APPLICATION BUILDING BLOCKS
Activity: UI components, typically corresponding
to a single screen. An app can have multiple
activities
 Intent Receiver: responds to notifications or
state changes. Can wake up a process
 Service: a faceless task that runs in the
background. Activities can connect to services
 Content Provider: enables applications to share
data. Data can be stored in any fashion, such as
files or in the internal SQlite database

INTENTS
Intents are messages used for late-time binding
between components in the same or different
applications
 Android automatically finds the appropriate
activity, service, or broadcast receiver and
instantiates it if necessary
 Almost any task has an intent in the middle
 Promotes modularity
 Core phone features can be changed for user
created versions

BACKSTACK
Used to seamlessly transition between processes
 System automatically saves state information of
applications before starting a new app

http://www.youtube.com/watch?v=fL6gSd4ugSI&fe
ature=player_embedded#t=03m50s
HELLOWORLD
IPHONE: HELLOWORLD
IPHONE: HELLOWORLD
ANDROID RESOURCES
http://developer.android.com/index.html
Download