55
HIT3328 / HIT8328 Software Development for Mobile Devices Dr. Rajesh Vasa, 2012 1 Lecture 01 Platforms and Devices Image Source: Google

HIT3328 - Chapter01 - Platforms and Devices

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: HIT3328 - Chapter01 - Platforms and Devices

HIT3328 / HIT8328 Software Development for Mobile

Devices Dr. Rajesh Vasa, 2012

1

Lecture 01

Platforms and

Devices

Image Source: Google

Page 2: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 2

Lecture Overview

•Eco Systems and Development Journey

•Smartphone - Hardware Overview

•Hardware Constraints (Dev. perspective)

•Mobile Operating Systems

•Convention Over Configuration

Page 3: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 3

Mobile Ecosystem

Ad

Networks

Platform

Content Providers

(Music/Video/Books)

Handset

OEMs

Telephone

Networks

App.

Distribution

Cloud

Infrastructu

re

Billing

Page 4: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 4

Mobile Ecosystem - Android

** Google, Double Click

Google, Amazon

Samsung, HTC, Motorola, Sony ...

Platform

Cloud

Infrastructure

Ad

Networks

Content Providers

(Music/Video/Books)

Handset

(OEMs)

Telephone

Networks

App.

Distribution

Billing

Google Checkout

Android

Google, Amazon

Page 5: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 5

Mobile Ecosystem - Apple

iTunes iAd

Ad

Networks

Platform

Content Providers

(Music/Video/Books)

iPhone/iPa

d/iPod

Telephone

Networks

App.

Distribution

Cloud

Infrastructure

Billing

App Store

iTunes + App. Store

Dropbox, Google

iOS

Page 6: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 6

Lecture Overview - Where are we?

•Eco Systems and Development Journey

•Smartphone - Hardware Overview

•Hardware Constraints (Dev. perspective)

•Mobile Operating Systems

•Convention Over Configuration

Page 7: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 7

App. Development Journey

•Application Planning

•Platform / Library Selection

•Develop and Test

•Prepare for Market and Deploy

•Monetization

•Analytics, Support and Update

Management

Planning Platform Prep Develop & Test Deploy Monetize Support > > > > >

Page 8: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 8

App. Development Journey

•Planning

•User identification

•Concept / Prototype design

•Market research (focus groups)

•Requirements documentation

•[Business case / Budget]

Planning Platform Prep Develop & Test Deploy Monetize Support > > > > >

Page 9: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 9

App. Development Journey

•Platform Preparation

•Identifying appropriate platform

•Selection of libraries and tools (increase

productivity)

•Development methodology

•Gap identification and learning plan

•Working with development community

Planning Platform Prep Develop & Test Deploy Monetize Support > > > > >

Page 10: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 10

App. Development Journey

•Develop and Test

•IDE, SDK, Source code control tools

•UI construction / automation tools

•Emulators, Simulators, Debuggers

•Profiling and Testing tools

•Porting, internationalization

•Cloud infrastructure and services

Planning Platform Prep Develop & Test Deploy Monetize Support > > > > >

Page 11: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 11

App. Development Journey

•Deployment

•Packaging and Signing

•Certification and Approval process

•Beta testing (Sandbox-ed networks)

•Localization

•Packaging and Managing versions

•Technical support frameworks

Planning Platform Prep Develop & Test Deploy Monetize Support > > > > >

Page 12: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 12

App. Development Journey

•Monetization

•Distribution methods and channels

•Tools to aid promotion

•Ad. networks

•Billing and Settlement (in-app selling)

•Application usage profiling

Planning Platform Prep Develop & Test Deploy Monetize Support > > > > >

Page 13: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 13

App. Development Journey

•Support and Tracking

•Analytics (tracking usage)

•User ratings, support

•Managing application upgrades /

updates

•Privacy management

Planning Platform Prep Develop & Test Deploy Monetize Support > > > > >

Page 14: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 14

Lecture Overview - Where are we?

•Eco Systems and Development Journey

•Smartphone - Hardware Overview

•Hardware Constraints (Dev. perspective)

•Mobile Operating Systems

•Convention Over Configuration

Page 15: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 15

Typical Hardware Capabilities

•Mobile telephony

•Sensors & Actuators

•Location detector

•CPU / GPU (optimised to run on battery)

•Touch screen (&& || small keyboards)

•Networking (WiFi, Bluetooth, 3G, 4G...)

•High resolution battery efficient display

•Memory (onboard + SD Card)

Page 16: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 16

Sensors and Actuators

•Magnetometer

•Accelerometer/Gyro

•Temperature (and humidity) sensors

•Proximity / Light sensors

•Vibrator and Haptic feedback

•Camera (Front and Back) + Flash

•Vibrate motor

Page 17: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 17

Location Detection

•Location detection is possible at fine or coarse

level using:

•GPS (fine -- to few meters)

•Cell grid triangulation (to 100 meters)

•IP network location (Suburb / City)

Page 18: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 18

Touch Screen

•Resistive (cheaper) touch screen

•Detects a change in current when touched --

any object can touch it

•Need some pressure applied

•Capacitive (expensive) touch screen

•Respond to conductive surface (like a human

finger) -- capacitance change

•Ideal for gesture / multi-touch UI

Page 19: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 19

CPU / GPU

•Current generation in wide use

•CPU + GPU on single die

•~ 50% of the graphics power of a PS3

•Next generation (Tegra series chips)

•Dual/Quad core CPUs

•GPU (8-core or 16-core)

•Entire phone feature set on single chip

•Dual/Quad core are more power efficient

Page 20: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 20

Networking

•Full TCP/IP support

•WiFi (theory~54Mbps, practice~30Mbps)

•GPRS (48 Kbps) a.k.a. 2.5G

•3G (HSDPA ~ 7Mbps, HSUPA ~ 5Mbps)

•Bluetooth (~3Mbps, Next-Gen ~ 24Mbps)

•Note: If network is operating at 1Mbps, then

you can download a 1 Mega Byte file in 10

seconds. (Mbps is megabit per sec)

Page 21: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 21

Battery Technology

•Popular technology - Lithium-Ion

•Generally around 1500 mAh battery pack

•Current generation batteries will power,

•light use (typical): ~ 2 days

•heavy use (esp. internet): 6 to 10 hours

•game play/video: 2 to 3 hours

•Battery drain depends on sensor use (but

display is the largest consumer of power)

Page 22: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 22

Where does battery go?

•How is battery used (without GPS)?

•Display (50%)

•Cell grid usage including stand by (25%)

•WiFi (20%)

•Phone Idle (5%)

•If GPS is enabled -- it will use about 20-25% of

the battery power.

•Note: The above is based on an average user

Page 23: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 23

Memory

•Persistent Solid State Storage

•Flash memory (8/16/32Gb, @ ~10MB/sec )

•SD Card (@ ~ 4 - 6 MB/sec)

•2 Gb special memory for (O/S + drivers)

•Volatile

•RAM (256 Mb - 512 Mb)

•GPU shares RAM

•Memory read/write speed is a constraint

Page 24: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 24

Display Technology

•Bright / full colour - AMOLED, OLED, LCD

•Different resolutions are used

•eXtra High density (640 x 960 @ 320 dpi)

•High density (480 x 800 @ 240 dpi)

•Medium density (320 x 480 @ 160 dpi)

•Low density (240 x 400 @ 120 dpi)

•Physical width often ~ 2 inches (goldilocks

width for human hands)

•Height often between 2 - 4.5 inches

Page 25: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 25

Lecture Overview - Where are we?

•Eco Systems and Development Journey

•Smartphone - Hardware Overview

•Hardware Constraints (Dev. perspective)

•Mobile Operating Systems

•Convention Over Configuration

Page 26: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 26

Next Generation Displays

•Most widely used are medium density and

high-density (320x480 @ 160 dpi and 480 x

800 @ 240 dpi )

•iPhone4 is ~ 320 dpi (more pixels per inch)

Image Source: Gizmodo

Page 27: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 27

What are the constraints?

•As a developer you need to,

•Know typical usage (minutes or hours)

•Understand sensors (efficiency / accuracy /

reliability / batt. drain)

•Know network is unreliable and offers erratic

speeds

•Be aware that the phone may/will/can ring

•Display size, DPI & processor speed are

variable

Page 28: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 28

More constraints....

•You must develop apps that,

•Use only a few MB of memory

•Are a couple of MB in size

•Store data as efficiently as possible

•Can work with sensors where precision is not

identical across devices (even iPhone has 3

generations in wide-spread use)

•Can work with a range of memory, cpu, and

GPU capabilities

Page 29: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 29

Biggest Constraint of ALL

•The Phone can (will) RING

•When the phone rings,

•Your app. is put in the background by O/S

•If you want to save state -- you have to manage

this

•When the phone call ends,

•The O/S will try to bring your app. back into

the foreground (but not guaranteed)

Page 30: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 30

Time for distraction...

• Guess how much effort went into the design and

construction of the core font (Droid Font) for the

Android platform?

• This was followed by even more work on the new

Roboto Font.

Page 31: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 31

Short Problem 1

•Scenario:

•You are developing a “Stopwatch + Count Down

timer” App.

•Use case: The user has set the count down

timer for 2 minutes -- pressed “start”. After 45

seconds, phone rings

•What is the behaviour of your app. when the

phone rings?

Page 32: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 32

Short Problem 2

•Scenario: You developed an app that “needs”

to download ~ 30MB of data daily (Common

for newspaper apps)

•How long will it take on,

•Home broadband/WiFi (3 Mbps), 3G (1.5

Mbps), GPRS (48 Kbps)

•Design choices will you make in terms of,

•How data is downloaded? Protocols supported?

Dealing with dropped connections?

Page 33: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 33

Short Problem 3

•Scenario: You are planning to develop an app.

that will show the weather forecast for a

particular location. You want to use the GPS to

obtain the location.

•However, obtaining an initial GPS lock takes

time (30 seconds -- 2 minutes)

•Do you think it is reasonable to ask the user

to wait a couple of minutes to get the location?

If not, what will you do different?

Page 34: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 34

Short Problem 4

•Scenario: Weather App.

•Phone (at home) has not been used for around

30 minutes.

•User wants to check the weather.

•The app. opens a network connection --

downloads the weather information.

•The app takes about 60 - 90 seconds to

download weather data. Why is it taking so

long? Is this a reasonable delay?

Page 35: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 35

Lecture Overview - Where are we?

•Eco Systems and Development Journey

•Smartphone - Hardware Overview

•Hardware Constraints (Dev. perspective)

•Mobile Operating Systems

•Convention Over Configuration

Page 36: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 36

Mobile Operating System

•Operating System == Resource Manager

•Tight resource constraints on mobile

•Low powered (Batt. 1200 - 1500 mAh)

•Limited RAM (256 - 512 MB)

•Relatively small disk (8GB - 16GB)

•Small (yet power draining) display

•Network access - expensive yet needed!

•If phone rings -- call gets highest priority

Page 37: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 37

Mobile Operating Systems

•Very different to how PC operating systems

are designed

•The life cycle of an application is very tightly

controlled by O/S

•If an app. is a resource hog -- it will get killed

(or suspended) by the O/S

•O/S trickle allocates memory to apps, but

aggressively de-allocates it

•If a view/image is not in the

foreground/running -- then it will be destroyed

Page 38: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 38

Mobile Op. Systems are e-VIL?

•If you request a network connection -- but

have not used it for a while,

•O/S will power down network hardware

•O/S may close the connection / port

•If the devices goes to sleep (default is few

min.) then the memory allocated to app. is de-

allocated.

•O/S (thankfully) provide a short warning and

you have options to save data.

Page 39: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 39

Android App Life Cycle

Key feature of

a Mobile O/S

Remember: ~ 256MB only

available in RAM

Image Source:

http://developer.android.co

m

39

Page 40: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 40

iOS Application Life Cycle (is similar)

•Memory management is different in iOS

compared to Android

•iOS will still,

•Terminate apps. if memory needed (test for

yourself -- load few large games on an iPhone)

•Send an app. into background if Phone rings

•Flush caches (used by images mainly) at

regular intervals to free resources

Page 41: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 41

States of an App.

•An app. can be in one of the following states:

•Not Running (not launched)

•Running (foreground or background)

•Active

•In-Active (waiting for I/O)

•Suspended (background)

•Process state information is saved, but RAM

used is generally purged

Page 42: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 42

Short Problem 5

•Consider this hypothetical situation,

•Each time you minimise the IDE on your laptop

computer, the O/S will suspend the application

for 15 minutes -- then terminates the

application.

•If you were developing the IDE -- and want to

offer a reasonable user experience on this OS -

- what can you do?

Page 43: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 43

Mobile File Systems

•Designed to work with Flash memory

•Flash memory is designed for max. 10k writes

•File system is optimised to ensure that the

same block does not receive too many writes

(known as wear levelling)

•Write operation -> (erase first), then write data

•Read operations are faster than write

•Read speed ~ 6 MB/sec, Write ~ 3 MB/sec

•I/O speed optimisation critical in games

Page 44: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 44

Short Problem 6

•You have created a new “app” for the Android

platform --

•App Size is 25MB (20M is media)

•What is the minimum load time for this app?

•Do you think this is a reasonable size for a

weather app.?

Page 45: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 45

When building mobile apps...

•Assume phone will ring

•Save state regularly (in fact, be paranoid)

•Assume resources are allocated reluctantly

•Assume erratic network connectivity

•Assume slow read/write speed to Flash card

•Use RAM carefully, minimise sensor use

•Inform user if any operation takes over 3 sec.

•Keep core use case as short as possible

Page 46: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 46

Lecture Overview - Where are we?

•Eco Systems and Development Journey

•Smartphone - Hardware Overview

•Hardware Constraints (Dev. perspective)

•Mobile Operating Systems

•Convention Over Configuration

Page 47: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 47

Convention Over Configuration

•Software design paradigm

•Aims to reduce decisions developers make

•Why is this needed?

•When we build software, there is a lot of

routine and repetitive decision making

•By following a certain development style, we

reduce the decisions we need to make

•What do we lose? -- Some flexibility, and

developers have to accept the convention

Page 48: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 48

Example ....

•Software systems often make use of a large

number of images (icons, background etc.)

•Developers now have to make a decision:

1. Store the images in a central directory?

2. Distribute them into different directories (closer to

modules?)

3. Store them in a database system?

4. Naming of images, meta-data?

•What is the best option? Will it work? Risk?

Page 49: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 49

Decision making process..

•In order to make a decision,

•Options must be identified (takes effort)

•Options must be ranked (opinions and ideas of

different developers will come into play)

•An option must be selected

•Team must accept the selected option

•May results in ... “decision paralysis”

•Worse, sub-optimal decision making +

increase in stress

Page 50: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 50

Coding by configuration...

•Consider the “image storage example”

•Assume developers have made a choice

•Developers have to explicitly write code to,

•Load these image resources

•Manage the location that they are stored in

•Find a consistent way to refer to these images

•Agree on a naming style etc...

•Work is done -- but has minimal value add

Page 51: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 51

Coding by convention..

•All images are stored in the “images” directory

•Framework will automatically,

•Generate references to these images

•Provide code to load these images

•Enforce naming rules to identify different types

of images

•e.g. Icons will be named with ic_ prefix.

•We improve productivity -- in terms of reduced

decision making

Page 52: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 52

Why does this matter?

•Android prefers and dictates “convention”

•However,

•You can ignore the convention and fallback to

configuration

•Benefits of convention,

•Productivity improvement

•Improve team coordination

•Reduces unnecessary stress

•iOS development has its own conventions!

Page 53: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 53

Android Project Structure

(convention) •Source code (src)

•Generated code (gen)

•Resources (res)

•Images (drawable)

•Layout of app (layout)

•Constants/Strings (values)

Page 54: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 54

Demo -- Hello World

•Create a ‘Hello World’ app.

•Quick overview of the IDE & Emulator

•Create + Run app. (in emulator)

•Change the font size (run again)

•Display “Hello, HIT3328 / HIT8328”

•Why do we have generated code?

Page 55: HIT3328 - Chapter01 - Platforms and Devices

R. Vasa, 2012 55

Lecture Review - Key points

•Understand the hardware and sensors

•Constraints are real -- must work within them

•Mobile Operating Systems

•Be paranoid about storing state

•Convention Over Configuration

•Follow the pattern -- increase productivity