Vous êtes sur la page 1sur 20

Tutorial developpement en J2ME.

//ceci n’est q’une version beta,en cours de correction et de verification


(plein de fautes d’hortographe…)

I. Présentation J2ME :
Sun Microsysteme à definie 3 platforms java : chachune est adaptée à un
environnement de développement :
 Java 2 standard Edition(J2SE)
 Java 2 Entrepriise Edition (J2EE)
 Java 2 Micro edition (J2ME)

J2ME est annoncée au JAVAOne Developers Conference en juin 1999,


pour definir une plate form optimisée pour développer des applications pour
des systèmes embarqués ou sur des appareils mobiles tel que des PDA, des
téléphones cellulaires, des systèmes de navigations pour voiture..

Pour s’adapter au limitation imposé par le materiel, J2ME utilise des


machines virtuelles
(CVM et KVM) différentes que celle du J2SE. Certaines classes de base de
l'API sont communes avec ,cependant de nombreuses omissions dans l'API
J2ME.
II. Architecture générale la de J2ME :
 Problematique des mobiles :
les mobiles sont se regroupe en 3 catégories selon leurs
ressources(mémoire et processeur) :
Des terminaux de mémoire vive de moins de 32 kb et un processeur 16 bits
et ce pour les carte a puce.
Des terminaux de mémoire vive, comprise entre 512 kb et 128 kb avec un
processeur 16 ou 32 bits .
Des terminaux de mémoire vive , de plus de 2Mo et un processeur 32 bits .

Cette différence de capacité rend le devloppement pour le mobile très


compliquées et pose un problème pour la portabilité des application .J2ME
s’adapte à cette différence de capacités entre les mobile en proposant une
architecture se basant sur les configuration (c pa des configurations de
materiel !!!! ),les profils et les packages optionnels.
A. - Les configurations
Une configuration c’est une definition de l’ environnement de
developpement pour un certain type de materiel ayant un ensemble de
caractéristiques et de ressources similaires.Elle definiela machine virtuel
utilisée et offe un ensemble de classe de base.Actuellement ,il existe
deux configurations qui sont essentiellement utilisées :
 La CDC (Connected Device Configuration).
 La CLDC (Connected Limited Device Configuration) .

• La CDC est plus adaptée aux terminaux relativement puissant comme les
PDA
(RAM +ROM>2Mo). En effet, elle nécessite une machine virtuelle java
optimisée appelée CVM (compact VM)qui offre presque les même
fonctionnalités que la JVM classique.
• La CLDC est, par contre, dédiée aux appareils avec de faibles capacités
comme les téléphones portables(RAM+ROM <512koet processeur faible,
par exemple un téléphone mobile ou un PDA "bas de gamme").
La machine virtuelle allégée correspondante est la KVM et ne possède pas
certaines fonctions de la JVM classique.

B. 1.2 - Les profils


Lorsqu'une configuration définit le fondement d'une application, un profil en
fournit la structure. Les profils définissent l'ensemble des API à utiliser
dans une application J2ME et sont conçus spécialement pour chaque
configuration.
Sun propose deux profils de référence(c-a-d il y a bien d’autre figure ci
dessous) J2ME :

le profil Foundation et le profil Mobile Information Device Profile (MIDP).


• Le profil Foundation est destiné à la configuration CDC. Les développeurs
qui utilisent ce profil ont accés à une implémentation complète des
fonctionnalités de J2SE.
• Le profil MIDP(il ya aussi un similaire nomé DOJA) est destiné à la
configuration CLDC. Il prend en charge un nombre limité des classes de J2SE
et définit des classes d'entrée/sortie et d'interface spécialisées pour une
configuration CLDC.Ce profil est le plus utilisé il est a sa version 2.0.
Les profils sont mis en place pour répondre aux besoins d’une categorie
d’appareils specifique ,par exemple on definit un profil(WMA) qui supporte
la communication par sms puisque ce service est une carcteristique des
telephone mobiles (different des autres appareils).chose inutil de le definir
dans la configuration qui est communes entre tous les appareils.
Une configuration et un profil definissent un « a J2ME runtime environment»

C. 1.3-les packages optionnels :


Les packages ,ou les profils optionnels sont des API supplementaires non define
dans la configuration
ou le profil de base.

exemlpe :
 WMA(wireless messaging API) pour le développement des application de
messagerie(sms).
 MMA(Moobile Media API) api pour développement des application multimédia
III. Architecture en détail :

1.Propriété de La CLDC :
En ce qui concerne l’api et le langage supportés. CLDC fournit une librerie
de classe tres limitée il contient 4 package de bases .
3 packages issue de la J2SE.
 Java.io
 Java.lang
 Java.util

Les classes contenues dans ces packages sont listées dans la figure ci-dessous
En plus de ces 3 packages il’y a un package specifique a la J2ME :
 Java.microedition.io
La cldc supporte le langage JAVA mais avec certainnes restrictions :
 Pas de virgule flottante .pas de support de java.lang.Floatou Double.
 Gestion exception réduite des exceptions.la J2ME reduit considerablement
le nombre d’exception gérrées.il ne reste que les exceptions suivantes :
java.lang.Error
java.lang.OutOfMemoryError
java.lang.VirtualMachineError

En ce qui concerne la machine virtuel ,cldc utilise une machine virtuel


allegée(KVM kilobyte virtual machine nomée ainsi car elle a besoin de
quelques kb dans la memoire) . plusieurs caractéristique de la JVM standard
sont omises :
 JNI java native interface.
 Thread an deamons.
 Verificateur de classes
 Pas de Object. finalize() .cette methode est importanate applée en
J2SE automatiquement apres q’une instance de classe termine pour
la gestion d’allocation de memoire .pourtant cette methode est
omise ,vues que les ressources sont tres limitée pour lutiliser.
…

2.Propriété de La CDC :
La cdc supporte le language java definie pour la J2SE sans restriction.Elle offre
6 packages de base :
La CVM machine virtuel definie par la cdc support les meme caractéristiques
que la JVM standard en s’adapptant aux contraintes des ressources
matériels.Elle offre :
 Un system de mémoire avancé
 Un garbage collector simplifié.
 Support des threads.
 Support de JNI,RMI..
 ….

IV. Développement d’une application J2ME.

Dans cette section on va devevelopper une premiere application mobile pour


la configuration cldc en ytilisant le profil MIDP.
NB :les application utilisant MIDP sont appelée Midlets.
Avant de commencer le developpemnt on commencera par decouvrir le profil
MIDP :
• MIDP(Mobile Information Device Profile) :
Le MIDP, comme on la déja vu ,est une API (ensemble de package) Java
adapté au termianaux suportés par la cldc voici un tableau qui represente les
packages de la MIDP :
En utilisant ces package on peut commencer le developpement de notre
premiere Midlets.
• Environnement de développement :
Cette section a été copier(avec modifications) d’un Blog de developpement
que vous pouver visiter àwww.bp0.blogger.com

ECLIPSE NETBEANS ET J2ME

Parlons un peu des outils de développement sous Windows, on peut citer


deux environnements de développement Netbeans et Eclipse, avant de se
pencher sur les outils de développement, nous allons nous intéresser aux
pré-requis nécessaires pour commencer tout développement J2ME.

I. PRÉ-REQUIS:
1. JDK:
Veillez d'abord à bien installé le dernier JDK (Java Development Kit) de chez
sun. http://java.sun.com/j2se/1.4.2/download.html
Télécharger le SDK, non le JRE.
2. Java Wireless Toolkit :
Le java wireless toolkit de chez sun offre quelques outils rudimentaires de
configuration et de gestion du code. Mais surtout il comprend des

émulateurs de terminaux mobiles.


http://java.sun.com/products/sjwtoolkit/download-2_2.html .une
documentation complete est fournit pour bien utiliser cet outil.

Une fois Le JDK et le Java wireless Toolkit installé nous allons nous pencher
sur les outils de développement.

II. OUTILS DE DÉVELOPPEMENT :

1. Eclipse :

est un environnement de développement libre (le terme Eclipse désigne


également le projet correspondant, lancé par IBM) extensible, universel et
polyvalent, permettant potentiellement de créer des projets de
développement mettant en œuvre n'importe quel langage de
programmation. Eclipse IDE est principalement écrit en Java.
1.1 EclipseMe :
C'est le plug-in propre à eclipse qui permet le développement d'applications
J2ME reposant sur MIDP en utilisant un Wireless Toolkit.
Le site officiel de ce plug-in est à l'url : http://eclipseme.org/

1.2 Installation :
Une fois le pack eclipseMe télécharger il suffit alors de suivre les étapes
suivantes :
Utilisez l'option « Mise à jour de logiciels/Rechercher et installer » du menu
Aide.
Sélectionnez « Rechercher les nouveaux dispositifs à installer »
cliquez sur le bouton « Suivant ». Cliquez sur le bouton « Nouveau site
archivé »
Sélectionnez le fichier et cliquez sur « Ouvrir »
Dans l'arborescence des sites, sélectionnez eclipseme.feature_x.x.x_site.zip
et cliquez sur le bouton « Suivant » Sélectionnez les dispositifs « EclipseMe
» et « eclipseme.features.siemens » Lisez la licence et si vous l'acceptez
cliquez sur « J'accepte les termes du contrat » et cliquez sur le bouton «
Suivant » Cliquez sur le bouton « Fin »
Lors de l'affichage de la boîte de dialogue « Vérification du dispositif »,
cliquez sur le bouton « Installer »
Acceptez de relancer le plan de travail.
Voilà vous disposer maintenant d'un environnement de développement
J2me sous Eclipse.

2. Netbeans :

Netbeans est un environnement de développment pour java, placé en open


source par Sun sous licence CDDL . En plus de Java, NetBeans permet
également de supporter différents autres langages.
Il comprend toutes les caractéristiques d'un IDE moderne (éditeur en
couleur, projets multi-langage, refactoring, éditeur graphique d'interfaces et
de pages web).
NetBeans est lui-même développé en Java, ce qui peut le rendre assez lent
et gourmand en ressources mémoires.
Pour télécharger Netbeans c'est ici :
http://www.netbeans.info/downloads/index.php
2.1 Mobility Pack :
C'est le plug-in propre à Netbeans qui permet le développement
d'applications J2ME reposant sur MIDP en utilisant un Wireless Toolkit .
Pour télécharger le Mobility Pack c'est ici :
http://www.netbeans.org/kb/50/mobility.html

• Developper votre 1ere Midlet :


Apres avoir decouvert la CLDC et le MIDP et apres le choix d’un
environnement de developpement on commence a developper ou plutôt a
coder(enfin !!).Dans ce petit et simple exemple on utilise le Wireless Tolkit
pour compiler et simuler les mobiles.je vous rappel que Les applications
créées avec MIDP sont des midlets : ce sont des classes qui héritent de la
classe abstraite javax.microedition.midlet.Midlet. Cette classe permet le
dialogue entre le système et l'application.
Lancer le Wirless Toolkit ,créer un nouveau projet vide :
Taper le code suivant :
import javax.microedition.midlet.MIDlet ;//package des MIDlet (commeJava.
Applet pourJ2SE)
import javax.microedition.lcdui.;//package des UI(interface user)
public class FirstMidlet extends MIDlet { //herite de la claasse
abstraiteMidlet pour utiliser les
//vie :startApp..destroyApp
private Display display; //represente l’ecran de l affichage
private TextBox textbox; //classe TextBox est definie dans la pack
javax.lcui.* ;
public FirstMidlet() {
super();
display = Display.getDisplay(this);
textbox = new TextBox("", "Bonjour", 20, 0);
}

protected void startApp() throws MIDletStateChangeException {


display.setCurrent(textbox); //afficher le TextBox
}

protected void pauseApp() {


}

protected void destroyApp(boolean arg0) throws


MIDletStateChangeException {

}
}
pour les midlets il n’ya pa de fonction main() mais ils ont la methode
StartApp() qui joue un peu le role de la methode init() pour les applet
java.son contenu est excuter en premier des le lancement de
l’application.les methodes PauseApp et destroyApp gere le cycle de vie de
la Midlet.
Apres la compilation le simulateur vous montre une petite interface
graphique conteneant message bonjour.
Cette exemple n’est que pour vous introduire au developpement mobile et
vous montrer que la J2ME est simple a comprendre et a coder dessus il faut
juste se coller au clavier. 

Aisni se termine la 1ere partie de ce tutoriel pour le developpement mobile


en J2ME.Dans la deuxieme partie on va nchalah aborder le MIDP plus
profondement avec des application plus interessantes(envoyer et recevoir
des sms) ,j’espere que ça a été utiles pour vous chokran 3la lmotaba3a o
bla t9wasse .