This article demonstrates that Java ME developers have a wide array of choices -- in addition to the full-featured Java ME SDK (which replaces the well-known Wireless Toolkit) -- to create and test applications. Contents
Let's say that you've come up with an idea for a great Java ME application--in fact, the next killer Java ME application. And let's also say that your new application will use some of the cool new graphical and multimedia features in the JavaFX APIs. If so, then which SDKs that are available today support JavaFX Mobile development? If more than one SDK supports JavaFX, then what's the difference between them, if any? Now, let's say that your idea incorporates and leverages some of the security features provided by the Security and Trust Services API (SATSA). If so, then which SDKs that are available today allow you to compile your application using those APIs? Additionally, what if you want to create a Java ME game that renders OpenGL ES scene graphs? How can you determine which Java ME SDKs provide support for OpenGL ES development? As you can imagine, the Java ME platform is huge, robust, and versatile--it allows you to create compelling 3D games, mobile streaming media players, as well as serious business applications that can connect you back to the enterprise. Therefore, the purpose of this article is to give you a representative sample of the Java ME tools that are available, and provide a brief run-down of their features and benefits. This article concludes with a Java ME API compatibility matrix, which can serve as a handy reference tool in the months to come. So let's get started! Sun Java ME SDK 3.0The Sun Java ME SDK 3.0 is considered the de facto standard SDK when it comes to mobile application development. The Java ME SDK is the culmination of the very popular Java Wireless Toolkit for CLDC and the Java Toolkit for CDC. Now integrated as a single product, the Java ME SDK allows developers to create Java ME applications for the following JVM platforms:
The Java ME SDK is one of the few SDKs available that is device agnostic. (However, it does provide various generic device implementations so you can debug and test your application.) Starting with a device-agnostic SDK is an advantage, since it allows you to develop and debug the application before it is made device specific. To target your application to a specific Java ME implementation, add that specific implementation to the Java ME SDK using the Platform Manager. Figure 1 is a screenshot of the Java ME SDK 3.0 showing the capabilities of the default emulated JavaFX phone. ![]() Figure 1 - Java ME SDK 3.0
The Java ME SDK now includes an IDE, so you can develop and test your applications within the same application environment. Be sure to note that the Java ME SDK does not support the development of JavaFX applications, but it does include two emulated JavaFX 1.1 phones (one with a touch screen and one without) to allow you to run and test your JavaFX Mobile applications. To create JavaFX Mobile applications, you need to use the NetBeans IDE, which is described later in this article. One of the major differences between the EA (early access) release and the production release of the Java ME SDK 3.0 is the process you use to configure the SDK for Blu-ray development. The production version now includes the BD-J libraries in the distribution, so developers can create and compile Blu-ray applications "out of the box." Previously, you had to go through a manual process to add the BD-J libraries (commonly referred to as One of the most useful features in the Java ME SDK 3.0 is the ability to perform on-device debugging for your applications. To use this feature of the SDK, you need a Windows Mobile 6 device. As you can imagine, the debugger VM gives you the ability to step through your application while it's running on a real device, which can be extremely useful when you're trying to debug an issue that won't show up in an emulator, but will show up when deployed on a real device. NetBeans 6.5 IDEIf you need to work on the visual aspect of your mobile application, the NetBeans 6.5 IDE provides you with several viable options. First of all, if you're creating a JavaFX Mobile application, NetBeans is the premier SDK that will allow you to author, edit, compile, and test JavaFX applications. As you might already know, the basic tenet of JavaFX is to give developers the ability to create not only desktop applications, but web-based and mobile applications as well, using the same API framework. Figure 2 depicts how easy it is to change the properties of your JavaFX project to test it in a web, desktop, or mobile context. ![]() Figure 2 - NetBeans 6.5 IDE Allows JavaFX Developers to Run Their Applications in Multiple Contexts
The NetBeans 6.5 IDE also includes the Mobility Visual Designer. The Mobility Visual Designer is a WYSIWYG (what you see is what you get) tool that gives developers the ability to drag-and-drop in order to create the flow and screens of their mobile application. The following is a list of displayable items that are included in the
The Mobility Visual Designer also has extensive support for SVG graphics, which allows you to easily create mobile applications that can render vector graphics or play SVG animations. Figure 3 is a screenshot of the Mobility Visual Designer in the NetBeans 6.5 IDE. ![]() Figure 3 - NetBeans 6.5 IDE Visual Mobility Designer
MOTODEV Studio for Java METhe MOTODEV Studio for Java ME is a Java ME SDK that gives developers several new and exciting features to author, edit, and test mobile applications. As you would expect, the MOTODEV Studio includes some features that are specific for Motorola Java ME devices, but it also includes some external services that are useful when testing any Java ME application, for instance:
The external services provided by the MOTODEV Studio for Java ME allow you to simulate realistic external events without necessitating the deployment of your application to a real mobile device. For instance, the Bluetooth Service incorporates the Rococo Bluetooth simulator, which allows you to create simulated Bluetooth devices within the environment of the MOTODEV Studio. Figure 4 is a screenshot of the Bluetooth Service in action. ![]() Figure 4 - Bluetooth Simulator Service in the MOTODEV Studio for Java ME
Now if you're targeting your application for any specific Motorola handset or mobile device, the MOTODEV Studio provides some very useful features, such as complete device profiles for all handsets as well as a device capability matrix to indicate which capabilities each device supports. (IDEN devices are not supported.) The MOTODEV Studio also allows you to perform on-device debugging to real Motorola handsets if you have a supported handset and a USB cable. Nokia S60, S40, and NFC SDKsFor Java ME developers, Nokia provides three SDKs to enable the development of the next-generation mobile and wireless applications. The S60 SDK includes tools such as an SVG to SVG-Tiny converter, which is very useful if you plan to use the JSR 226 API in your mobile application to display vector graphics. Just like some of the tools mentioned previously, the S60 SDK provides a framework for on-device debugging, but the S60 SDK provides an additional capability that the others don't provide: redirected If you're looking to get started with wireless smart card development, you're going to get excited about tools provided in the S40 Nokia 6212 NFC SDK. The S40 Nokia 6212 NFC SDK not only supports the JSR 257 API, but also allows you to simulate the presence and absence of virtual smart cards. The SDK also supports OMNIKEY and PEGODA smart card readers that are connected to your desktop computer. This enables you to quickly prototype your application and test it with real NFC smart cards. Figure 5 is a screenshot of the S40 Nokia 6212 NFC SDK. ![]() Figure 5 - S40 Nokia 6212 NFC SDK
BlackBerry JDE 4.7The BlackBerry JDE 4.7 provides a comprehensive environment to develop and test mobile applications that run on BlackBerry handsets. To aid developers with their individual projects, the BlackBerry JDE 4.7 includes more than 50 example projects that use and leverage the implemented Java ME JSR APIs and the additional BlackBerry APIs. The additional BlackBerry APIs are a powerful feature-set that allow the developer to perform a host of tasks, such as manipulating the built-in web browser, data compression, controlling the video recorder, and advanced data encryption. The JDE 4.7 comes bundled with a simulator for the BlackBerry 9500/9530 devices, which was one of the first Java-enabled devices to incorporate touch input, so the included simulator is capable of reacting to the following events:
Figure 6 shows a screenshot of the BlackBerry JDE 4.7. ![]() Figure 6 - BlackBerry JDE 4.7
Sony Ericsson SDK 2.5 for Java MEIf you want to focus on full-featured JSR implementations, you should take the time to play with the Sony Ericsson SDK 2.5 for Java ME. This is especially the case if you need a Java ME implementation that supports all of the JSR 177 Security and Trust Services API (SATSA) optional packages:
The Sony Ericsson SDK 2.5 for Java ME also provides extensive support for 3D graphics and animation with its support for JSR 184 (Mobile 3D Graphics), JSR 239 (Java Binding for OpenGL ES), and Mascot Capsule API. Additionally, if you are looking for ways to capitalize on your intellectual property, the Sony Ericsson SDK 2.5 for Java ME is one of the few SDKs that support JSR 229 Java Payment API. Figure 7 depicts the Sony Ericsson SDK 2.5 when integrated into the NetBeans 6.5 IDE. ![]() Figure 7 - Sony Ericsson SDK 2.5 for Java ME
LG SDK 1.2 for Java METhe LG SDK 1.2 for Java ME is definitely the "new kid on the block" when it comes to Java ME SDKs. (The first version was released in late 2008.) However, this SDK does not lack in features or Java ME JSR API support. In fact, if you have any digital content (such as images, audio, or video) that you want to protect and to securely distribute to your users and customers, then you really should consider using LG SDK 1.2 for Java ME, because it's the only Java ME SDK that provides an implementation for the JSR 300, the DRM API. The LG SDK 1.2 for Java ME is based on the older Wireless Toolkit, so it provides the ability to compile, build, and test Java ME applications. It doesn't include an IDE, so you can't use it create or edit your code. However, like most of the SDKs presented in this article, it does provide a Java Platform that's compatible with the NetBeans IDE, so you can plug this SDK into NetBeans to gain all the benefits of an IDE, such as editing and debugging your code. Like some of the other SDKs presented in this article, the LG SDK 1.2 allows you to simulate external events such as these to your emulated application:
The LG SDK 1.2 also features a handy SVG viewer and player so that you can test your SVG graphics before embedding them into your application. Figure 8 shows a screenshot of an example application running in the LG SDK 1.2 for Java ME. ![]() Figure 8 - LG SDK 1.2 for Java ME
Java ME SDK Comparison MatrixTable 1 shows a list of all the Java ME SDKs and tools that are evaluated in this article, with an entry for API support for each one. Note that the NetBeans IDE supports multiple Java configurations, so its entries in this matrix apply to when it is configured with the Java ME SDK 3.0. Table 1. Java ME API Comparison Matrix
ConclusionWhew! As you can see, Java ME is a full-featured platform, with a device-agnostic SDK, that enables developers to control nearly every aspect of a mobile device. As a result of this article, you should have a basic understanding of some of the many Java ME toola that are available as of Q2 2009. You should also refer to the API matrix in the coming months when you need to decide about a mobile platform based upon its API support. Did you notice that none of the Java ME tools support the MIDP 3.0 API? Rest assured, this will change very soon, and you can expect MIDP 3.0 support when this article is updated. We welcome your participation in our community. Please keep your comments civil and on point. You can optionally provide your email address to be notified of repliesyour information is not used for any other purpose. By submitting a comment, you agree to these Terms of Use. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Oracle is reviewing the Sun product roadmap and will provide guidance to customers in accordance with Oracle's standard product communication policies. Any resulting features and timing of release of such features as determined by Oracle's review of roadmaps, are at the sole discretion of Oracle. All product roadmap information, whether communicated by Sun Microsystems or by Oracle, does not represent a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. It is intended for information purposes only, and may not be incorporated into any contract.
|
| ||||||||||||