Java mobile 移动应用开发

Preview:

DESCRIPTION

2011.01.22 北京OpenParty

Citation preview

Thoughtworks

Java Based Mobile Development

ZheWang

zwang@thoughtworks.com

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

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

Thoughtworks

Mobile Development

• Simon; it was designed by IBM in 1992

• Smartphone Ericsson 1997

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

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

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

Thoughtworks

Diff platforms & various dev languages

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*

Thoughtworks

What Java can do

• Java App

–Opera Mini– Google Map

– Gmail for Mobile

– eBuddy IM

– Snaptu

– Skype Lite

– …

Thoughtworks

What Java can do

• Java App

– Opera Mini

–Google Map– Gmail for Mobile

– eBuddy IM

– Snaptu

– Skype Lite

– …

Thoughtworks

What Java can do

• Java App

– Opera Mini

–Google Map– Gmail for Mobile

– eBuddy IM

– Snaptu

– Skype Lite

– …

Thoughtworks

What Java can do

• Java App

– Opera Mini

– Google Map

–Gmail for Mobile– eBuddy IM

– Snaptu

– Skype Lite

– …

Thoughtworks

What Java can do

• Java App

– Opera Mini

– Google Map

– Gmail for Mobile

–eBuddy IM– Snaptu

– Skype Lite

– …

Thoughtworks

What Java can do

• Java App

– Opera Mini

– Google Map

– Gmail for Mobile

–eBuddy IM

–Snaptu– Skype Lite

– …

Thoughtworks

What Java can do

• Java App

– Opera Mini

– Google Map

– Gmail for Mobile

–eBuddy IM

– Snaptu

–Skype Lite– …

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

Thoughtworks

Where to dev - plfm

• Blackberry

Thoughtworks

Where to dev - plfm

• Android

Thoughtworks

Where to dev - tools

• SDK-Toolkit

• IDE

• Emulator

• Management Tools

Thoughtworks

Where to dev - tools

• Sun Wireless Toolkit

• Netbean

• Eclipse*

• IntelliJ*

• …

Thoughtworks

How to dev

• Proposal (UI-UX)

– UI focused app

• Paper based proposal

• Photoshops based proposal

– Service focused app

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

Thoughtworks

How to dev

• continuous integration (see REA hudsonserv)

Thoughtworks

How to dev

• Agile process (see Pivatol tracker)

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

Thoughtworks

Concurrency Programming

• Java Concurrency Programming

– Basic

– Concurrency package

– RTSJ (real-time)

• Whether it is correct or not

• Testing and Formal method

Thoughtworks

Battery Consuming

• Threads

• IO Operation

• Schedules (Avenace website)

Thoughtworks

Geo Location

• Example (GPS Preliminary Research)

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

Thoughtworks

However…8900 | 9530 | 8310

Obtain GPS Data at the period

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

Thoughtworks

UI and UX

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

• Example (REA UX)

Thoughtworks

Thoughtworks

Binary Code Analysis (audio, video

• Example (WBXML, Audio)

Thoughtworks

Network (HTTP, HTTPS, RTP and etc)

• Example (How network affect connection)

Thoughtworks

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

• Example (technologies selection)

– Linear AU (mono, stereo)

– GSM

– ARM

– MP3

– MIDI

– WAV

– …

Thoughtworks

Service Provider

• Example (Blackberry Big Picture)

Thoughtworks

Thanks