Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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…