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 Smalltalk, Java Open source guy jMechanic, EclipseME, ZeeME Cell Phone Geek
Why do I need something different for Mobile Devices?
Java ™ 2 Platform, Micro Edition (J2ME programming model introduced to standardize programming for embedded devices ™ ) is the 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, processing speed, screen size Memory is severely constrained 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 Eclipse Public License Philosophies: Release early, release often Open source can be professional and polished Sourceforge hosted http://eclipseme.org
flexibility is hosted elsewhere for added 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 Preprocessing support Batch build for multiple device definitions Lots of new device support Palm, Blackberry, etc.
Ongoing support for new versions of previous devices New tools 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
Ask away…