Transcript Document
EclipseME
Java Micro Edition
The Eclipse Way
Craig Setera
[email protected]
April 19, 2006
Agenda
Who Am I?
About J2ME
J2ME pain
Other J2ME tools
Eclipse Features
EclipseME
Basics
Features
Development and development challenges
Demo
Futures
Who Am I?
15+ years software in industry
15+ years of Object Oriented
programming
Open source guy
Smalltalk, Java
jMechanic, EclipseME, ZeeME
Cell Phone Geek
Why do I need something different
for Mobile Devices?
Java™ 2 Platform, Micro Edition (J2ME™) is the
programming model introduced to standardize
programming for embedded devices
Specifications are designed as part of the Java
Community Process (JCP)
J2ME is a family of specifications, designed as a
series of layered APIs
Configuration
Profiles
Optional APIs
Optional APIs
Profile
Configuration
JVM
The Pain of Java ME
Small subset of J2SE libraries
Some additional micro edition libraries
Preverification
Classes must be pre-verified
The same process as split verification in J2SE
Mustang
The Pain of Java ME
Device Fragmentation
Each device has its own constraints
Memory is severely constrained
Memory, processing speed, screen size
Use of obfuscation to control library size
Each device has its own set of quirks
Most development is emulated
Too many devices to develop for all
Emulators and devices often don’t match behavior (or bugs)
Most real devices do not support debugging
The Pain of J2ME
Deployment
Runtime deployment
Execution code deployment
Some devices require new frameworks
Example: IBM J9 environment
Connection environments
Network
Direct connects (USB, serial, bluetooth, etc)
Over the air (OTA)
What J2ME tools are out there
already?
Eclipse Based Toolsets
IBM® WebSphere® Studio Device Developer
Nokia Developer’s Suite for J2ME
Other SDKs that extend these or existing functionality
Non-Eclipse Based Toolsets
NetBeans with Mobility Pack
Sun Java Wireless Toolkit
Borland jBuilder Mobile Edition
Other SDKs
What Makes Eclipse Unique?
Incremental build support
Eclipse provides a compiler that understands
structural changes
Only compiles dependencies as necessary
Automatically compiles changed files
Plug-in ability
Provides ability to extend all aspects of the Eclipse
platform
Provides ability to add new “builders”
What is EclipseME?
History
Needed Eclipse tools for programming my cell
phone
Couldn’t find anything at the time, thus EclipseME
was born
Sourceforge project
Started in July 2003
29 released versions
Nearly 200,000 downloads
What is EclipseME?
Basic Functions
Glue between Eclipse and J2ME toolkits
Plug-ins into Eclipse providing extensions to
the Java Development Tools (JDT)
A goal of seamless integration for Java ME
development
Incremental preverification Eclipse builder
Emulator run and debug launch integration
What is EclipseME?
Features
Multiple wireless toolkit support
Wireless toolkit preferences
Platform component and definition support
Create new J2ME Midlet Suite Project
Create new MIDlet
Java Application Descriptor (JAD) editor
Automatic incremental preverification
Eclipse launch support for Emulator
MIDlet debugging support
JAR and obfuscated JAR packaging
Over the air deployment testing server
Export Antenna build files
Automatic MIDlet signing
What is EclipseME?
Extensible Platform
A minimal platform for extension
Extension points for adding new wireless
toolkit definitions
Extension points for defining device editors
EclipseME is more tool than platform
EclipseME
“Professional” Open Source
Good free support
Mailing lists
Bug tracker
Enhancement request tracker
Polished functionality
Polished and accurate help
Polished and accurate web site
EclipseME Development
Open-source
Philosophies:
Release early, release often
Open source can be professional and polished
Sourceforge hosted
Eclipse Public License
http://eclipseme.org is hosted elsewhere for added
flexibility
2 person team with benevolent dictator
EclipseME Challenges
“Keeping up with the Jones'”
Eclipse tools are a moving target
Wireless Toolkit vendors are a moving target
Team Management
Balance is tough
It is tough to give the “good” work away
It is tough to give up creative control
It is tough to do everything with one person
The “real world” gets in the way
Managing to find time for EclipseME can be difficult
sometimes
Why Open Source?
Benefit from other projects
I’ve personally benefitted from other open
source
My employers have benefitted
It is interesting and scratches an itch
If done well, it is good publicity
Good for “networking”
Good for job offers
Demo
Manage devices
Create Midlet suite
Create midlet
Application Descriptor Editor
Debug midlet
Packaging support
Future of EclipseME
New Features
Addressing Device Fragmentation
Lots of new device support
Palm, Blackberry, etc.
Ongoing support for new versions of previous devices
New tools
Preprocessing support
Batch build for multiple device definitions
J2MEUnit, J2ME Polish
Web Service stub generation
Bugs, bugs and bugs
Future of EclipseME
Eclipse Mobile Tools for Java Project
An official Eclipse Foundation project
Formed by Nokia and IBM
EclipseME is involved in MTJ
I am on the Project Management Committee
I am providing architecture, design and implementation
direction
MTJ is using EclipseME code
EclipseME will eventually be replaced by MTJ
EclipseME users will be migrated to MTJ
EclipseME may still be a layer on top of MTJ
References
Eclipse
http://www.eclipse.org
EclipseME
http://eclipseme.org
http://sourceforge.net/projects/eclipseme/
EclipseME—Another IDE Option for J2ME Development
Jim White
http://www.devx.com/wireless/Article/29233
Eclipse Mobile Tools for Java
http://www.eclipse.org/dsdp/mtj/
Thank You!
Thanks to Jim White
For a great EclipseME article
For putting me in contact with Jeff Jensen
Thanks to Jeff Jensen for inviting me
Thanks to TCJUG for having me
Q&A
Ask away…