native platform api comparison

37
Native Platform API Comparison by: Dr. Tim Lindquist April 2, 2013 Cst594 Mobile Computin

Upload: daria

Post on 25-Feb-2016

57 views

Category:

Documents


0 download

DESCRIPTION

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. - PowerPoint PPT Presentation

TRANSCRIPT

Native Platform APIComparison

by: Dr. Tim Lindquist

April 2, 2013

Cst594 Mobile Computing

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 dynamically-linked 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 ?

Cst594 Mobile Computing