EclipseME Java Micro Edition The Eclipse Way Craig Setera April 19, 2006.

Slides:



Advertisements
Similar presentations
Copyright © 2006 Eclipse Foundation, Inc., Made available under the Eclipse Public License v 1.01 Mobile Tools for the Java Platform (MTJ) The scope of.
Advertisements

1 Pulsar The Eclipse Mobile Industry Working Group & Sequoyah Nov 6, 2010 Mailing listMailing list:
.NET Technology. Introduction Overview of.NET What.NET means for Developers, Users and Businesses Two.NET Research Projects:.NET Generics AsmL.
Extending Eclipse Kai-Uwe Mätzel IBM OTI Labs Zurich
RDz and Process Integration Using Menu Manager and HATS to customize your RDz installation David Myers.
Web Toolkit Julie George & Ronald Lopez 1. Requirements  Java SDK version 1.5 or later  Apache Ant is also necessary to run command line arguments 
Pengantar Teknologi Mobile 12
Introduction of J2ME Mobile solutions. Overview What is J2ME. How does J2ME work? Java J2ME Carriers and Products. The Two Configuration of J2ME. Profiles.
Programming with Android: SDK install and initial setup Luca Bedogni Marco Di Felice Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna.
Dirk van Schalkwyk Supervisor: Prof Greg Foster Co-Supervisor: Mrs Madeleine Wright Project Title: A Comparative Study of JME and Flash Lite for Mobile.
Writing Your First MIDlet Running JAVA on a Cell Phone Jon A. Batcheller January 27, 2004.
UNDERSTANDING JAVA APIS FOR MOBILE DEVICES v0.01.
Cosc 4730 Installing IDEs And a note on carriers..
DEPARTMENT OF COMPUTER ENGINEERING
© 2009 Research In Motion Limited Advanced Java Application Development for the BlackBerry Smartphone Trainer name Date.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of The Eclipse Web Tools Platform.
J2ME Prepared by: - Gaery- Ronny - Alan- Andy. Why Technology for Mobile Devices? The nature of wireless devices is changing Old devices: All the software.
Eclipse Introduction Dwight Deugo Nesa Matic
Making Cell Phone Games An Overview Ray Ratelis Guild Software, Inc.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
For more Lectures and Notes Visit
Java 2 Platform, Micro Edition (J2ME) By Xiaorong Wang.
SM3121 Software Technology Mark Green School of Creative Media.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
01 Introduction to Java Technology. 2 Contents History of Java What is Java? Java Platforms Java Virtual Machine (JVM) Java Development Kit (JDK) Benefits.
LESSON 1 INTRODUCTION Compiled By: Edwin O. Okech [Tutor, Amoud University] JAVA PROGRAMMING.
Understanding and Managing WebSphere V5
WebSphere Studio Portal Toolkit Overview April/2003 Reginaldo Barosa.
Advanced OOP MCS-3 OOP BSCS-3 Lecture # 1
Android Introduction Platform Overview.
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
Getting Started with JXTA for J2ME Advisor : Dr. Ching-Long Yeh Report : DI.2, 洪泰昌 ( ) Course: XML 文件管理.
Duke University Program Design & Construction Course Application Development Tools Sherry Shavor
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Programming Languages Machine.
AUTOBUILD Build and Deployment Automation Solution.
Small Devices on DBGlobe System George Samaras Chara Skouteli.
Framework and application bytecode size CLDC MIDP kXML parser Utility classes Graphics Logic (MIDlet) Application Data (XML file)
Computer Science Wi-Fi App using J2ME and MVC Architecture Advisor : Dr. Chung-E Wang Department of Computer Science Sacramento State University Date:
J2ME Presented by May Sayed & Menna Hawash. Outline Introduction “Java Technology” Introduction “What is J2ME?” J2ME Architecture J2ME Core Concepts 
INTRODUCTION TO JAVA AND ANDROID. Slide 2 Our Ecosystem Java Eclipse Android SDK.
Distributed Java Programming Distributed Java Programming Setting up a Java Development Environment.
DEV-8: OpenEdge® Architect – Extensibility & Third Party Integration Sunil Belgaonkar Principal Software Engineer Architect Phillip Magnay.
BlackBerry Application Development 06PLM – Group 7 Andrian Eduard Bangga Ikhsan Baskara Joovanny Pasuhuk Rangga Fajarullah.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary June, 2011 Made available under the Eclipse Public License v Mobile.
INTRODUCTION TO JAVA AND ANDROID. Slide 2 Our Ecosystem Java Eclipse Android SDK.
Presentation 11: SOAP on small devices. Ingeniørhøjskolen i Århus Slide 2 af 10 Outline Which small devices? What are the limitations and what kind of.
Presentation 11: SOAP on small devices. Ingeniørhøjskolen i Århus Slide 2 af 10 Outline Which small devices? What are the limitations and what kind of.
Mobile Programming Mobile Programming - Ordibehesht Ordibehesht 1390.
Best 5 Mobile App Development Tools for Developer's to think beyond the Limitation.
Enhanced mobile services in Java enabled phones Björn Hjelt Sonera zed ltd Supervisor: Professor Jorma Jormakka.
Introduction to JAVA Programming
DEV-21: Embracing OpenEdge ® Architect Sunil S Belgaonkar Software Architect.
Android. Android An Open Handset Alliance Project A software platform and operating system for mobile devices Based on the Linux kernel Developed by Google.
Advance Computer Programming Market for Java ME The Java ME Platform – Java 2 Micro Edition (J2ME) combines a resource- constrained JVM and a set of Java.
Visual Mobile Applications with Netbeans 6.0 Your Name Sun Campus Ambassador Your Address.
Copyright © 2007 Eclipse Foundation, Inc., Made available under the Eclipse Public License v What is Eclipse?  Wayne Beaton, Eclipse Foundation,
Visual Mobile Gaming Your Name Sun Campus Ambassador Your Address.
Introduction ITEC 420.
Java N Amanquah.
Part II Software When developing software there are several particularities to be aware of: Java is widespread used because of the platform independence.
Introduction to Advanced Java Programming
BlackBerry Application Development
Wireless Instant Messaging Using J2ME
By Jeff Heaton An Overview of J2ME By Jeff Heaton
DSDP Mobile Tools for Java 1
Draft Proposal for an Eclipse Mobile Development Suite Architecture
Execute your Processes
Presentation transcript:

EclipseME Java Micro Edition The Eclipse Way Craig Setera April 19, 2006

Agenda Who Am I? Who Am I? About J2ME About J2ME J2ME pain J2ME pain Other J2ME tools Other J2ME tools Eclipse Features Eclipse Features EclipseME EclipseME Basics Basics Features Features Development and development challenges Development and development challenges Demo Demo Futures Futures

Who Am I? 15+ years software in industry 15+ years software in industry 15+ years of Object Oriented programming 15+ years of Object Oriented programming Smalltalk, Java Smalltalk, Java Open source guy Open source guy jMechanic, EclipseME, ZeeME jMechanic, EclipseME, ZeeME Cell Phone Geek 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 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) Specifications are designed as part of the Java Community Process (JCP) J2ME is a family of specifications, designed as a series of layered APIs J2ME is a family of specifications, designed as a series of layered APIs Configuration Configuration Profiles Profiles Optional APIs Optional APIs JVM Configuration Profile Optional APIs

The Pain of Java ME Small subset of J2SE libraries Small subset of J2SE libraries Some additional micro edition libraries Some additional micro edition libraries Preverification Preverification Classes must be pre-verified Classes must be pre-verified The same process as split verification in J2SE Mustang The same process as split verification in J2SE Mustang

The Pain of Java ME Device Fragmentation Device Fragmentation Each device has its own constraints Each device has its own constraints Memory, processing speed, screen size Memory, processing speed, screen size Memory is severely constrained Memory is severely constrained Use of obfuscation to control library size Use of obfuscation to control library size Each device has its own set of quirks Each device has its own set of quirks Most development is emulated Most development is emulated Too many devices to develop for all Too many devices to develop for all Emulators and devices often don’t match behavior (or bugs) Emulators and devices often don’t match behavior (or bugs) Most real devices do not support debugging Most real devices do not support debugging

The Pain of J2ME Deployment Deployment Runtime deployment Runtime deployment Execution code deployment Execution code deployment Some devices require new frameworks Some devices require new frameworks Example: IBM J9 environment Example: IBM J9 environment Connection environments Connection environments Network Network Direct connects (USB, serial, bluetooth, etc) Direct connects (USB, serial, bluetooth, etc) Over the air (OTA) Over the air (OTA)

What J2ME tools are out there already? Eclipse Based Toolsets Eclipse Based Toolsets IBM ® WebSphere ® Studio Device Developer IBM ® WebSphere ® Studio Device Developer Nokia Developer’s Suite for J2ME Nokia Developer’s Suite for J2ME Other SDKs that extend these or existing functionality Other SDKs that extend these or existing functionality Non-Eclipse Based Toolsets Non-Eclipse Based Toolsets NetBeans with Mobility Pack NetBeans with Mobility Pack Sun Java Wireless Toolkit Sun Java Wireless Toolkit Borland jBuilder Mobile Edition Borland jBuilder Mobile Edition Other SDKs Other SDKs

What Makes Eclipse Unique? Incremental build support Incremental build support Eclipse provides a compiler that understands structural changes Eclipse provides a compiler that understands structural changes Only compiles dependencies as necessary Only compiles dependencies as necessary Automatically compiles changed files Automatically compiles changed files Plug-in ability Plug-in ability Provides ability to extend all aspects of the Eclipse platform Provides ability to extend all aspects of the Eclipse platform Provides ability to add new “builders” Provides ability to add new “builders”

What is EclipseME? History History Needed Eclipse tools for programming my cell phone Needed Eclipse tools for programming my cell phone Couldn’t find anything at the time, thus EclipseME was born Couldn’t find anything at the time, thus EclipseME was born Sourceforge project Sourceforge project Started in July 2003 Started in July released versions 29 released versions Nearly 200,000 downloads Nearly 200,000 downloads

What is EclipseME? Basic Functions Glue between Eclipse and J2ME toolkits Glue between Eclipse and J2ME toolkits Plug-ins into Eclipse providing extensions to the Java Development Tools (JDT) Plug-ins into Eclipse providing extensions to the Java Development Tools (JDT) A goal of seamless integration for Java ME development A goal of seamless integration for Java ME development Incremental preverification Eclipse builder Incremental preverification Eclipse builder Emulator run and debug launch integration Emulator run and debug launch integration

What is EclipseME? Features Multiple wireless toolkit support Multiple wireless toolkit support Wireless toolkit preferences Wireless toolkit preferences Platform component and definition support Platform component and definition support Create new J2ME Midlet Suite Project Create new J2ME Midlet Suite Project Create new MIDlet Create new MIDlet Java Application Descriptor (JAD) editor Java Application Descriptor (JAD) editor Automatic incremental preverification Automatic incremental preverification Eclipse launch support for Emulator Eclipse launch support for Emulator MIDlet debugging support MIDlet debugging support JAR and obfuscated JAR packaging JAR and obfuscated JAR packaging Over the air deployment testing server Over the air deployment testing server Export Antenna build files Export Antenna build files Automatic MIDlet signing Automatic MIDlet signing

What is EclipseME? Extensible Platform A minimal platform for extension A minimal platform for extension Extension points for adding new wireless toolkit definitions Extension points for adding new wireless toolkit definitions Extension points for defining device editors Extension points for defining device editors EclipseME is more tool than platform EclipseME is more tool than platform

EclipseME “Professional” Open Source Good free support Good free support Mailing lists Mailing lists Bug tracker Bug tracker Enhancement request tracker Enhancement request tracker Polished functionality Polished functionality Polished and accurate help Polished and accurate help Polished and accurate web site Polished and accurate web site

EclipseME Development Open-source Open-source Eclipse Public License Eclipse Public License Philosophies: Philosophies: Release early, release often Release early, release often Open source can be professional and polished Open source can be professional and polished Sourceforge hosted Sourceforge hosted is hosted elsewhere for added flexibility is hosted elsewhere for added flexibility 2 person team with benevolent dictator 2 person team with benevolent dictator

EclipseME Challenges “Keeping up with the Jones'” “Keeping up with the Jones'” Eclipse tools are a moving target Eclipse tools are a moving target Wireless Toolkit vendors are a moving target Wireless Toolkit vendors are a moving target Team Management Team Management Balance is tough Balance is tough It is tough to give the “good” work away It is tough to give the “good” work away It is tough to give up creative control It is tough to give up creative control It is tough to do everything with one person It is tough to do everything with one person The “real world” gets in the way The “real world” gets in the way Managing to find time for EclipseME can be difficult sometimes Managing to find time for EclipseME can be difficult sometimes

Why Open Source? Benefit from other projects Benefit from other projects I’ve personally benefitted from other open source I’ve personally benefitted from other open source My employers have benefitted My employers have benefitted It is interesting and scratches an itch It is interesting and scratches an itch If done well, it is good publicity If done well, it is good publicity Good for “networking” Good for “networking” Good for job offers Good for job offers

Demo Manage devices Manage devices Create Midlet suite Create Midlet suite Create midlet Create midlet Application Descriptor Editor Application Descriptor Editor Debug midlet Debug midlet Packaging support Packaging support

Future of EclipseME New Features New Features Addressing Device Fragmentation Addressing Device Fragmentation Preprocessing support Preprocessing support Batch build for multiple device definitions Batch build for multiple device definitions Lots of new device support Lots of new device support Palm, Blackberry, etc. Palm, Blackberry, etc. Ongoing support for new versions of previous devices Ongoing support for new versions of previous devices New tools New tools J2MEUnit, J2ME Polish J2MEUnit, J2ME Polish Web Service stub generation Web Service stub generation Bugs, bugs and bugs Bugs, bugs and bugs

Future of EclipseME Eclipse Mobile Tools for Java Project Eclipse Mobile Tools for Java Project An official Eclipse Foundation project An official Eclipse Foundation project Formed by Nokia and IBM Formed by Nokia and IBM EclipseME is involved in MTJ EclipseME is involved in MTJ I am on the Project Management Committee I am on the Project Management Committee I am providing architecture, design and implementation direction I am providing architecture, design and implementation direction MTJ is using EclipseME code MTJ is using EclipseME code EclipseME will eventually be replaced by MTJ EclipseME will eventually be replaced by MTJ EclipseME users will be migrated to MTJ EclipseME users will be migrated to MTJ EclipseME may still be a layer on top of MTJ EclipseME may still be a layer on top of MTJ

References Eclipse Eclipse EclipseME EclipseME EclipseME—Another IDE Option for J2ME Development EclipseME—Another IDE Option for J2ME Development Jim White Jim White Eclipse Mobile Tools for Java Eclipse Mobile Tools for Java

Thank You! Thanks to Jim White Thanks to Jim White For a great EclipseME article For a great EclipseME article For putting me in contact with Jeff Jensen For putting me in contact with Jeff Jensen Thanks to Jeff Jensen for inviting me Thanks to Jeff Jensen for inviting me Thanks to TCJUG for having me Thanks to TCJUG for having me

Q&A Ask away… Ask away…