The Moore’s law predicts that the computing power of the microprocessors doubles every eighteen months. The law started operating way back in 1960’s and has worked ever since. Senior industry people estimate that the Moore’s law will work at least for next 15 years. That means within next 15 years the power of microprocessor will undergo a thousand times increase. Thus what we have seen today is just the beginning. Now days even the electronic memory cards are seeing a big explosion in there capacity. EEPROMs have brought a new revolution in the storage technology. The wireless networks have also started accelerating rapidly. The 3rd generation networks which are capable of video streaming have started going live in many parts of the world. There are even talks of technology faster than 3G. Thus the time is ripe for the ‘super information revolution’.
Mobile phones have themselves transformed from a voice machine to a computing machine. These days most new mobile phones have:-
Thus the tiny mobile phone has all the things that a normal PC possesses plus a host of advantages over the PC, namely:
Sensing the explosion in the area of mobile device software development the big titans of the software industry have launched an all out offensive in this field. Sun Microsystems has launched the Java 2 Platform, Micro Edition (J2ME). This platform caters to the mobile phone and the personal digital assistant (PDA) market.
Java 2 Platform, Micro Edition (J2ME)
It brings the power of the Java language to micro devices like the mobile phones. This platform has been specifically tailored to the requirements of small information devices with constrained memory and user interface. Although java was built with the promise of ‘Write Once Use Anywhere’ functionality, such a scenario is not practically possible and thus a need has arisen for the J2ME, a platform specifically tailored for the needs of micro information devices.
J2ME as a platform consists of many different APIs and technologies. The J2ME platform has been built specifically for small devices and is thus fast, efficient and one of the most widely adopted platforms. In fact some people estimate that this will be the de facto platform for mobile phone applications particularly because of its reach, economy and the support of several mobile device manufacturers including among others :-
In fact there are more than a dozen manufacturers manufacturing J2ME enabled mobile handsets and there already more than 200 J2ME enabled phone models in the world market.
J2ME consists of many different technologies catering to many different kinds of micro devices. It caters to the following types of devices:
J2ME consists of 2 main configurations
CDC supports devices which have limited resources in comparison to a PC but still enough to support a large number of functions. It is meant for devices such as:-
CDC includes all the features of CLDC and can also be extended to include the functionalities of J2SE (Java 2 Platform, Standard Edition) through the addition of various profiles to it. Some of the profiles that can be added on top of it are:-
The CLDC is the configuration which is the tinniest of all the configurations and is supported by most of the current Java enabled phones. It includes basic support for highly resource constrained devices and provides a good programming medium. CLDC when combined with the MIDP (Mobile Information Device Profile) becomes a very good programming medium which despite its share of constraints provides an opportunity to program the mobile phones.
In the CLDC world applications typically are below 64 kb in size and are typically in form of MIDlets. Such resource constraints are unthinkable for the PC programmers but are certainly not insurmountable. In fact there exists a large library of games and productivity applications based on this platform. In fact I have personally developed a complete spreadsheet application using CLDC and MIDP in under 32 kb of memory.
In this journey we will cover the CLDC and the MIDP quite extensively. Throughout we have focused on developing applications using CLDC and MIDP.
J2ME APIs for Mobile Phone Development