mtj taking mobile java developers to the next level
Post on 01-Dec-2014
1.589 Views
Preview:
DESCRIPTION
TRANSCRIPT
© 2002 IBM Corporation
Confidential | Date | Other Information, if necessaryJan 21, 2009 Copyright © 2009 Motorola Inc., Made available under the Eclipse Public License v 1.0
1
MTJTaking Mobile Java Developers to the Next Level
Christian KurzkeArchitect, Motorola Developer ToolsEclipse MTJ Project Lead
Craig Setera
EclipseME founder
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Abstract
This talk is targeted at
* J2ME developers who want to become more productive in their daily work * Java developers who can now create mobile applications from within their favorite IDE * Developers who want to extend and customize MTJ
Eclipse has long become the de-facto standard IDE for Java developers, and with the success of the newly released MTJ "Mobile Tools for Java" extensions, Eclipse is about to do the same in the Mobile Java application development space.
The DSDP Mobile Tools for Java (MTJ) project was created in 2005, and has since been providing extensions Eclipse to enhance the productivity of Mobile Application Developers.
In 2008 the MTJ project merged with the successful EclipseME mobile IDE project, resulting in a 0.9 release of MTJ in October 2008.
MTJ integrates with JavaME SDKs from all major device manufactures and include features such as:
* Build and package MIDlet Suite for deployment, * Run the MIDlet in one specific emulated device, * Debug the MIDlet in one specific emulated device.
Besides those device specific tasks, MTJ also enhances developer productivity by supporting common tasks such as:
* Built in pre-processor support for multiple target device support * Support for scripted ANT and ANTENNA builds * Packaging and Signing support
MTJ also helps the add-on developers. It provides a basic framework that can be used to customize some of MTJ main functionalities, such as the vendor-specific SDK integration and build process.
MTJ also has mechanisms which allow 3rd parties to package and distribute J2ME Libraries which can automatically be integrated into mobile development projects.
In this talk we will give a high level overview of the features of MTJ, and how it helps to increase the productivity of a Mobile Application Developers. This includes a hands on demo how to create, run and debug a J2ME application using MTJ.
At the end of the talk we will dive into more detail and explain how MTJ can be extended. We will demonstrate two common usecases:
* How to write simple adapters to add support for custom SDKs * How to package 3rd party libraries to publish them o MTJ projects.
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Agenda
Who should attend this talk
Why Java development for mobile devices is different
Eclipse Mobile Tools for Java Overview
MTJ for the Mobile Application Developer
MTJ for the Add-on provider
MTJ for the SDK Developer/Tools Vendor
Eclipse Mobile Working Group (Pulsar)
Summary
Copyright © 2009, Made available under the Eclipse Public License v 1.0
MTJ for Mobile Application Developers
Java is the most ubiquitous runtime platform for mobile devices:
Java 2 ME: Available on most phones in the market today
Andoid (with the Dalvik Java-like programming language)
Sprint Titan (Eclipse eRCP)
Eclipse is the leading IDE for Java development with support for the
end-to-end Development cycle of mobile applications
Project creation wizards (with device profile and library support)
Build tools integration (pre-verify, package, sign)
Runtime tools (Emulator control and on device deploy/debug)
Copyright © 2009, Made available under the Eclipse Public License v 1.0
MTJ for Add-in Providers
There are many existing Eclipse extensions (plug-ins) which can also be very useful for mobile developers.
Most JDT related plug-ins can be used already with MTJ(or can be easily adapted)
Profilers, Static Analyzers, etc
MTJ has Extension Points to allow 3rd party plug-ins to register new libraries with are available to developers.
Set up compile paths/packaging, etc
Good time for Add-in providers to join API discussions. Join us in the MTJ BOF session Get involved in Mobile Industry Working Group
Copyright © 2009, Made available under the Eclipse Public License v 1.0
MTJ for SDK creators, OEMs and mobile device manufacturers
MTJ is filling the void of tooling for many common “mobile” software development tasks:
Developers targeting a family of devices (touchscreen, keypad, etc)
Packaging, signing and deployment
Using MTJ gives you a headstart and allows to focus on device specific “value add” plug-ins
MTJ has a very flexible interface to integrate mobile device specific SDKs, emulators and proprietary build/deploy tools
Many off the shelf J2ME SDKs can be used with MTJ if they support the “Unified Emulator Interface” (UEI)
Other proprietary SDKs can be integrated by using the MTJ Device Import framework
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Agenda
Who should attend this talk
Why Java development for mobile devices is different
Eclipse Mobile Tools for Java Overview
MTJ for the Mobile Application Developer
MTJ for the Add-on provider
MTJ for the SDK Developer/Tools Vendor
Eclipse Mobile Working Group (Pulsar)
Summary
✔
Copyright © 2009, Made available under the Eclipse Public License v 1.0
What is special about Java development tools for mobile devices?
Many mobile device SDK’s are command-line based:
Special build tools to compact/pre-verify/sign applications
Start and control emulators, deploy debug etc.
General Purpose “Java IDEs” do not support those custom tasks. Developers often have to do manual configuration/integration
A truly “integrated” development environment can significantly increase developer productivity!
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Developing for a “portfolio” of mobile devices
More challenges for developers who target multiple devices.
Most devices support MIDP 2, but differences based on:
Device Capabilities (Screen Size, input keys, optional JSRs)
Carrier Restrictions (access to certain JSRs, Signing)
A good IDE will support the development, build, packaging, sign, deployment of applications to multiple phones
Integrate Solutions such as Antenna, possibly J2ME Polish etc.
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Agenda
Who should attend this talk
Why Java development for mobile devices is different
Eclipse Mobile Tools for Java Overview
MTJ for the Mobile Application Developer
MTJ for the Add-on provider
MTJ for the SDK Developer/Tools Vendor
Eclipse Mobile Working Group (Pulsar)
Summary
✔
✔
Copyright © 2009, Made available under the Eclipse Public License v 1.0
About IDEs and SDKs
A Software Development Kit (SDK) includes:
Build/Compile tools
Header files, libraries, anything needed for Compiling (and linking)
Other tools like: Packaging, signing, remote debugging, deployment tools, etc.
An Integrated Development Kit (IDE) includes:
An Editor, which interacts with the build environment to e.g.:
Highlight compile errors in Source Code, manage build files Integration of SDK
Allow “one click” build/package/deploy Integrate with the Emulator
Eclipse is the IDE, and Mobile Tools for Java (MTJ) is the integration “glue” to phone SDKs
Copyright © 2009, Made available under the Eclipse Public License v 1.0
The Unified Emulator Interface (UEI)?
Defines the “interface” between a J2ME SDK and an IDE
“de-facto” standard for J2ME emulator commandline calling conventions
Published by SUN in 2006: https://uei.dev.java.net/
No activity since the 1.0.2 version (April 2006) of the Specification
Standardizes Directory Structure
Commands
Pre-Verifier Execution
Getting Information About the Emulator
Application Deployment
Debugging and Testing
Keytool Execution
Copyright © 2009, Made available under the Eclipse Public License v 1.0
High level overview of a typical J2ME development environment
IDE (Eclipse)
Desktop OS (Windows, Mac, Linux)
Java Editor Extensions
Eclipse MTJ
Phone SDK•Emulator•Build tools•Runtime tools
Unified EmulatorInterface
(UEI)
Phone SDK•Emulator•Build tools•Runtime tools
Phone SDK•Emulator•Build tools•Runtime tools
Copyright © 2009, Made available under the Eclipse Public License v 1.0
MTJ Legacy: EclipseME
EclipseME is an Eclipse plug-in for JavaME development Focus on CLDC/MIDP (other profiles could be supported) Provides all basic services (build, sign, obfuscate, etc.) Provide some extensibility, but it is not its main focus
First public releases in 2003 Around 600.000 downloads to date
Created and maintained by Craig Setera
Not a “Eclipse Foundation” project, but still distributed under the EPL By 2008 it was used by all major mobile device manufactures
Nokia, Motorola, Sony Ericsson, etc.
EclipseME uses Unified Emulator Interface to integrate with SDKs from Phone vendors, or the Wireless Toolkit (WTK) from SUN
Copyright © 2009, Made available under the Eclipse Public License v 1.0
MTJ is the new EclipseME(www.eclipse.org/dsdp/mtj)
Eclipse MTJ has evolved in parallel with EclipseME, stronger focus on extensibility for tools vendors
In Jan 2008 new leadership (Motorola) and renewed focus on “developer experience” lead to merge of EclipseME and MTJ
Now, MTJ is the “official” JavaME development tool plug-in for Eclipse
Provide all necessary support to develop MIDP-based applications
Import SDKs (UEI and some proprietary formats supported)
Create Project / MIDlet Wizards
Edit MIDlet Suite Application Descriptor
Build MIDlet Suite Package
Run / Debug MIDlet
Copyright © 2009, Made available under the Eclipse Public License v 1.0
MTJ Roadmap
EclipseME 1.7.8
MTJ 0.7 codebase
MTJ 0.9 MTJ 0.9.1 MTJ 1.0
• Adapt to Eclipse code standards• Setup build environment• Add Import from
•Netbeans •EclipseME
• Enhanced JAD Editor
• Bug fixes• Library Support• MIDlet Localization • Multiple Device Support
• MIDletTemplates• Re-structure code (increase flexibility)• Adapt code from MTJ 0.7
• Signing / Keystore• Deployment & Debugging
Q3/2008 Q4/2008 Q2/2009
Refactor
Galileo
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Agenda
Who should attend this talk
Why Java development for mobile devices is different
Eclipse Mobile Tools for Java Overview
MTJ for the Mobile Application Developer
MTJ for the Add-on provider
MTJ for the SDK Developer/Tools Vendor
Eclipse Mobile Working Group (Pulsar)
Summary
✔
✔
✔
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Demo
Eclipse & MTJ in action
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Title
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Agenda
Who should attend this talk
Why Java development for mobile devices is different
Eclipse Mobile Tools for Java Overview
MTJ for the Mobile Application Developer
MTJ for the Add-on provider
MTJ for the SDK Developer/Tools Vendor
Eclipse Mobile Working Group (Pulsar)
Summary
✔
✔
✔
✔
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Title
Slides about Library packaging/distribution functionality
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Agenda
Who should attend this talk
Why Java development for mobile devices is different
Eclipse Mobile Tools for Java Overview
MTJ for the Mobile Application Developer
MTJ for the Add-on provider
MTJ for the SDK Developer/Tools Vendor
Eclipse Mobile Working Group (Pulsar)
Summary
✔
✔
✔
✔
✔
Copyright © 2009, Made available under the Eclipse Public License v 1.0
MTJ
Library A
Vendor SpecificSDK
MTJ as a Framework
UI
Core
DeviceImporter
DeviceEditor
JADAttributes
JADPages
Library
Library N
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Title
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Agenda
Who should attend this talk
Why Java development for mobile devices is different
Eclipse Mobile Tools for Java Overview
MTJ for the Mobile Application Developer
MTJ for the Add-on provider
MTJ for the SDK Developer/Tools Vendor
Eclipse Mobile Working Group (Pulsar)
Summary
✔
✔
✔
✔
✔
✔
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Eclipse Mobile Working GroupThe “Pulsar” Package
Goal:
Lowering the “barrier to entry” for mobile developers
Making it easier to find, install and integrate mobile SDKs
Help to “standardize” development experience between handsets
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Title
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Agenda
Who should attend this talk
Why Java development for mobile devices is different
Eclipse Mobile Tools for Java Overview
MTJ for the Mobile Application Developer
MTJ for the Add-on provider
MTJ for the SDK Developer/Tools Vendor
Eclipse Mobile Working Group (Pulsar)
Summary
✔
✔
✔
✔
✔
✔
✔
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Summary Questions & Answers
IDE’s can help manage the complexity of CLDC development
Preprocessor for Device Properties etc.
Build for multiple targets
Pre verify
Sign
Deploy
EMULATE
Mobile Tools for Java (MTJ) extends Eclipse for JavaME development
Eclipse Pulsar working group is creating a pre-integrated “Eclipse for J2ME Developers” Galileo package
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Backup
Copyright © 2009, Made available under the Eclipse Public License v 1.0
MTJ as a JavaME ToolImport SDK
Any UEI or Java SE-based SDK
User can select which device to be imported
Devices are added to Device Management list
User is able to select one as the default
Copyright © 2009, Made available under the Eclipse Public License v 1.0
MTJ as a JavaME ToolCreation Wizards
Select JAD Name
Select Current SDK & Device
Enable Preprocessing on that Project
Copyright © 2009, Made available under the Eclipse Public License v 1.0
MTJ as a JavaME ToolJAD Editor
Copyright © 2009, Made available under the Eclipse Public License v 1.0
MTJ as a JavaME ToolRun / Debug
Copyright © 2009, Made available under the Eclipse Public License v 1.0
MTJ as a Framework
Original objective of MTJ 0.9 is to provide a tool for JavaME developers
Framework is not a primary focus, but a welcome “side effect” of proper design
But…
There are some ways to customize MTJ in order to
Support vendor specific JavaME SDK features
Enhance MIDlet environment with libraries
Copyright © 2009, Made available under the Eclipse Public License v 1.0
Similarities with Embedded Systems Development
Mobile Development is very similar to embedded systems:
Cross Compilers (even for Java, e.g. Pre-verifier, Dalvic compiler)
Remote deployment
Remote debugging
Developer needs an Emulator
And/Or
Target interface
top related