Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
JavaME Development Workflow - JMDF 2007
1. Java ME
MIDlets Development Workflow
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
2. Agenda
• Configurations and Profiles
• The main workflow
– Write and package your code
– Emulate
– Deploy on devices
• Tools
– Sun Wireless Toolkit
– Manufacturers SDK
– NetBeans and Mobility Pack
• References
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
3. Key Components of the J2ME
Technology Stack
Additional libraries for wireless
devices (GUI, storage, etc.)
“Lowest common denominator”
libraries for small devices
MIDP
Profile
CLDC
The execution engine
Configuration
KVM
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
4. What is a J2ME Configuration?
• A configuration defines the minimum Java
technology that an application developer
can expect on a broad range of
implementing devices
• Configurations are specified via the Java
Community ProcessSM (JCP) initiative
– May not contain any optional features
– Implementations are tested via a compatibility
test kit (TCK)
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
5. What is a J2ME Configuration?
• A configuration defines the minimum Java™
technology that an application developer
can expect to be available on implementing
devices
– Broad range of devices
– Similar requirements for memory size and
processing capabilities
• Configurations are specified via the Java
Community ProcessSM (JCP) initiative
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
6. J2ME Configurations
• J2ME Connected, Limited Device
Configuration (CLDC)
– Specifies Java environment for mobile phone,
pager and PDA class devices
– CLDC devices are usually wireless
• J2ME Connected Device Configuration (CDC)
– Specifies Java environment for digital
television set-top boxes, high end wireless
devices and automotive telematics systems.
– CDC devices may be wired (DTV cable, etc.)
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
7. What Is a J2ME Profile?
• Java technology which supplements a
configuration to provide capabilities for a
specific vertical market or device type
• Defined through Java Community Process
initiative
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
8. J2ME Profiles
• J2ME Mobile Information Device Profile
(MIDP)
– Application runtime environment for wireless
devices based upon CLDC
• J2ME Foundation Profile
– Base profile for non-GUI networked devices
based upon CDC
• J2ME Personal Basis, Personal, and RMI
Profiles
– Basic graphics and RMI support for CDC &
Foundation Profile based devices
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
9. JavaME Wireless Device Stack
Your
MIDlet Yellow Pages, train
schedules and
ticketing, games…
MIDP UI, HTTP 1.1
APIs
networking...
J2ME CLDC APIs
java.lang.*, java.io.*,
java.util.*
javax.microedition…
CLDC compliant
VM (may be KVM)
Threads, no Floats…
Hardware
RISC processor,
ROM, Flash, RAM,
etc.
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
10. The simplest thing...
• Write the Java MIDlet + Java classes using your
favorite editor... and compile
• Create a Java Application Descriptor (JAD)...
it's just a text file
• Package the classes in a JAR file
• You've got your MIDlet Suite!!!
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
11. The big picture
Development Station Target J2ME
Device
Myapp.java
Download Jad and
JAR (containing
Javac Myapp.class)
MyMIDletSuite.jad
Verifier
Myapp.class MyMIDletSuite.jar
Preverifier Package Interpreter
Myapp.class
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
12. Sun Wireless Toolkit
• Based on CLDC 1.1 and MIDP 2.0 reference
implementations
• Support for additional APIs
• Simple and easy to use
• Tools to performance tune your applications
• Can be customized to specific devices
• Integration with commercially available Java
IDEs: Eclipse, Netbeans
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
13. Sun Wireless Toolkit
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
14. Nokia Carbide.j
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
15. Sony Ericsson SDK
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
16. Motorola SDK
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
17. NetBeans
• Most Comprehensive – Create mobile, desktop,
web & enterprise appications with one single
tool.
• Best out of box experience: a development
environment that just works; no searching for
plug-ins that cost time and money
• NetBeans is 100% Java
• NetBeans is Open Source & Free
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
18. NetBeans Mobility Features
• Support for MIDP & CLDC variants
– MIDP 1.0/2.0
– CLDC 1.0/1.1
– ... also CDC
• Visual Mobile Designer
– Drag & drop MIDP authoring
• Wireless Connection Wizard
– E2E app development (web svcs, EJBs, etc.)
• Device Fragmentation Solution
– Preprocessing options for tackling discrepencies
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
19. NetBeans Mobility Features
• Emulator support
– Sun Wireless Toolkit included
– OEM support (Nokia, SonyEricsson, etc.)
• Ant build support
• MIDP localization
• OTA testing
• Code obfuscation
• Code optimization
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
20. NetBeans Mobile Application Project
• Let's create a Project
• Application Descriptor Management
– Attributes
– MIDlets details
– Push Registry
– Permissions
• Build
• Run
– Standard
– OTA simulation
• Deployment
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
21. References
• Sun WTK: http://java.sun.com/javame
• Netbeans: http://www.netbeans.org
• Nokia: http://www.forum.nokia.com
• Sony-Ericsson: http://developer.sonyericsson.com
• Motorola: http://developer.motorola.com
• BenQ: http://www.benqmobile.com/developer
• Samsung: http://developer.samsungmobile.com
• EclipseME: http://eclipseme.org/
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
22. Java ME
MIDlets Development Workflow
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org
23. Speaker
Edoardo Schepis
Java ME Tech Lead at Funambol
JMDF Founder
email: edoardo.schepis@funambol.com
weblog: http://www.edschepis.net
Java Mobile Developers Forum: http://www.jmdf.org
MIDlets Development Workflow - “Flash Lite vs. JavaME”, Bologna 29-01-2007 - http://www.jmdf.org