Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should...

24
Java ME Next Generation for Mobile Devices Darryl Mocek Staff Engineer Sun Microsystems, Inc. John Jones Product Development Engineer Sprint Corp.

Transcript of Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should...

Page 1: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

Java ME Next Generation for Mobile Devices

Darryl MocekStaff EngineerSun Microsystems, Inc.

John JonesProduct Development EngineerSprint Corp.

Page 2: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 2

Agenda

Introduction to Sprint Next Generation SpecificationSolutions from Sun Microsystems, Inc.Dynamic Services - OSGI/OMA-DMToolkit ArchitectureEmulator, Real Device Support, and NetBeansTM

DemosQ & A

Page 3: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 3

Sprint / Sun to Deliver New CLDC/MIDP Platform

Sun will be the JVMTM of choice for all Sprint Feature phones based on Sprint's Java 4.0 SpecsNew features include JSR 239 and JSR 256New support for JSR 180, JSR 211, JSR 229JVM machine includes the Lightweight UI Toolkit. Performance improvementsIDEN Parity• Reduce application porting effort from IDEN CDMA• Deliver consistent platform for IDEN

Page 4: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 4

Introduction to Sprint Next Generation Specification

Targeted for “smartphones”• More memory, CPU, graphics capabilities• Managed device integration• Legacy MIDlet support

Target Platform Footprint• Sprint Titan Specification• 64 MB RAM & ROM (128MB desirable)• MIDP/CDC/JSROP• ~8MB Romized (cvmi.dll)

Page 5: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 5

Application Models

CLDC• MIDlets

CDC• OSGi Bundles• Xlets• Web Apps

Page 6: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 6

Sprint Titan platform – Initial releaseApplicationConnectivity

PersonalInformation

CommsMediaMisc

VirtualMachine

ApplicationEnvironment

JSR 179*Location

JSR 172Web Services

JSR 75PIM & File

JSR 218CDC 1.1

JSR 226SVG

JSR 238Mobile I18N JSR 135

Mobile Media

JSR 118MIDP 2.0/2.1

JSR 219FP 1.1

JSR 120SMS

Messaging

JSR 248MSA subset

Clarifications

Sprint Extensions 2.1

JSR 139CLDC 1.1

Page 7: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 7

Sprint Specification Stack Next Release

ApplicationEnvironment

VirtualMachine

JSR 234MM API

JSR 1843D API

JSR 239OpenGL ES

Media

JSR 84Bluetooth

Comms

JSR 177SATSA

Security ApplicationConnectivity

JSR 180SIP

Other

JSR 211CHAPI

JSR 229Payment

Page 8: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 8

Native Platforms Supported

First Release• BREW

Possibly Release• WinMobile 5• WinMobile 6• Linux/ARM• Linux/x86 (as needed)

Page 9: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 9

Architecture of Sun's Solution

CDC/MIDPJSR Optional PackagesOSGi IntegrationBenefits• Single-stack solution• OSGI/OMA Features

CVMJava ME CDC Java ME CLDC

Foundation Profile

API Hiding Classloader

MSA JSR'sOSGi

MIDP

Page 10: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 10

CLDC Compatibility● CDC is a superset of CLDC● Includes support for GCF● CLDC Profiles and optional

packages can be implemented on CDC*

● Applications written to those profiles should be portable across configurations

● CDC APIs are a subset of Java Platform, Standard Edition 1.4.2 (Java SE 1.4.2)

*CLDC profiles and optional packages compatibility requirements may apply

J SE٢

CDCCLDC

Java ME

Page 11: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 11

The CVM Virtual Machine

Basis for Java ME platform CDC and profiles• CVM is a VM implementation for consumer and embedded systems

• Complete Java 2 VM software Specification compliant• Designed from the start to:

• Have a small footprint• Be modular• Be tunable• Be portable

Page 12: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 12

CDC API's

java.iojava.lang

java.netjava.security

java.textjava.util

CDC API's

Foundation Profile API's java.textjava.util

java.netjava.security

java.iojava.lang

Page 13: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 13

API Hiding Classloader

Key technology to ensure MIDlets access only specification compliant interfaces• Enables CDC and CLDC based applications to run in the same process• MIDP 2.1/CLDC 1.1 for legacy MIDlets

• MIDP Implementation class loader• MIDlet class loader

• JSR Optional Packages for appropriate execution context• Initially restricted to MIDP behaviors

Page 14: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 14

Dynamic Services – OSGI/OMA-DM

OSGi – Open Services Gateway Initiative• Dynamic services platform• Write services that reside on the phone and interact with the user

through the browser• Write background daemons• Dynamically download components needed by the application

OMA-DM - Object Management Association Device Management• Push updates to all devices• Manage device remotely

Page 15: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 15

OSGi Integration

Initial Sun prototype: OSGi Core and MEG library• Uses OSGi application registry• Supports concurrent MIDlet execution

• HOME key to access running MIDlets

• Push registry implemented as OSGi service bundle• Supports JSR 120 WMA SMS push connections• Supports MIDP alarm-based MIDlet startup

Benefits of single-process VM implementation• Better runtime code sharing• Better runtime performance

Page 16: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 16

On Device Debugging/Profiling

NetBeans software debugging supported• Other debuggers should work, but not yet verified

Profiling supported• Requires NetBeans changes not yet been integrated• IDEs need to provide profiling DLL which runs on the device

Page 17: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 17

Toolkit Architecture

Page 18: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 18

Emulator

Uses the same Java platform stack as devicesMultiple emulators can run networked (WMA, Bluetooth)External event generationFaster then existing emulators

Page 19: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 19

Toolkit & Real Devices

Automatic device detection (ActiveSync)• Connect via USB, serial port, Bluetooth

Output redirection• NetBeans IDE integration

• Easy deploy and start of applications• Same on emulator and devices

On-device debugging• Same on emulator and devices• Manages multiple emulator and device sessions• CVM supports Java Debug Wire Protocol software (JDWP software) • Standard debugging actions: set/cancel breakpoints, step into, step

over, continue

Page 20: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 20

IDE (NetBeans) Integration

UEI compliantRecognized as MIDP/CLDC platformEmulator and devices can be accessed from an IDEOSGi Browser• NetBeans software plugin• Hierarchical view of devices/emulators, and bundles installed on them• Can start and stop installed bundles• Indicates the state of bundles

Page 21: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 21

Demo of the NextGen Platform

Page 22: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 22

Shared Source Repositories

Unemcumbered implementation on java.net• http://phoneme.dev.java.net

Common code shared across several products• PhoneME Feature• PhoneME Advanced• Wireless Toolkit for Titan

Page 23: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 23

More Information

Download Sun's prototype Titan implementation• http://developers.sun.com/mobility/community/sprint-

adp/downloads/index.jsp

Send your feedback and questions• [email protected]

Page 24: Java ME Next Generation for Mobile Devices...on CDC* Applications written to those profiles should be portable across configurations CDC APIs are a subset of Java Platform, Standard

2008 JavaOneSM Conference | java.sun.com/javaone | 24

Darryl MocekStaff EngineerSun Microsystems, Inc.

John JonesProduct Development Engineer

Sprint Corp.

Q & A