38
Thoughtworks Java Based Mobile Development ZheWang [email protected]

Java mobile 移动应用开发

Embed Size (px)

DESCRIPTION

2011.01.22 北京OpenParty

Citation preview

Page 1: Java mobile 移动应用开发

Thoughtworks

Java Based Mobile Development

ZheWang

[email protected]

Page 2: Java mobile 移动应用开发

Thoughtworks

Index

• Overview of Mobile Development

• Diff platforms & various dev languages

• Why Java

• What Java can do

• Where to dev

• How to dev

• Key Points

Page 3: Java mobile 移动应用开发

Thoughtworks

Mobile Development-Diff from PC-

• Con– Communication– Mobile– Keep live– Embedded Systems (GPS, RFID and etc)– Value Added Service (E-ticket)

• Pos– Battery– Screen– Process– Storage

Page 4: Java mobile 移动应用开发

Thoughtworks

Mobile Development

• Simon; it was designed by IBM in 1992

• Smartphone Ericsson 1997

• powerful processors, abundant memory, larger screens, and open operating systems

Page 5: Java mobile 移动应用开发

Thoughtworks

Mobile Development Cont.

According to Gartner in their report dated November 2010, totalsmartphone sales doubled in one year and now smartphonesrepresent 19.3 percent of total mobile phone sales. Over late 2009and 2010 Android's smartphone market share has increased veryrapidly [Gartner, 2010]

• 2010 Q3 PC – 88.3 million (7.6%)

• 2010 Q3 Smartphone – 77 million (78%)

• Apple Store about 10 billion download

Page 6: Java mobile 移动应用开发

Thoughtworks

Diff platforms & various dev languages

Year Platform Support

2000 Symbian Ericsson

2001 WinCE Microsoft

2002 PalmOS* Palm

2002 Blackberry RIM (32m)

2007 iOS Apple

2008 Android Google

2010** Bada Sumsung

2010 Symbian^3 OS Nokia

Page 7: Java mobile 移动应用开发

Thoughtworks

Diff platforms & various dev languages

Page 8: Java mobile 移动应用开发

Thoughtworks

Why Java

• Do you believe?

Share of worldwide 2010 Q3 smartphone sales to end users by operating system, according to Gartner.

iOS

• Object-C

Windows Mobile

• C, C++

• Java ME

Android

• Java (C, C++ & VB)

Blackberry

• Java

Symbian

• C++

• Java ME

Bada

• Java*

Page 9: Java mobile 移动应用开发

Thoughtworks

What Java can do

• Java App

–Opera Mini– Google Map

– Gmail for Mobile

– eBuddy IM

– Snaptu

– Skype Lite

– …

Page 10: Java mobile 移动应用开发

Thoughtworks

What Java can do

• Java App

– Opera Mini

–Google Map– Gmail for Mobile

– eBuddy IM

– Snaptu

– Skype Lite

– …

Page 11: Java mobile 移动应用开发

Thoughtworks

What Java can do

• Java App

– Opera Mini

–Google Map– Gmail for Mobile

– eBuddy IM

– Snaptu

– Skype Lite

– …

Page 12: Java mobile 移动应用开发

Thoughtworks

What Java can do

• Java App

– Opera Mini

– Google Map

–Gmail for Mobile– eBuddy IM

– Snaptu

– Skype Lite

– …

Page 13: Java mobile 移动应用开发

Thoughtworks

What Java can do

• Java App

– Opera Mini

– Google Map

– Gmail for Mobile

–eBuddy IM– Snaptu

– Skype Lite

– …

Page 14: Java mobile 移动应用开发

Thoughtworks

What Java can do

• Java App

– Opera Mini

– Google Map

– Gmail for Mobile

–eBuddy IM

–Snaptu– Skype Lite

– …

Page 15: Java mobile 移动应用开发

Thoughtworks

What Java can do

• Java App

– Opera Mini

– Google Map

– Gmail for Mobile

–eBuddy IM

– Snaptu

–Skype Lite– …

Page 16: Java mobile 移动应用开发

Thoughtworks

What Java can do (2)

• How about Game– Iron Man 2

– The Team-A

– Prison Tycoon

– SimCity Deluxe

– Guitar Hero World Tour

– FIFA 2010: South Africa World Cup

– Robin Hood: The Movie Game

– Prince of Persia: The Forgotten Sands

– FaceBreaker

Page 17: Java mobile 移动应用开发

Thoughtworks

Where to dev - plfm

• Blackberry

Page 18: Java mobile 移动应用开发

Thoughtworks

Where to dev - plfm

• Android

Page 19: Java mobile 移动应用开发

Thoughtworks

Where to dev - tools

• SDK-Toolkit

• IDE

• Emulator

• Management Tools

Page 20: Java mobile 移动应用开发

Thoughtworks

Where to dev - tools

• Sun Wireless Toolkit

• Netbean

• Eclipse*

• IntelliJ*

• …

Page 21: Java mobile 移动应用开发

Thoughtworks

How to dev

• Proposal (UI-UX)

– UI focused app

• Paper based proposal

• Photoshops based proposal

– Service focused app

Page 22: Java mobile 移动应用开发

Thoughtworks

How to dev

• Design/Framework – BDD/TDD

REA_Project

REA_Domain

REA_Unit_Test

Focus on UI and Event handling

Focus on domain logic & status

Focus on domain unit test

Page 23: Java mobile 移动应用开发

Thoughtworks

How to dev

• continuous integration (see REA hudsonserv)

Page 24: Java mobile 移动应用开发

Thoughtworks

How to dev

• Agile process (see Pivatol tracker)

Page 25: Java mobile 移动应用开发

Thoughtworks

Experiences

• Key Points– Concurrency Programming

– Battery Consuming

– Geo Location

– UI and UX

– Binary Code Analysis (text, audio&video)

– Network (HTTP, HTTPS, RTP and etc)

– Broad wide (Network, Edge/Wifi/3G/GPRS)

– Service Provider

– Multi-Platform Knowledge

Page 26: Java mobile 移动应用开发

Thoughtworks

Concurrency Programming

• Java Concurrency Programming

– Basic

– Concurrency package

– RTSJ (real-time)

• Whether it is correct or not

• Testing and Formal method

Page 27: Java mobile 移动应用开发

Thoughtworks

Battery Consuming

• Threads

• IO Operation

• Schedules (Avenace website)

Page 28: Java mobile 移动应用开发

Thoughtworks

Geo Location

• Example (GPS Preliminary Research)

Page 29: Java mobile 移动应用开发

Thoughtworks

Blackberry 9500( around 10 mins cycling)

• GPS Setting• Sampling Interval (30 secs)• Sampling Duration (15 secs)

• Criteria• H Accuracy (2 meters)• V Accuracy (Not applied)• P Consumption (Medium)• Cost (true)

• 16 GPS• 5 Heartbeat

Succ Fail

4 2

5 1

3 3

3 3

0 6

Page 30: Java mobile 移动应用开发

Thoughtworks

However…8900 | 9530 | 8310

Obtain GPS Data at the period

Page 31: Java mobile 移动应用开发

Thoughtworks

Criteria Comparison Horizontal and Vertical Accuracy

-

6059

Succ vs Fail with HVA 10

GPS Fix Succ GPS Fix Fail

5360

Succ vs. Fail with HVA 2

GPS Fix Succ GPS Fix Fail

63

45

Succ vs. Fail with HVA 15

GPS Fix Succ GPS Fix Fail

Page 32: Java mobile 移动应用开发

Thoughtworks

UI and UX

• Layout (resolution, keyboard, gravity and etc.)

• Example (REA UX)

Page 33: Java mobile 移动应用开发

Thoughtworks

Page 34: Java mobile 移动应用开发

Thoughtworks

Binary Code Analysis (audio, video

• Example (WBXML, Audio)

Page 35: Java mobile 移动应用开发

Thoughtworks

Network (HTTP, HTTPS, RTP and etc)

• Example (How network affect connection)

Page 36: Java mobile 移动应用开发

Thoughtworks

Broad wide (Network, Edge/Wifi/3G/GPRS)

• Example (technologies selection)

– Linear AU (mono, stereo)

– GSM

– ARM

– MP3

– MIDI

– WAV

– …

Page 37: Java mobile 移动应用开发

Thoughtworks

Service Provider

• Example (Blackberry Big Picture)

Page 38: Java mobile 移动应用开发

Thoughtworks

Thanks