PlatformComparisonLindquist1Apr2013

advertisement
Cst594 Mobile Computing
Native Platform API
Comparison
by:
Dr. Tim Lindquist
April 2, 2013
Platforms
• iOS
• Android
• Windows Phone
iPhone App Runtime Layers
iOS
• ARM processor (as with Android) running iOS,
which is a trimmed version of OS X.
• Objective-C runtime consists of dynamicallylinked libraries together with underlying C libs.
• Devices have 3-sensors
– Proximity sensor deactivates the display
– Ambient light sensor for display intensity
– 3-axis accelerometer sensor for orientation
iOS Layers
Cocoa Touch
• Multi-tasking:
– Home  Background, (running but not executing)
– Relaunch  API support to save/restore state
– App can support services requiring background
execution
– App can use notifications to alert the user
– Notification source: local (gps  time to turn) or
remote (external server pushes mail notification)
Cocoa Touch
• Game Kit
– Peer-to-peer connectivity over bluetooth for:
• Multi-player games
• Sharing information (contacts or other information)
• Standard View Controllers (common UI)
•
•
•
•
Display/Edit contacts
Create/Edit calendar events
Compose email or SMS messages
Take a picture or shoot a video clip
Cocoa Touch
• Gesture Recognizers
• App associates action with the following:
– Tapping (any number of taps)
– Pinching in or out for zoom control
– Panning or dragging
– Swiping
– Rotating
– Long Presses
Cocoa Touch
• Automatic Layout
• Localization through string swapping
• Mirroring UI elements for right-to-left languages
• Storyboards
• UI to design all views, including connections
• Programmer can generate code for UI components that
create, replace, or add components and/or wire-ups
Cocoa Touch
• Printing Support (network printers)
• External Display Support
• Display app content on a cable connected external
device
• Query and display and set screen resolutions
Cocoa Touch Frameworks
• Address Book UI Framework 
• Access to address book content and
• UI components for creating and editing contacts
• Event Kit  view and edit calendar events
• Game Kit 
• Bonjour  discover and communication with services
• Game Center (on-line service) for aliases, leaderboards,
matchmaking, record player progress, and challenges
Cocoa Touch Frameworks
• iAd  deliver banner ads through your app
using Apple on-line service
• Map Kit  Map display
• Directions -- routing
• Annotations
• Points of interest
• Message UI and Twitter Frameworks
• Email messages  View and create
• SMS message  view and create
Cocoa Touch Frameworks
• UIKit Framework
•
•
•
•
•
•
•
•
•
App and UI management
Graphics and windowing support
Customization of standard UIKit controls
Support for Text (cut, copy, paste) and Web content
Animating UI content, Integration with other Apps,
PDF creation
Accelerometer data
Camera and photo library
Device, battery state, proximity sensor, remote control
iOS Layers
Media Layer
• Graphics Technologies
– Core Graphics (Quartz) 2D vector and image
rendering
– Core Animation, Manipulation of Video and Stills
– OpenGL ES and GLKit (2D & 3D rendering)
Media Layer
• Audio Technologies
• Media player and audio record (microphone). Manage
audio playback and recording in Objective-C App
• API access to iTunes Library and playlists
• Virtual 3D audio positioning
• Supports Audio formats: AAC, Apple Lossless, A-law,
IMA/ADPCM, Linear PCM, micro-law, DVI/Intel IMA
ADPCM, Microsoft GSM 6.10, AES3-2003
Media Layer
• Video Technologies
• UI control provides interface for recording video on
devices with camera
• Media Player Framework  play full or part screen
movies
• Objective-C interfaces for managing capture and
playback of movies
• Video Formats: H.264 in Low Complexity and Baseline
Profile; m4v, mp4, .mov formats
• MPEG-4 Video (Simple Profile) up to 2.5 Mbps 640x480
pixels, 30fps (.m4v, .mp4, and .mov)
Media Layer: Audio Frameworks
• AirPlay
– Facilities for streaming audio to AirPlay speakers,
receivers, and AppleTV.
– Audio content played using any of the Core or
Media layer audio facilities can be used with
AirPlay.
iOS Layers
Core Services
• iCloud Storage
– Application can write user documents and data to
a central location.
– Documents and data are accessible from all of the
user’s devices, without having to sync or transfer
files explicitly.
– iCloud also supports a (small) key-value data store
that is not visible to the user.
iCloud
Core Services
• Automatic Reference Counting  as opposed
to garbage collection.
• Block Objects  closures, also called lambda
blocks.
– In-line delegates/delegate methods, callbacks,
handlers, asynchronous tasks.
• File-Sharing  Documents directory
readable/writeable using iTunes from another
device.
Core Services
• Grand Central Dispatch  asynchronous
programming that’s more efficient than
threads.
• In-App Purchase  App can process financial
transactions using iTunes account.
• SQLite  In-App connection-less database.
• Core Data  Xcode buildable schema,
manages SQLite DB for app, MVC support
Core Services
• Telephony Framework
– Interact with phone-based information
– Information about cellular provider,
– Notifications of cellular call events
– Cellular radio information, such as signal strength.
Core Services
• Newsstand Kit Framework
– For publishers to provide their own apps for
reading magazines and news papers.
• Pass Kit Framework
– Support for downloadable passes. Companies can
create passes, coupons, boarding passes, event
tickets and coupons and discount cards for their
businesses.
– Framework objects connect directly to a
companies web services.
Android
• Linux kernel
• Runtime includes core libraries and Dalvik VM
• Every Android app runs in its own process with its own
VM
• Android uses a set of C/C++ libraries. These are
exposed to developers
– C-library based on BSD
– Media library is based on PacketVideo’s openCORE
• Any application may publish its capabilities and then
any other application can utilize those facilities
Android API’s
• Animation and Graphics
– Access to Android’s graphics features such as
OpenGL, hardware acceleration, and built-in UI
animations.
– Android APIs for applying animation to UI
elements and drawing 2D and 3D graphics.
– OpenGL  OpenGL ES, which is OpenGL for
embedded devices.
Android API’s
• Media and Camera
– Add video, audio, and photo capabilities; APIs for
playing and recording media.
– Support for playing common audio, video and
image types. Supports playing media from file
resources, from standalone files in the filesystem,
or from a network data stream.
– Support for encoding audio with common formats
– Camera  capture and manage pictures & video
Android Optional API Add-Ons
• AdMob
– Advertising network that helps app developers
monetize and promote their mobile and tablet
apps with ads.
Android Optional API Add-Ons
• Analytics App Tracking
– Connect user interactions with paid ads, Google
Play downloads, and subsequent in-app usage and
Ecommerce transactions.
Android Optional API Add-Ons
• Cloud Messaging
– A service that allows you to send data from your
cloud server to your users' Android-powered
device.
Android Optional API Add-Ons
• Play Services
– Common access to Google services such as Maps
and Google+; Single authorization, billing,
licensing, and automatic updates.
Android Optional API Add-Ons
• Web Driver
– W3C Web Driver Implementation.
– Allows programs or scripts to introspect into, and
control the behaviour of, a web browser. The
WebDriver API is primarily intended to allow
developers to write tests that automate a browser
from a separate controlling process,
Android Optional API Add-Ons
• APK Expansion Library
– Allows apk’s to be larger than 50MB so they may
include media or other large resources.
Cst594 Mobile Computing
THANK YOU
QUESTIONS ?
Download