Java Platform, Micro Edition (J2ME)

Slides:



Advertisements
Similar presentations
MIDP Mobile Information Device Profile Johnny Yau CIS 642 Prof. Insup Lee.
Advertisements

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.
Multimedia Network Communications Subject:T0934 / Multimedia Programming Foundation Session:13 Tahun:2009 Versi:1/0.
J2ME 25 July Overview  What is J2ME?  The CLDC and CDC configurations  MIDP and MIDlets  Development Tools  Demonstrations.
Writing Your First MIDlet Running JAVA on a Cell Phone Jon A. Batcheller January 27, 2004.
UNDERSTANDING JAVA APIS FOR MOBILE DEVICES v0.01.
Introduction to Java 2 Micro Edition Mark Balbes, Ph.D. Senior Software Engineer Jeff Brown Senior Software Engineer.
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 10 Java for MIDs Rob Pooley
Developing an Application with J2ME Technology Scott Palmer, Nat Panchee, Judy Sullivan, Karen Thabet, Sten Westgard.
JAVA Technology. Java Technology Java technology is a portfolio of products that are based on the power of networks and the idea that the same software.
© 2009 Research In Motion Limited Advanced Java Application Development for the BlackBerry Smartphone Trainer name Date.
Interactive Visual System By Arthur Evans, John Sikorski, and Patricia Thomas.
J2ME for Palm Speaker: Chen-Nien Tsai Adviser: Kai-Wei Ke.
© 2009 Research In Motion Limited Methods of application development for mobile devices.
Introduction to Mobility Java Technology Mobile and Wireless Networks.
Android: Hello World Frank Xu Gannon University. Steps Configuration ▫Android SDK ▫Android Development Tools (ADT)  Eclipse plug-in ▫Android SDK and.
Developing Software for Wireless Devices
J2ME Prepared by: - Gaery- Ronny - Alan- Andy. Why Technology for Mobile Devices? The nature of wireless devices is changing Old devices: All the software.
PDA Programming Using J2ME Presenter :涂俊凱 Date : 2003/4/8.
Making Cell Phone Games An Overview Ray Ratelis Guild Software, Inc.
Google Android as a mobile development platform T Internet Technologies for Mobile Computing Olli Mäkinen.
V0.01 © 2009 Research In Motion Limited Understanding Java APIs for Mobile Devices Trainer name Date.
Developing J2ME Applications Mobile and Wireless Networks.
The 21th century Repairman Agenda Introduction J2EE J2ME Demonstration.
Cosc 4730 Phone Programming in Java An Introduction.
Java 2 Platform, Micro Edition (J2ME) By Xiaorong Wang.
ANDROID PROGRAMMING MODULE 1 – GETTING STARTED
J2ME and WAP Technologies CSCI – Independent Study Fall 2002 Presented by: Kashif Syed.
L EC. 01: J AVA FUNDAMENTALS Fall Java Programming.
Client/Server Architectures
J2ME -Kushal Modi(09BIT056).
Android Introduction Platform Overview.
EclipseME Java Micro Edition The Eclipse Way Craig Setera April 19, 2006.
J2ME Java for Mobile Environments Based on J2ME In A Nutshell, by Kim Topley, O’Reilly & Associates Inc., 2002, and Tetris by Alexei Patinov.
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 12 Using the KToolbar Rob Pooley
Platforms and tools for Web Services and Mobile Applications J2ME based Applications Bent Thomsen Aalborg University 3rd and 4th of June 2004.
Getting Started with JXTA for J2ME Advisor : Dr. Ching-Long Yeh Report : DI.2, 洪泰昌 ( ) Course: XML 文件管理.
Michael Brockway Advanced Applications Development in Java J2ME -- Introduction l Introduction / Overview l Java 2 Micro Edition n CLDC n MIDP l Examples.
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 11 J2ME and MIDlets Rob Pooley
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 
Java 2 Micro Edition (J2ME) and the world of java
Android for Java Developers Denver Java Users Group Jan 11, Mike
1Basics of J2ME. 2 Objectives –Understand the different java API’s and how the mobile edition API’s fit in –Understand what a mobile configuration and.
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 12 lcdui Rob Pooley
Martin Schmidt / The Silent Revolution Mobile Java.
Programming Handheld and Mobile devices 1 Programming of Handheld and Mobile Devices Lecture 13 lcdui and OXO Rob Pooley
Introduction to Java Programming with Forte Y. Daniel Liang.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary June, 2011 Made available under the Eclipse Public License v Mobile.
Introduction to Java Beans CIS 421 Web-based Java Programming.
Java 2 Platform, Micro Edition (J2ME)
1 Introduction to J2ME Outline MIDP Building J2ME Apps- Tool J2ME Wireless Toolkit Demo MIDlet Programming -- MIDlet Transition States -- Midlet Skeleton.
Mobile Programming Mobile Programming - Ordibehesht Ordibehesht 1390.
Enhanced mobile services in Java enabled phones Björn Hjelt Sonera zed ltd Supervisor: Professor Jorma Jormakka.
 This work confers an application which makes possible to use a Bluetooth enabled mobile phone to remote control home appliances such electric fan, LEDs.
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.
The Java Platform Micro Edition Java ME
Android Mobile Application Development
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
MOBILE DEVICE OPERATING SYSTEM
Wireless Instant Messaging Using J2ME
By Jeff Heaton An Overview of J2ME By Jeff Heaton
Java for Mobile Devices
Presentation transcript:

Java Platform, Micro Edition (J2ME) Assaf Agmon Itay Levy Assaf Ben-David J2ME

Contents J2ME: Why? What? Who? J2ME core. Installation Demo J2ME

Introduction cell phones smart cards personal organizers , palmtops Why? – To have the ability to program to day to day devices such as: cell phones smart cards personal organizers , palmtops What? – A java base platform for such customizations. Who? Sun!!!, But also vendors like Nokia , … Stat with: Who doesn’t own a cellphone? Say that it is different than anything we knew until today. J2ME

Java? – J2ME Java – “write once run anywhere” But: Different devices have different requirements. Those devices doesn’t have the same environment as regular computers (standard desktop), the constrains we have: Limited memory and processor. Small screen sizes. Alternative input methods. One platform (solution) cannot address all the market segments (web server, video games etc.) Users/developers want flexibility. They want to choose what they want to use and what they don’t. Sun decided to develop a special edition of Java – J2ME (Java 2 Micro Edition). J2ME

Java Editions The Java 2 Platform is split into three editions: Java 2 Standard Edition (J2SE) - Desktop-based applications. Java 2 Enterprise Edition (J2EE) - Server-based applications. Java 2 Micro Edition (J2ME) – For handheld and embedded devices. Each edition provides a complete environment for running Java-based applications including the Java virtual machine (VM) and runtime classes. What separates one edition from another, then, is primarily the set of class libraries that each edition defines. you can think of J2ME as a subset of J2SE and J2SE as a subset of J2EE. J2ME

What will we know. It defines interfaces and a factory class for creating objects that implement those interfaces. J2ME

J2ME Core Concepts At the heart of Java 2 Micro Edition (J2ME) are three core concepts: configurations, profiles, and optional packages. You can't write a J2ME application without understanding these concepts, because they determine the features of Java that you can use, which application programming interfaces (APIs) are available, and how your applications are packaged. J2ME

J2ME Core Concepts Optional Packages Profile: A collection of Java Classes selected from one or more Java core, extension or vertical APIs. Classes are chosen to provide a complete solution for a specific vertical market Configuration: A subset of the Java core APIs and Java language functionality selected to provide a minimal Java platform for a set of vertical markets J2ME Profile Libraries Java Virtual Machine Profiles Configuration Host Operating System Java Language J2ME

What it all means There is no "J2ME application“: Configuration, profile and optional packages should be chosen. A configuration is a complete Java runtime environment: Java virtual machine (VM) to execute Java. Set of core Java runtime classes Interface to the underlying system J2ME

What it all means The profile adds classes to a configuration: To fill in missing functionality To support specific uses of a device The Optional Packages are set of APIs that support additional and common behaviors. Examples of optional packages : Bluetooth Optional Package JDBC Optional Package J2ME

Configuration There are 2 basic configurations. The superset: CDC (Connected Device Configuration): 2 MB or more memory for Java platform. 32-bit processor. High bandwidth network connection. full-featured Java 2 virtual machine (CVM). 17 packages. Use for devices like Palms. J2ME

Configuration The one we use: CDLC (Connected Limited Device Configuration): 160 - 512 KB of total memory 16-bit or 32-bit processor Low power consumption and often operating with battery power Connectivity with limited bandwidth Selected classes from: java.lang , java.io , java.util Limited VM (KVM) without: Floating point types Object finalization JNI or reflection Thread groups or daemon threads User Class loaders J2ME

Handling I/O in CDC / CLDC The CLDC has defined a new set of APIs for I/O called the Generic Connection Framework. The GCF, part of the new javax.microedition.io package, defines interfaces for the different kinds of I/O that are possible. Since the CDC is a superset of the CLDC, it includes the GCF. CDC also requires GCF support for two specific connection types: files and datagrams since it includes the relevant classes from java.io and java.net packages. It defines interfaces and a factory class for creating objects that implement those interfaces. J2ME

Configuration - What it all means CDC-based profiles make development simpler due to J2SE-like APIs, but don’t suit the low-end devices. CLDC-based profiles makes the development task harder, especially when trying to shrink the size of the application to run on many of the small devices. J2ME

Profile Several profiles in various stages of development: Mobile Information Device Profile (MIDP) - CLDC-based, used for running applications on cellphones and interactive pagers with small screens, wireless HTTP connectivity, and limited memory. Personal Digital Assistant Profile (PDAP) – CLDC-based, extends MIDP with additional classes and features for more powerful handheld devices. Foundation Profile (FP) – CDC-based, extends the CDC with additional J2SE classes. Personal Basis Profile (PBP) - extends the FP with lightweight (AWT-derived) user interface classes and a new application model. Personal Profile extends the PBP with applet support and heavyweight UI classes. Almost any wireless device built these days fits the definition of a MID, including low-end cellphones. Personal digital assistants (PDAs) can also be considered to be MIDs because wireless networking is now an option for most PDAs, but MIDP doesn't target these devices. Personal digital assistants (PDAs) can also be considered to be MIDs because wireless networking is now an option for most PDAs, but MIDP doesn't target these devices specifically: PDAs have more memory, larger screens, and interesting information management capabilities that are more effectively exploited using other profiles. J2ME

Profile The CLDC-profile used today: MIDP (Mobile Information Device Profile) The MIDP defines a platform for dynamically and securely deploying optimized, graphical, networked applications. The MIDP specification was defined through the Java Community Process (JCP) by players like: Motorola, Nokia, Ericsson, Research in Motion, and Symbian. Almost any wireless device built these days fits the definition of a MID, including low-end cellphones. Personal digital assistants (PDAs) can also be considered to be MIDs because wireless networking is now an option for most PDAs, but MIDP doesn't target these devices. Personal digital assistants (PDAs) can also be considered to be MIDs because wireless networking is now an option for most PDAs, but MIDP doesn't target these devices specifically: PDAs have more memory, larger screens, and interesting information management capabilities that are more effectively exploited using other profiles. J2ME

MIDP – MID Profile MIDP is targeted at a class of devices known as mobile information devices (MIDs). Minimal characteristics of MIDs: Enough memory to run MIDP applications Display of at least 96 X 56 pixels, either monochrome or color A keypad, keyboard, or touch screen Two-way wireless networking capability Almost any wireless device built these days fits the definition of a MID, including low-end cellphones. Personal digital assistants (PDAs) can also be considered to be MIDs because wireless networking is now an option for most PDAs, but MIDP doesn't target these devices. Personal digital assistants (PDAs) can also be considered to be MIDs because wireless networking is now an option for most PDAs, but MIDP doesn't target these devices specifically: PDAs have more memory, larger screens, and interesting information management capabilities that are more effectively exploited using other profiles. J2ME

MIDP - Specification There are two versions of the MIDP: MIDP 1.0 - is the original specification, provides core application functionality required by mobile applications, including basic user interface and network security MIDP 2.0 - is a revised version of the MIDP 1.0. Have new features include an enhanced user interface, multimedia and game functionality, more extensive connectivity, over-the-air provisioning, and end-to-end security. The MIDP 1.0 specification was defined by an expert group consisting of all the major players in the wireless and handheld device arena, including familiar names like Motorola, Nokia, Ericsson, Research in Motion, and Symbian. It has a lot of support in the telecommunications industry, and handset manufacturers like Motorola and Nokia in particular are devoting a lot of development effort to supporting MIDP in a wide range of their devices. J2ME

MIDlets – The heart of J2ME… MIDP does not run in the “regular” Java fashion. using: Main() , System.exit(). Instead, we use MIDlet aplications - which are subclasses of: javax.microedition.midlet.MIDlet that is defined by MIDP. The MIDlet class allows the application management software to: control the MIDlet be able to retrieve properties from the application descriptor notify and request state changes The first concept we have to understand is the MIDlet J2ME

MIDlets – The heart of J2ME… The extending class is the main class of the application. The MIDlet class defines abstract methods that the main class implements (for example: startApp(), destroyApp(), notifyDestroyed()). J2ME

MIDlet Suite One or more MIDlets are packaged together into a MIDlet suite, composed of: JAR (Java archive) file - The JAR file contains Java classes for each MIDlet in the suite and Java classes that are shared between MIDlets. The JAR file also contains resource files used by the MIDlets and a manifest file. JAD (Java Application Descriptor) file - This file contains a predefined set of attributes that allows the device application management software to identify, retrieve, and install the MIDlets Eventually the JAR / JAD files are upload to the machine in order to run the application. A Java Application Descriptor (JAD) file. This file contains a predefined set of attributes that allows the device application management software to identify, retrieve, and install the MIDlets. A Java Archive (JAR) file. The JAR file contains Java classes for each MIDlet in the suite and Java classes that are shared between MIDlets. The JAR file also contains resource files used by the MIDlets and a manifest file. J2ME

Configuration + Profile When the Java 2 Platform, Micro Edition (J2ME) was first introduced, only one configuration, the Connected Limited Device Configuration (CLDC), and one profile, the Mobile Information Device Profile (MIDP) had been defined as formal specifications. Today, there are nearly forty J2ME-related specifications at various stages in the JCP, and many of these specifications define optional packages instead of configurations or profiles. A Java Application Descriptor (JAD) file. This file contains a predefined set of attributes that allows the device application management software to identify, retrieve, and install the MIDlets. A Java Archive (JAR) file. The JAR file contains Java classes for each MIDlet in the suite and Java classes that are shared between MIDlets. The JAR file also contains resource files used by the MIDlets and a manifest file. J2ME

So what is an optional package? An optional package is also a set of APIs, but unlike a profile, it does not define a complete application environment. An optional package is always used in conjunction with a configuration or a profile. It extends the runtime environment to support device capabilities that are not universal enough to be defined as part of a profile or that need to be shared by different profiles. Examples: RMI Optional Package (Remote Method Invocation). Wireless Messaging API. Mobile Media API A Java Application Descriptor (JAD) file. This file contains a predefined set of attributes that allows the device application management software to identify, retrieve, and install the MIDlets. A Java Archive (JAR) file. The JAR file contains Java classes for each MIDlet in the suite and Java classes that are shared between MIDlets. The JAR file also contains resource files used by the MIDlets and a manifest file. J2ME

Extenders There are some companies that created different suite for J2ME. Those companies are “competing partners” with Sun (- they buy the KVM from Sun). Example: Nokia’s Developer's Suite: provides tools for creating application classes and packages, signing the application, and deploying it to a device. It is also an essential tool for managing, configuring, and running emulators for various Nokia Platform. A Java Application Descriptor (JAD) file. This file contains a predefined set of attributes that allows the device application management software to identify, retrieve, and install the MIDlets. A Java Archive (JAR) file. The JAR file contains Java classes for each MIDlet in the suite and Java classes that are shared between MIDlets. The JAR file also contains resource files used by the MIDlets and a manifest file. J2ME

What we know so far: It defines interfaces and a factory class for creating objects that implement those interfaces. J2ME

summary Java 2 Micro Edition defines a small footprint version of Java for resource constrained devices. Specifically, code space of <512K and RAM (for java heap) of 64KBytes or more. The Connected Limited Device Configuration (CLDC) defines the minimum required complement of Java technology components and libraries for small connected devices. Java language and virtual machine features, core libraries, input/output, networking and security are the primary topics addressed by this specification. The Mobile Information Device Profile (MIDP) defines an additional set of API’s on top of the Connected Limited Device Configuration (CLDC) for small handheld devices such as PDA’s and cellular phones. These include UI, Persistence, Networking, Timers, and Application Lifecycle. J2ME

Installation J2ME

Requirements Java2 SE SDK 1.4.x (Can be downloaded at: http://java.sun.com/j2se/1.4.2/download.html) The Eclipse IDE 3.x (Can be downloaded at: http://www.eclipse.org/downloads/index.php) A supported wireless toolkit (A List of supported toolkits can be found at: http://eclipseme.org/docs/support_wtk.html) Any kind of Emulator EclipseME 1.x.x version 1.1.0 (supports Eclipse 3.1 only) version 1.0.1 (either Eclipse 3.0 or Eclipse 3.1 are supported) prior 1.0.0 (support Eclipse 3.0 only) There’s sun’s download center Choose the relevant operating system. Available for windows, linux, solaris. (not for OS X, although MIDP is available). You need java sdk 1.3 or higher Install the toolkit in a directory with no space in its name… J2ME

Installation Verify J2SE SDK is installed on your system (1.4.2 and later is preferable) Verify Eclipse 3.0 or later is installed on your system Install a Wireless Toolkit J2ME Wireless Toolkit 2.2 + Patch (Can be downloaded at: http://java.sun.com/products/sjwtoolkit/download-2_2.html) Nokia S40 DP20 SDK 6230i 1.0 (Can be downloaded at: http://forum.nokia.com) install either integrated with J2ME WT or as Standalone Install an Emulator Install EclipseME J2ME

Verify Plug In installation If the J2ME plug-in is properly installed, there will be a J2ME entry in the Window / Preferences dialog J2ME

Verify Wireless Toolkit Installed Select the Preferences menu item from Eclipse's Window menu. Expand the J2ME item in the pane to the left and click on Platform Components. Verify that the Wireless Toolkits appears If not right click on the Wireless Toolkit and add the root directory. J2ME

Create New Midlet Suite Create a new project File -> new -> Project J2ME

Project properties Give a name to the project and Select the location on the disk KToolbar is the main working tool to handle J2ME applications You can create a new project, open an existing one, choose the emulator device, change the settings, build (compile and preverify) and run the simulation. J2ME

Select Wireless Toolkit Select the Wireless Toolkit you wish to work with KToolbar is the main working tool to handle J2ME applications You can create a new project, open an existing one, choose the emulator device, change the settings, build (compile and preverify) and run the simulation. J2ME

Creating a new MIDlet On the ToolBar Select File -> New -> Other When creating a new project, you have to give it a name ( the name of the project will be the name of the directory under apps), and give the name of the MIDlet class. J2ME

MIDlet Properties Select a Name for the Midlet, Superclass and implemented interfaces. When creating a new project, you have to give it a name ( the name of the project will be the name of the directory under apps), and give the name of the MIDlet class. J2ME

The MIDlet content J2ME

Importing MIDP specific packages Importing Packages Importing MIDP specific packages import javax.microedition.lcdui.*; import javax.microedition.midlet.*; J2ME

LCDUI The UI API provides a set of features for implementation of user interfaces for MIDP applications. The central abstraction of the MIDP's UI is a Displayable object, which encapsulates device-specific graphics rendering with user input. Only one Displayable may be visible at a time, and the user can see and interact with only contents of that Displayable. The Screen class is a subclass of Displayable that takes care of all user interaction with high-level user interface component. The Screen subclasses handle rendering, interaction, traversal, and scrolling, with only higher-level events being passed on to the application. J2ME

Superclass And Interface Extends MIDlet Implements CommandListener public class TestMIDlet extends MIDlet implements CommandListener { J2ME

MIDlet API Abstracts: protected abstract void startApp() – Signals the MIDlet that it has entered the Active state protected abstract void pauseApp() – Signals the MIDlet to enter the Paused state protected abstract void destroyApp(boolean arg0) -   Signals the MIDlet to terminate and enter the Destroyed state J2ME

MIDlet API Inherited: Int checkPermission(String permission) String getAppProperty(String key) Void notifyPaused() Boolean platformRequest(String URL) Void resumeRequest() Void notifyDestroyed() - Used by an MIDlet to notify the application management software that it has entered into the Destroyed state. J2ME

CommandListener API This interface is used by applications which need to receive high-level events from the implementation. public void commandAction(Command c, Displayable d) - Indicates that a command event has occurred on Displayable d CommandListener – attaching the listener to the entire screen, the command can be of type SCREEN or anything else… J2ME

Creating the form, adding the Commands The MIDlet content Creating the form, adding the Commands S public TestMIDlet() { mMainForm = new Form(“Ahalan"); mMainForm.append(new StringItem(null, “First Message")); mMainForm.addCommand(new Command("Exit", Command.EXIT, 0)); mMainForm.setCommandListener(this); } J2ME

Form class A Form is a Screen that contains an arbitrary mixture of items: images, read-only text fields, editable text fields, editable date fields, gauges, choice groups, and custom items. In general, any subclass of the Item class may be contained within a form. The implementation handles layout, traversal, and scrolling. J2ME

Form and Item classes J2ME

Test your code Choose the target platform Choose the desired Device (Emulator) Run Target setting - The project settings information and tabs change based on the selection you choose for the target platform. Some project settings are not applicable for a selected target platform. Building using the KToolbar – creating the classes and the .jad file Preverify – makes sure that the .jad is updated with the .jar files. That the used classes in the application are available in the chosen target platform. Doing so allows the device using the application without further checking which require more memory and cpu. Run – with the emulator, from the KToolbar J2ME

Choose your device J2ME

Distribution to actual devices Create a package Place your code somewhere on the net. Update .jad file Download the application to your mobile Run the application Finally, MIDlets are bundled into MIDlet suites for distribution to actual devices. This process entails JARing the MIDlet suite class files and the resource files, and putting some extra information in the JAR manifest. Again, these chores are best left to the J2ME Wireless Toolkit. To bundle up your MIDlet suite, select Project | Package from the menu. The .jad and .jar files for the MIDlet suite will be generated and placed in the bin directory of the project. The .jad file should contain the correct address of where the files are located on the net. J2ME

Demo... J2ME

The SMS server We have build a MIDlet that acts as an SMS server. The MIDlet listens to incoming SMS events. If the SMS matches a predefined pattern, it is processed as a command. We have defined a few sample commands: Add a contact to the device’s phonebook Flash the backlights Turn on vibrating mode Many more option can be added. For example: A command that will order the phone to take a snapshot using it’s built-in camera Finally, MIDlets are bundled into MIDlet suites for distribution to actual devices. This process entails JARing the MIDlet suite class files and the resource files, and putting some extra information in the JAR manifest. Again, these chores are best left to the J2ME Wireless Toolkit. To bundle up your MIDlet suite, select Project | Package from the menu. The .jad and .jar files for the MIDlet suite will be generated and placed in the bin directory of the project. The .jad file should contain the correct address of where the files are located on the net. J2ME

Nokia Connectivity Framework Nokia Connectivity Framework (NCF) is a tool, which manages, configures and integrates products so that they can communicate with each other and with exterior integratable hardware or software. NCF provides an integration platform for delivering content data in mobile development environment between the connected external software components. For example, phone emulators, content development tools, software development tools, real time server emulators and server emulators. With the aid of NCF a user can construct, maintain, modify and use development environments that support different technologies, formats, and versions. Finally, MIDlets are bundled into MIDlet suites for distribution to actual devices. This process entails JARing the MIDlet suite class files and the resource files, and putting some extra information in the JAR manifest. Again, these chores are best left to the J2ME Wireless Toolkit. To bundle up your MIDlet suite, select Project | Package from the menu. The .jad and .jar files for the MIDlet suite will be generated and placed in the bin directory of the project. The .jad file should contain the correct address of where the files are located on the net. J2ME

Nokia Connectivity Framework Finally, MIDlets are bundled into MIDlet suites for distribution to actual devices. This process entails JARing the MIDlet suite class files and the resource files, and putting some extra information in the JAR manifest. Again, these chores are best left to the J2ME Wireless Toolkit. To bundle up your MIDlet suite, select Project | Package from the menu. The .jad and .jar files for the MIDlet suite will be generated and placed in the bin directory of the project. The .jad file should contain the correct address of where the files are located on the net. We will use the framework to display a demonstration of the SMS server MIDlet. We will use the framework to simulate two phones and the two-way communication between them. J2ME

Have fun with J2ME... J2ME