190 likes | 342 Views
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
E N D
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&feature=player_embedded#t=03m50s
Android Resources http://developer.android.com/index.html