J2ME : MIDP 2.0 vs DOJA
Transcription
J2ME : MIDP 2.0 vs DOJA
J2ME : MIDP 2.0 vs DOJA KARAGIANNIS Antonios YALIOUA Ouali 27 février 2006 GRETR : MIDP vs DOJA 1 Introduction Systèmes embarqués OS embarqués 2002 : 98% des processeurs sont 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 Téléphones J2ME 0 2003 2004 2006 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 27 février 2006 Configurations : CLDC Profils : MIDP, DoJa 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 27 février 2006 Version 1.0 Version 2.0 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 void startApp() { d.setCurrent (t); } public class HelloWorld extends MIDlet implements public void pauseApp() {} CommandListener { private Command c; private Display d; private TextBox t = null; public void destroyApp (boolean unconditional) {} public void commandAction (Command myCommand, Displayable myDisplayable) { if (myCommand == c) { destroyApp (false); notifyDestroyed (); } } 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); } } 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 : 27 février 2006 • 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 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: 27 février 2006 Iapplication.start() Iapplication.terminate() Iapplication.resume() GRETR : MIDP vs DOJA 21 Interface Utilisateur Fonctionnalités de l’interface utilisateur 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 Création de composants génériques (Bouton, Label…) Gestion d’évènements Gestion de disposition 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 27 février 2006 Label ImageLabel Button ListBox TextBox Ticker VisualPresenter 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); 27 février 2006 //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); } } 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 Position des composants Label ImageLabel Button ListBox TextBox Ticker VisualPresenter LayoutManager ou Méthode setLocation() L’API de Bas Niveau 27 février 2006 Classe Canvas : une zone graphique Paint() à redéfinir 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 27 février 2006 ComponentListener SoftKeyListener KeyListener MediaListener TimerListener GRETR : MIDP vs DOJA 27 Contrôle des communications Applications autonomes Calculatrice, utilitaires… Programmation Client-Serveur http HttpConnection Https 27 février 2006 GRETR : MIDP vs DOJA 28 Gestions des ressources Le SratchPad : Zone de stockage 27 février 2006 L’URL : sratchpad:///0 pos représente un index (en octet) à partir du début de la zone du scrathpad allouée à l’application 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 27 février 2006 MIDP repose sur les classes suivantes : javax.microedition.midlet javax.microedition.lcdui javax.microedition.rms javax.microedition.io 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