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