Java Mobile – introduction

Firstly, quick introduction: JavaMe (also known as: j2me, jme, java me, Java Mobile Edition, …) is a special version of Java (in fact it is “frozen” Java 1.3, maybe with some features) dedicated to devices with low computing power, we distinguish two configurations: CDC (palmtops, more powerful phones, …), CLDC (Connected Limited Device Configuration) – baisicaly every other phone.

Configurations include basic classes, and they are extended by profiles (MIDP – Mobile Information Device Profile), all new phones should handle MIDP version 2.0 (newer 2.1). Profiles provide classes to:

  • handle screen (high and low level)
  • multimedia features
  • better connectivity (eg. HTTPS)
  • and many more

Next, phone can also provide additional APIs, called JSR. JSRs extend phone’s powers (for example by allowing you to use bluetooth), they are not included in CLDC nor MIDP. Every JSR has it’s own number, so they are easly identified (bluetooth is called JSR-82).

All programs I’m going to write require MIDP version 2.0. That doesn’t mean you wont be able to run them on older phones, but you may not be able to use things that are extended in version 2.0, for example you won’t hear background music playing, or you won’t be able to initiate call inside application.

When writing program for mobile phone, you should remember, that it’s manufacturer is responsible for delivering appropriate runtime environment (JVM). Sometimes it is not written according to specification delivered by Sun. I have noticed, that Nokia models have some problems with some elements of GUI. I have also tested Samsung’s and Sony Ericsson’s, and didn’t have any problems with them (I have no possibility to chceck it on other phones, so I don’t know how it is with for example Motorola).

You can find additional info on wikipedia (as usual):

At most on Friday I’ll post information how to start new project in Netbeans, and start writing programs:)