TUTORIELS 

Présentation de J2ME: Première partie
Par Bruno Delb (Net Innovations)

Java 2 Micro Edition est "le Java de la mobilité", tournant sur les terminaux légers. Présentation par Bruno Delb, de Net Innovations.  (29 janvier 2002)
 

Pages 1 | 2 | 3 | 4


Nous présentons dans cet article J2ME (Java 2 Micro Edition), le Java de la mobilité. C'est le Java tournant sur les terminaux légers. Un terminal J2ME dispose d'une machine virtuelle KVM au-dessus de laquelle se trouve la configuration CLDC. Elle définit les capacités minimales et les bibliothèques disponibles sur tous les terminaux. En d'autres termes, c'est le tronc commun.
CLDC est le plus petit commun dénominateur de la technologie Java applicable à une grande variété de terminaux mobiles. Il garantit la portabilité et l'interopérabilité du code entre les différents types de terminaux mobiles CLDC. La configuration CLDC ne définit que les bases communes à l'ensemble des terminaux.
Au-dessus de CLDC, on trouve le profil MIDP. C'est lui qui prend en charge les fonctionnalités de plus haut niveau. Cette archirecture permet ainsi à l'interface utilisateur d'une application J2ME tournant sur un téléphone intelligent d'être différente de celle tournant sur un Palm Pilot.

Vue d'ensemble de l'API

Le package java.lang est un sous-ensemble des classes standards du package java.lang de J2SE. Un absent de marque, toutefois : la classe Float. En effet, MIDP ne supporte pas les calculs en virgule flottante ! Vous devrez donc faire sans ou les émuler.
Le package java.io contient les méthodes nécessaires pour récupérer des informations des systèmes distants.
Le package java.util contient un petit sous-ensemble du package correspondant de J2SE, dont voici les classes retenues : Calendar, Date, TimeZone, Enumeration, Vector, Stack, Hashtable et Random.
Le principal objet du package javax.microedition.io est la classe Connector. Nous reviendrons plus longuement sur celle-ci dans la partie traitant de la connexion réseau.
Le package javax.microedition.ui permet de définir l'interface utilisateur.
Le package javax.microedition.rms implémente le système de stockage persistent, que nous aller traiter plus loin dans l'article.
Le package javax.microedition.midlet contient la classe MIDlet. C'est elle qui exécute le cycle de vie du MIDlet. Elle fournit en outre la méthode getAppProperty(key) qui permet de récupérer les informations des propriétés de l'application placées dans le fichier jad associé au MIDlet.

L'interface utilisateur

MIDP est conçu pour tourner sur de nombreux types de terminaux : téléphones, Palm Pilot, … Or la plupart de ces terminaux sans fil sont utilisés dans la main, disposent d'un petit écran et tous ne possèdent pas de système de pointage comme un stylo. Tout en respectant ces contraintes, les applications MIDP doivent intégrer toujours les mêmes fonctionnalités quelque soit le terminal. La solution a été de décomposer l'interface utilisateur en deux couches : l'API de haut niveau et celle de bas niveau. La première favorise la portabilité, la second l'exploitation de toutes les fonctionnalités du terminal. Le concepteur doit donc faire un compromis entre portabilité et bénéfice des particularités du terminal.
L'API de bas niveau donne accès direct à l'écran du terminal et aux événements associés aux touches et système de pointage. Aucun composant d'interface utilisateur n'est disponible : vous devez explicitement dessiner chaque composant, y compris les commandes.
L'API de haut niveau fournit quant à elle des composants d'interface utilisateur simples. Mais aucun accès direct à l'écran ou aux événements de saisie n'est permis. C'est l'implémentation MIDP qui décide de la manière de représenter les composants et du mécanisme de gestion des saisies de l'utilisateur.
Il est possible d'utiliser l'API de haut niveau et l'API de bas niveau dans un même MIDlet mais pas simultanément. Par exemple, les jeux qui utilisent l'API de bas niveau pour contrôler l'écran peuvent aussi utiliser l'API de haut niveau pour afficher les meilleurs scores. L'API de bas niveau peut aussi être utilisée pour tracer des graphes.

Pages 1 | 2 | 3 | 4

 
[ Bruno Delb pour JDNet
 
Accueil | Haut de page