platform focused on Java technology application in electronic devices with computing capabilities and graphics very small, such as mobile phones, PDAs or smart appliances. This edition has some basic components that differentiate it from other versions, such as the use of a special virtual machine (because it requires only a few kilobytes of memory to run) instead of using the classic JVM, including a small Fast garbage collection and some other differences. It's a good open source option for mobility.
This scheme may be considered somewhat simplistic, as each platform is aimed at various areas of application, but in any case will enable us to state that uses J2ME to 37 classes from java.lang, java.io and java.util (J2SE). The main difference is provided by javax.microedition classes (which are in J2ME, but not J2SE).
J2ME Execution Environment
The external architecture of a J2ME runtime environment consists of:
- OS virtual machine configuration
- 's
A configuration is the minimum set of Java APIs that enable application development for a group of devices CLDC (Connected Limited Device Configuration) and CDC (Connected Device Configuration).
The CLDC is aimed at devices with connection and capacity limitations in visual, computer and memory. An example of these devices are: mobile phones, pagers (pagers), PDAs, personal organizers, etc. This configuration runs on Java virtual machines, Kilo Virtual Machine (KVM).
The CDC is focused on devices with more resources, such as digital TV set-top boxes, GPS, PDAs, etc.. This configuration works on Java virtual machines, Compact Virtual Machine (CVM).
We have said that CLDC is aimed at devices with certain restrictions. Some of these restrictions are given by the use of the KVM, which is necessary to work with the CLDC due to its small size. Most phones already have their own KVM, although we found some problems to choose the virtual machine for Windows Mobile PDAs. In some models already come preinstalled Jbed Esmertec KVM, but does not behave well with some libraries. From experience I would recommend the IBM J9 CLDC / MIDP. Is not free, but the cost per unit if purchased more than 100 licenses, is around $ 9.
Anyway, I would not develop CLDC applications for PDAs, as it would waste the computing power that have these devices. However, sometimes we must do to achieve portability with various mobile platforms (RIM, Blackberry, Symbian ,...)
CDC
My experience with programming is reduced to about PDAs. For this I used the IBM J9 virtual machine CDC, similar cost to the CLDC. I have also had satisfactory results with the cream (which is not free.) Windows Mobile devices do not usually carry CDC Java Virtual Machine installed as standard.
The profiles extend over the settings, and represent a layer specifications for a specific set of devices on the market.
profiles among other things are responsible for maintaining the life cycle, user interfaces, graphics, event handling, ...
for CLDC:
- PDA Profile: PDAs range low (older Palms).
- Mobile Information Device Profile MIDP: Responsible for the semantics and enforcement, user interface, persistence, networking, timers. Applies to mobile phones, PDAs ... Is currently available only for CLDC profile. Applications developed with this profile are called MIDlets.
Applications are visually poor but can be enriched with graphics libraries on this profile, such as Sun LWUIT or Kuix . These libraries will already have your post later, because I believe are essential to develop compelling applications for BlackBerry, and Nokia, for example.
In these applications, you can use databases and used book stores, called RMS.
To CDC:
- Foundation Profile: Includes a large part of J2SE, but excludes AWT and Swing GUI.
- Personal Profile: AWT Graphics Support. Requires Foundation Profile.
- RMI: Requires Foundation Profile. Subset of J2SE RMI.
Line CDC separation between applications and desktop PC applications become increasingly thin. In fact, we have developed applications such as PDAs with SWT GUI and just changing the jar by the appropriate Windows XP, or Linux, for example, we get the analogous application for these platforms.
In such applications can make use of databases such as HSQLDB, Apache Derby, db4o, ...
I correctly understand these concepts is essential for anyone who wants to enter the world of Java J2ME Mobility, both in order to make technical and economic proposals, as consultants, or developments.