30
Joko Java kiehuu kännykässä? J2ME-platformin tuoreimmat kuulumiset... Kari Systä / Nokia Research Center Antero Taivalsaari / Sun Microsystems, Inc. 17. joulukuuta 2003

Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDays

Joko Java kiehuu kännykässä?J2ME-platformin tuoreimmat kuulumiset...

Kari Systä / Nokia Research CenterAntero Taivalsaari / Sun Microsystems, Inc.

17. joulukuuta 2003

Page 2: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysDid You Know That...

● Java is already in more than 150 million mobile phones?

● There are more than 200 J2ME device models from 27 manufacturers?

● Over 20 million new J2ME devices are sold every month!

● Globally, over 10 million Java application downloads take place every month.

Page 3: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysDid You Know That...

● You can develop, install, buy and sell applications to mobile phones?

● And that it is easier as than you think!!

● Have you already tried?

Page 4: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysAgenda

J2ME platform overview MIDP 2.0 overview Application and tool demos... Forthcoming J2ME standards and APIs JTWI (Java Technology for the Wireless Industry)

How to get started? Conclusions

Page 5: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDays

J2ME Platform Overview

Page 6: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysJava™ 2 Platform

Page 7: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysJ2ME Base Platforms

Connected, Limited Device Configuration (CLDC) Specifies the basic Java platform for mobile phones,

two-way messaging devices, and low-end PDA devices. CLDC devices are usually wireless. Minimum memory requirement: a few hundred kilobytes.

Connected Device Configuration (CDC) Specifies Java™ environment for digital television set-top

boxes, high-end wireless devices and automotive telematics systems.

CDC devices may be wired (DTV cable, etc.) or wireless. Minimum memory requirement: a few megabytes.

Page 8: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysCLDC Scope

KVM

CLDC

MIDPProfile

Configuration

Core Java language features Core Java virtual machine

features Core java.* libraries

Page 9: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysMIDP Scope

MIDlet Application model (life-cycle, packaging)

Persistent storage (RMS) Networking (HTTP) User interface libraries

(LCDUI)

+ new APIs in MIDP 2.0

KVM

CLDC

MIDPProfile

Configuration

Page 10: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysThe J2ME™ Devices & Standards

Most J2ME devices today are based onCLDC 1.0 + MIDP 1.0.

New devices have started using MIDP 2.0.

Backwards compatibility is important: MIDP1.0 applications can run unmodified of MIDP2.0

A lot of additional J2ME API extensions are coming.

Page 11: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDays

MIDP Quick Overview

Page 12: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysMIDP 1.0 APIs (most phones today)

Application model (life-cycle, packaging) javax.microedition.midlet

User interface (high and low level APIs) javax.microedition.lcdui

Persistent storage (RMS) javax.microedition.rms

Networking (HTTP) javax.microedition.io.HTTPConnection

Core system class packages from CLDCjava.lang, java.io, java.util

Page 13: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysMIDP 2.0 – New Features

● Enhanced security model for MIDlet Suites– Security domains– The notion of Trusted MIDlet suites

● Game API– Rich set of features for 2D game development– Sprites, layering, image transformations, ...– Extension of the MIDP user interface API

● Sound API– Tone generation, sampled sounds (optional), MIDI support

(optional)– Subset of the full J2ME Mobile Media API (JSR 135).

Page 14: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysMIDP 2.0 – New Features

● User interface enhancements– More look&feel control to applications

● More advanced layout control● CustomItem● More control over fonts

– New component types (CustomItem, StringItem, Spacer),– Full screen mode for Canvas– Various command handling enhancements, – Backlight, vibrate support– etc. etc.

Page 15: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysMIDP 2.0 – New Features

Additional network protocols HTTPS, Comm (serial ports), Socket, Server Socket,

Secure Socket (SSL), Datagram Note: Only HTTP and HTTPS are required by the

specification; other protocols are optional.

Push functionality Ability to launch a MIDlet in response to an incoming

message (“event-driven application launch”)

Over The Air (OTA) provisioning Defines specific guidelines how the users can initiate the

downloading of MIDlets through the browsers that is resident on the device.

Page 16: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysSample MIDP Applications

● Games, utilities, web, email, even Telnet clients.

● For example check– www.midlet.org– www.softwaremarket.nokia.com

Page 17: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDays

MIDlet Development Steps

1) Write your Java application2) In the development tool, click “build” to:

2a) Compile it

2b) Pre-verify it 2c) Package it into a JAR file 2d) Sign the JAR file (new in MIDP 2.0 – Optional) 2e) Create the application descriptor

3) Test in an emulator4) Test in a phone5) Publish the application

Page 18: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDays

Claims and the Truth

● Claim: Java application are too slow– Answer: just check some the games;

there are even versions of Mandelbrot

● Claim: Applications are not really portable– Answer: they can be. If the developer optimizes

for a certain device, it is for that device.If the developer thinks portability, the app can be very portable

Page 19: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysMIDP Development Tools

● Sun J2ME Wireless Toolkit (SolarisTM platform, Linux, and Win32):– Standalone or – Plugged into Sun ONE Studio

Mobile Edition IDE● Numerous third party tools

(Borland/Nokia,Metrowerks/Motorola, Siemens, etc.)

● Emulators and tools for local provisioning

Page 20: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDays

Additional / ForthcomingJ2ME Standards

Page 21: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysAdditional J2ME Standards Efforts

● There are various standardization efforts to define APIs on top of CLDC and MIDP:– JSR 82: Java API for Bluetooth Wireless Technology– JSR 120/205: Wireless Messaging API– JSR 135: J2ME Mobile Media API– JSR 172: J2ME Web Services– JSR 179: Location API for J2ME– JSR 184: J2ME Mobile 3D Graphics API– JSR 195/228: J2ME Information Module Profile– JSR 226: J2ME Scalable 2D Vector Graphics API

==========– JSR 185: Java Technology for the Wireless Instrustry

Page 22: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysWhat's Next? JTWI

There are so many new APIs coming... ...which APIs are we going to see as the

base APIs in the forthcoming devices (after the current MIDP 2.0 devices)?

There is an “umbrella” effort called JTWI (Java Technology for the Wireless Industry) that is defining the roadmap.

Defined jointly by 18 major device manufacturers and operators.

Page 23: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysJTWI Specification

A separate agreement and specification to● agree on set of core APIs● agree on clarifications of core APIs

Components of JTWI● CLDC (1.0 or 1.1)● MIDP 2.0● WMA (Wireless Messaging API)● Multimedia API

Page 24: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDays

How to Get Started?

Page 25: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysHow to Get Started?

● Learn programming and Java(Tommi can help you in this :-)

● Download the CLDC and MIDP specs(jcp.org, java.sun.com, nokia.com, ....)

● Or buy Antero's book :-)

● Download the tools– Compilation against MIDP libraries– JAR & JAR creation– Emulator

Page 26: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDays

Conclusions

Page 27: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysJ2ME™ Platform = Big Opportunity

150 million J2ME enabled devices in the world, increasing at 20+ million per month.

Over 200 different J2ME-enabled device modelsfrom 27 manufacturers (Sun, Sep 2003)

By 2007, nearly 100% of all handsets will be Java enabled (1.5 billion devices!) (ARC Group)

Java is the leading wireless development platform with 70 carrier deployments around the world, and growing (Sun, Sep 2003)

63 commercial J2ME licensees (Sun, Jan 2003) 200,000+ J2ME developers (Sun, Mar 2003)

Page 28: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysSummary

MIDP 2.0 is a feature rich upgrade of MIDP 1.0 with new features including: Fine-grained security model (Trusted MIDlets) New connection types including secure connections New Game and Sound APIs New UI objects for easier programming

Many additional APIs coming

The forthcoming JTWI standard will bundle together all the key APIs.

Page 29: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDaysDevelopment Resources

Sun Wireless Developer site: http://wireless.java.sun.com

J2ME™ Platform homepage: http://java.sun.com/j2me

Download the Sun J2ME Wireless Toolkit: http://java.sun.com/products/j2mewtoolkit

Learn more about specific J2ME devices: http://wireless.java.sun.com/device

Guides, Tools, ...http://forum.nokia.com

And – there is a lot more:www.google.com

Page 30: Joko Java kiehuu kännykässä? - TUNI · – JSR 120/205: Wireless Messaging API – JSR 135: J2ME Mobile Media API – JSR 172: J2ME Web Services – JSR 179: Location API for J2ME

Push your development furtherSun™TechDays

Questions?