J2ME : MIDP 2.0 vs DOJA KARAGIANNIS Antonios YALIOUA Ouali 27 février 2006 GRETR : MIDP vs DOJA 1
Introduction Systèmes embarqués 2002 : 98% des processeurs sont embarqués OS embarqués Windows CE PalmOS Symbian L alternative Java : J2ME 27 février 2006 GRETR : MIDP vs DOJA 2
Quelques chiffres Millions 1200 1000 800 600 400 200 0 2003 2004 2006 Téléphones J2ME Source : ARC Group 27 février 2006 GRETR : MIDP vs DOJA 3
Plan J2ME : Java 2 Micro Edition MIDP DoJa Récapitulatif Conclusion 27 février 2006 GRETR : MIDP vs DOJA 4
Architecture JAVA 27 février 2006 GRETR : MIDP vs DOJA 5
J2ME Définition Plateforme Java pour machine limitée Processeurs lents Mémoire limitée Petite taille d écran KVM : machine virtuelle adaptée API orientée téléphonie mobile Configurations : CLDC Profils : MIDP, DoJa 27 février 2006 GRETR : MIDP vs DOJA 6
MIDP Mobile Information Device Profile 27 février 2006 GRETR : MIDP vs DOJA 7
Historique 1998 : Projet Spotless 1999 : Présentation de J2ME par Sun, standardisation Consortium 2000 (septembre) Nokia, Motorola, Erickson, Symbian Mobile Information Device Profil Version 1.0 Version 2.0 27 février 2006 GRETR : MIDP vs DOJA 8
MIDlet Contenu d une MIDlet un fichier jad : description des classes Taille Classe principale Adresse des classes un fichier jar : ensemble des classes pré-vérifiées La classe MIDlet 27 février 2006 GRETR : MIDP vs DOJA 9
Cycle de vie Les états d une application Pause : initialisée et en attente Actif : exécute sur le processeur Détruit : fin d exécution, libération des ressources 27 février 2006 GRETR : MIDP vs DOJA 10
Fonctionnalités MIDP 2.0 API pour les jeux et l audio Interface utilisateur Stockage des données Connexion réseau et sécurité 27 février 2006 GRETR : MIDP vs DOJA 11
L interface utilisateur Réduite La classe Display Saisie de texte Liste Ajout d éléments graphiques Barre de progression, image, date Message d erreur 27 février 2006 GRETR : MIDP vs DOJA 12
Interface utilisateur (suite) 27 février 2006 GRETR : MIDP vs DOJA 13
RMS ou le stockage persistent des données Record Management System base de données Partagée entre les MIDlets d un même package Opérations simples Ajout, Suppression Comparaison, énumération, filtres, dernières modifications 27 février 2006 GRETR : MIDP vs DOJA 14
Connexion réseau et sécurité Connexions http & https Socket Datagram Exemples Serveur de temps Serveur SMTP http://developers.sun.com/techtopics/mobility/midp/articles/midp2network/ 27 février 2006 GRETR : MIDP vs DOJA 15
Exemple import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class HelloWorld extends MIDlet implements CommandListener { private Command c; private Display d; private TextBox t = null; public HelloWorld () { d = Display.getDisplay (this); c = new Command ("Sortie", Command.EXIT, 2); t = new TextBox ("HelloWorldMIDlet", "Hello World", 256, 0); t.addcommand (c); t.setcommandlistener (this); } public void startapp() { d.setcurrent (t); } } public void pauseapp() {} public void destroyapp (boolean unconditional) {} public void commandaction (Command mycommand, Displayable mydisplayable) { if (mycommand == c) { destroyapp (false); notifydestroyed (); } } 27 février 2006 GRETR : MIDP vs DOJA 16
Exemple 27 février 2006 GRETR : MIDP vs DOJA 17
DoJa Docomo Java 27 février 2006 GRETR : MIDP vs DOJA 18
DoJa Doja : Pour terminaux i-mode Technologie java basé sur le CLDC Java for i-mode année 1999 par NTT-Docomo 30 millions d abonné c est un Profil 27 février 2006 GRETR : MIDP vs DOJA 19
L environnement applicatif 27 février 2006 GRETR : MIDP vs DOJA 20
Cycle de vie La classe com.nttdocomo.ui.iapplication Gestion du cycle de vie: Iapplication.start() Iapplication.terminate() Iapplication.resume() 27 février 2006 GRETR : MIDP vs DOJA 21
Interface Utilisateur Fonctionnalités de l interface utilisateur Création de composants génériques (Bouton, Label ) Gestion d évènements Gestion de disposition L API de haut niveau Composants Dépendance par rapport aux caractéristiques matérielles concevoir des éléments aux fonctionnalités figées L API de bas niveau Taille de l écran, propriété du téléphone L écran (Panel ou Canvas) 27 février 2006 GRETR : MIDP vs DOJA 22
L API de Haut Niveau L API de Haut Niveau Le Panel : un conteneur de composant com.nttdocomo.ui.component Label ImageLabel Button ListBox TextBox Ticker VisualPresenter 27 février 2006 GRETR : MIDP vs DOJA 23
Exemple de Label import com.nttdocomo.ui.*; public class LabelDemo extends IApplication{ private Label monlabel; private Panel monpanel; public LabelDemo(){ //appel du constructeur de IApplication super(); //initialisation du Panel. monpanel=new Panel(); monpanel.settitle("mon titre de Panel"); try{ //initialisation du Label avec un texte centré. monlabel= new Label("mon label",label.center); //ajout du Label au Panel. monpanel.add(monlabel); } //Génèrée en cas d'alignement spécifié incorect (ex : Label.CENTER). catch (IllegalArgumentException e){ System.out.println(e.getMessage());} } public void start(){ //affichage du Panel. Display.setCurrent(monPanel); } } 27 février 2006 GRETR : MIDP vs DOJA 24
Résultat de l exemple 27 février 2006 GRETR : MIDP vs DOJA 25
L API de Haut Niveau L API de Haut Niveau Label ImageLabel Button ListBox TextBox Ticker VisualPresenter Position des composants LayoutManager ou Méthode setlocation() L API de Bas Niveau Classe Canvas : une zone graphique Paint() à redéfinir 27 février 2006 GRETR : MIDP vs DOJA 26
Gestionnaire d évènements EventListener : un écouteur d évènement enregistré auprès d un générateur d évènement(panel ou MediaPresenter) 5 types d événements ComponentListener SoftKeyListener KeyListener MediaListener TimerListener 27 février 2006 GRETR : MIDP vs DOJA 27
Contrôle des communications Applications autonomes Calculatrice, utilitaires Programmation Client-Serveur http Https HttpConnection 27 février 2006 GRETR : MIDP vs DOJA 28
Gestions des ressources Le SratchPad : Zone de stockage L URL : sratchpad:///0 pos représente un index (en octet) à partir du début de la zone du scrathpad allouée à l application 27 février 2006 GRETR : MIDP vs DOJA 29
Accès à la Plate-forme Matérielle La Classe PhoneSystem Package com.nttdocomo.ui Méthode setattribut() 27 février 2006 GRETR : MIDP vs DOJA 30
Conclusion Aujourd'hui on se retrouve avec deux profil DoJa et MIDP. Quelles sont les différences? Il y en a principalement 3. La première différence porte sur l'api elle-même. i-mode repose sur celles-ci : - com.nttdocomo.io - com.nttdocomo.util - com.nttdocomo.ui - com.nttdocomo.net -javax.microedition.io MIDP repose sur les classes suivantes : javax.microedition.midlet javax.microedition.lcdui javax.microedition.rms javax.microedition.io 27 février 2006 GRETR : MIDP vs DOJA 31
Conclusion - La seconde différence : Une iappli, étend com.nttdocomo.ui.iapplication Un MIDlet, étend javax.microedition.midlet. Une iappli implémente une méthode obligatoire, start() deux méthodes optionnelles, resume() et terminate(). Un MIDlet implémente trois méthodes obligatoires, startapp(), pauseapp() et destroyapp(). - La dernière différence : La limitation de la taille des fichiers.jar. Les iappli : 10Ko Les MIDlets : 50 Ko Dans l'avenir ils devrait fusionner. 27 février 2006 GRETR : MIDP vs DOJA 32
Bibliographie www.electronique.biz http://java.sun.com/ http://www.imode.fr MIDP MOBILE INFORMATION DEVICE PROFILE Juha-Pekka Ruuskanen 27 février 2006 GRETR : MIDP vs DOJA 33
Questions? 27 février 2006 GRETR : MIDP vs DOJA 34