Top Banner
EclipseME EclipseME Java Micro Edition Java Micro Edition The Eclipse Way The Eclipse Way Craig Setera Craig Setera [email protected] [email protected] April 19, 2006 April 19, 2006
23

EclipseME Java Micro Edition The Eclipse Way Craig Setera [email protected] April 19, 2006.

Dec 25, 2015

Download

Documents

Dustin Chandler
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

EclipseMEEclipseME

Java Micro EditionJava Micro EditionThe Eclipse WayThe Eclipse Way

Craig SeteraCraig [email protected]@users.sourceforge.net

April 19, 2006April 19, 2006

Page 2: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

AgendaAgenda

Who Am I?Who Am I? About J2MEAbout J2ME

J2ME painJ2ME pain Other J2ME toolsOther J2ME tools Eclipse FeaturesEclipse Features EclipseMEEclipseME

BasicsBasics FeaturesFeatures Development and development challengesDevelopment and development challenges DemoDemo FuturesFutures

Page 3: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

Who Am I?Who Am I?

15+ years software in industry15+ years software in industry 15+ years of Object Oriented 15+ years of Object Oriented

programmingprogramming Smalltalk, JavaSmalltalk, Java

Open source guyOpen source guy jMechanic, EclipseME, ZeeMEjMechanic, EclipseME, ZeeME

Cell Phone GeekCell Phone Geek

Page 4: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

Why do I need something Why do I need something different for Mobile Devices?different for Mobile Devices?

Java™ 2 Platform, Micro Edition (J2ME™) Java™ 2 Platform, Micro Edition (J2ME™) is the programming model introduced to is the programming model introduced to standardize programming for embedded standardize programming for embedded devicesdevices

Specifications are designed as part of the Specifications are designed as part of the Java Community Process (JCP)Java Community Process (JCP)

J2ME is a family of specifications, designed J2ME is a family of specifications, designed as a series of layered APIsas a series of layered APIs ConfigurationConfiguration ProfilesProfiles Optional APIs Optional APIs

JVM

Configuration

Profile

Optional APIs

Page 5: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

The Pain of Java METhe Pain of Java ME

Small subset of J2SE librariesSmall subset of J2SE libraries Some additional micro edition librariesSome additional micro edition libraries

PreverificationPreverification Classes must be pre-verifiedClasses must be pre-verified The same process as split verification in The same process as split verification in

J2SE MustangJ2SE Mustang

Page 6: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

The Pain of Java METhe Pain of Java ME

Device FragmentationDevice Fragmentation Each device has its own constraintsEach device has its own constraints

Memory, processing speed, screen sizeMemory, processing speed, screen size Memory is severely constrainedMemory is severely constrained

Use of obfuscation to control library sizeUse of obfuscation to control library size Each device has its own set of quirksEach device has its own set of quirks

Most development is emulatedMost development is emulated Too many devices to develop for allToo many devices to develop for all

Emulators and devices often don’t match behavior (or Emulators and devices often don’t match behavior (or bugs)bugs)

Most real devices do not support debuggingMost real devices do not support debugging

Page 7: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

The Pain of J2METhe Pain of J2ME

DeploymentDeployment Runtime deploymentRuntime deployment Execution code deploymentExecution code deployment

Some devices require new frameworksSome devices require new frameworks Example: IBM J9 environmentExample: IBM J9 environment

Connection environmentsConnection environments NetworkNetwork Direct connects (USB, serial, bluetooth, etc)Direct connects (USB, serial, bluetooth, etc) Over the air (OTA)Over the air (OTA)

Page 8: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

What J2ME tools are out there What J2ME tools are out there already?already?

Eclipse Based ToolsetsEclipse Based Toolsets IBM® WebSphere® Studio Device DeveloperIBM® WebSphere® Studio Device Developer Nokia Developer’s Suite for J2MENokia Developer’s Suite for J2ME Other SDKs that extend these or existing Other SDKs that extend these or existing

functionalityfunctionality Non-Eclipse Based ToolsetsNon-Eclipse Based Toolsets

NetBeans with Mobility PackNetBeans with Mobility Pack Sun Java Wireless ToolkitSun Java Wireless Toolkit Borland jBuilder Mobile EditionBorland jBuilder Mobile Edition Other SDKsOther SDKs

Page 9: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

What Makes Eclipse Unique?What Makes Eclipse Unique?

Incremental build supportIncremental build support Eclipse provides a compiler that understands Eclipse provides a compiler that understands

structural changesstructural changes Only compiles dependencies as necessaryOnly compiles dependencies as necessary Automatically compiles changed filesAutomatically compiles changed files

Plug-in abilityPlug-in ability Provides ability to extend all aspects of the Provides ability to extend all aspects of the

Eclipse platformEclipse platform Provides ability to add new “builders”Provides ability to add new “builders”

Page 10: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

What is EclipseME?What is EclipseME?

HistoryHistory Needed Eclipse tools for programming Needed Eclipse tools for programming

my cell phonemy cell phone Couldn’t find anything at the time, thus Couldn’t find anything at the time, thus

EclipseME was bornEclipseME was born Sourceforge projectSourceforge project Started in July 2003Started in July 2003

29 released versions29 released versions Nearly 200,000 downloadsNearly 200,000 downloads

Page 11: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

What is EclipseME?What is EclipseME?Basic FunctionsBasic Functions

Glue between Eclipse and J2ME toolkitsGlue between Eclipse and J2ME toolkits Plug-ins into Eclipse providing extensions to Plug-ins into Eclipse providing extensions to

the Java Development Tools (JDT)the Java Development Tools (JDT) A goal of seamless integration for Java ME A goal of seamless integration for Java ME

developmentdevelopment Incremental preverification Eclipse builderIncremental preverification Eclipse builder Emulator run and debug launch integrationEmulator run and debug launch integration

Page 12: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

What is EclipseME?What is EclipseME?FeaturesFeatures

Multiple wireless toolkit supportMultiple wireless toolkit support Wireless toolkit preferences Wireless toolkit preferences Platform component and definition support Platform component and definition support Create new J2ME Midlet Suite ProjectCreate new J2ME Midlet Suite Project Create new MIDletCreate new MIDlet Java Application Descriptor (JAD) editorJava Application Descriptor (JAD) editor Automatic incremental preverificationAutomatic incremental preverification Eclipse launch support for EmulatorEclipse launch support for Emulator MIDlet debugging supportMIDlet debugging support JAR and obfuscated JAR packagingJAR and obfuscated JAR packaging Over the air deployment testing serverOver the air deployment testing server Export Antenna build filesExport Antenna build files Automatic MIDlet signing Automatic MIDlet signing

Page 13: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

What is EclipseME?What is EclipseME?Extensible PlatformExtensible Platform

A minimal platform for extensionA minimal platform for extension Extension points for adding new wireless Extension points for adding new wireless

toolkit definitionstoolkit definitions Extension points for defining device Extension points for defining device

editorseditors EclipseME is more tool than platformEclipseME is more tool than platform

Page 14: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

EclipseMEEclipseME“Professional” Open Source“Professional” Open Source

Good free supportGood free support Mailing listsMailing lists Bug trackerBug tracker Enhancement request trackerEnhancement request tracker

Polished functionalityPolished functionality Polished and accurate helpPolished and accurate help Polished and accurate web sitePolished and accurate web site

Page 15: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

EclipseME DevelopmentEclipseME Development

Open-sourceOpen-source Eclipse Public LicenseEclipse Public License

Philosophies:Philosophies: Release early, release oftenRelease early, release often Open source can be professional and polishedOpen source can be professional and polished

Sourceforge hostedSourceforge hosted http://eclipseme.orghttp://eclipseme.org is hosted elsewhere for is hosted elsewhere for

added flexibilityadded flexibility 2 person team with benevolent dictator2 person team with benevolent dictator

Page 16: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

EclipseME ChallengesEclipseME Challenges

““Keeping up with the Jones'”Keeping up with the Jones'” Eclipse tools are a moving targetEclipse tools are a moving target Wireless Toolkit vendors are a moving targetWireless Toolkit vendors are a moving target

Team ManagementTeam Management Balance is toughBalance is tough

It is tough to give the “good” work awayIt is tough to give the “good” work away It is tough to give up creative controlIt is tough to give up creative control It is tough to do everything with one personIt is tough to do everything with one person

The “real world” gets in the wayThe “real world” gets in the way Managing to find time for EclipseME can be Managing to find time for EclipseME can be

difficult sometimesdifficult sometimes

Page 17: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

Why Open Source?Why Open Source?

Benefit from other projectsBenefit from other projects I’ve personally benefitted from other I’ve personally benefitted from other

open sourceopen source My employers have benefittedMy employers have benefitted

It is interesting and scratches an itchIt is interesting and scratches an itch If done well, it is good publicityIf done well, it is good publicity

Good for “networking”Good for “networking” Good for job offersGood for job offers

Page 18: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

DemoDemo

Manage devicesManage devices Create Midlet suiteCreate Midlet suite Create midletCreate midlet Application Descriptor EditorApplication Descriptor Editor Debug midletDebug midlet Packaging supportPackaging support

Page 19: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

Future of EclipseMEFuture of EclipseME

New FeaturesNew Features Addressing Device FragmentationAddressing Device Fragmentation

Preprocessing supportPreprocessing support Batch build for multiple device definitionsBatch build for multiple device definitions

Lots of new device supportLots of new device support Palm, Blackberry, etc.Palm, Blackberry, etc. Ongoing support for new versions of previous devicesOngoing support for new versions of previous devices

New toolsNew tools J2MEUnit, J2ME PolishJ2MEUnit, J2ME Polish Web Service stub generationWeb Service stub generation

Bugs, bugs and bugsBugs, bugs and bugs

Page 20: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

Future of EclipseMEFuture of EclipseME

Eclipse Mobile Tools for Java ProjectEclipse Mobile Tools for Java Project An official Eclipse Foundation projectAn official Eclipse Foundation project Formed by Nokia and IBMFormed by Nokia and IBM EclipseME is involved in MTJEclipseME is involved in MTJ

I am on the Project Management CommitteeI am on the Project Management Committee I am providing architecture, design and I am providing architecture, design and

implementation directionimplementation direction MTJ is using EclipseME codeMTJ is using EclipseME code

EclipseME will eventually be replaced by MTJEclipseME will eventually be replaced by MTJ EclipseME users will be migrated to MTJEclipseME users will be migrated to MTJ EclipseME may still be a layer on top of MTJEclipseME may still be a layer on top of MTJ

Page 21: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

ReferencesReferences

EclipseEclipse http://www.eclipse.orghttp://www.eclipse.org

EclipseMEEclipseME http://eclipseme.orghttp://eclipseme.org http://sourceforge.net/projects/eclipseme/http://sourceforge.net/projects/eclipseme/ EclipseME—Another IDE Option for J2ME Development EclipseME—Another IDE Option for J2ME Development

Jim WhiteJim White http://www.devx.com/wireless/Article/29233http://www.devx.com/wireless/Article/29233

Eclipse Mobile Tools for JavaEclipse Mobile Tools for Java http://www.eclipse.org/dsdp/mtj/http://www.eclipse.org/dsdp/mtj/

Page 22: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

Thank You!Thank You!

Thanks to Jim White Thanks to Jim White For a great EclipseME articleFor a great EclipseME article For putting me in contact with Jeff For putting me in contact with Jeff

JensenJensen Thanks to Jeff Jensen for inviting meThanks to Jeff Jensen for inviting me Thanks to TCJUG for having meThanks to TCJUG for having me

Page 23: EclipseME Java Micro Edition The Eclipse Way Craig Setera setera@users.sourceforge.net April 19, 2006.

Q&AQ&A

Ask away…Ask away…