Installation du JDK
J’utilise le JDK fourni par SUN que l’on trouve dans les dépôts Debian. Ce n’est donc pas très compliqué à installer.
[root@Dahlia root]$ aptitude install sun-java6-bin sun-java6-demo \ sun-java6-doc sun-java6-jdk sun-java6-jre sun-java6-plugin
Installation du JDE
Avant d’installer le JDE sur Linux, j’ai dû l’installer sous Windows. L’installation à travers l’outil WINE n’a pas fonctionnée.
[root@Dahlia root]$ mkdir -p /opt/RIM [root@Dahlia root]$ cp -R /mnt/win/Program\ Files/BlackBerry\ JDE\ 4.7.0/ /opt/RIM/sdk
Puis, j’ai eu besoin d’un toolkit Java toujours fourni par SUN (sun_java_wireless_toolkit-2.5.2_01-linuxi486.bin.sh).
J’ai installé cet outil dans le dossier /opt/RIM/WTK2.5.2.
[root@Dahlia root]$ sh sun_java_wireless_toolkit-2.5.2_01-linuxi486.bin.sh
http://java.sun.com/products/sjwtoolkit/download.html
Construire une application COD
Afin de pouvoir compiler une application au format COD à partir des sources (fichiers JAVA) et un fichier décrivant le projet (fichier RAPC), j’ai écrit un petit script.
[root@Dahlia root]$ mkdir -p /opt/RIM/tools [root@Dahlia root]$ cat > /opt/RIM/tools/build.sh #!/bin/bash SDK=/opt/RIM/sdk PREVERIFY=/opt/RIM/WTK2.5.2/bin PATH=$PATH:$PREVERIFY java -jar $SDK/bin/rapc.jar \ import=$SDK/lib/net_rim_api.jar \ codename=$1 \ $1.rapc \ *.java
A présent, je vais compiler l’exemple HelloWorld fourni avec le SDK.
[root@Dahlia root]$ mkdir project [root@Dahlia root]$ cd project [root@Dahlia project]$ cp -R /opt/RIM/sdk/samples/com/rim/samples/device/helloworlddemo . [root@Dahlia project]$ cd helloworlddemo [root@Dahlia helloworlddemo]$ cat > HelloWorldDemo.rapc MIDlet-Name: HelloWorldDemo MIDlet-Version: 0.9 MIDlet-Vendor: Research In Motion Ltd. MIDlet-Jar-URL: HelloWorldDemo.jar MIDlet-Jar-Size: 0 MicroEdition-Profile: MIDP-2.0 MicroEdition-Configuration: CLDC-1.1 MIDlet-1: Hello World Demo,img/helloworld_jde.png, RIM-MIDlet-Flags-1: 0 [root@Dahlia helloworlddemo]$ /opt/RIM/tools/build.sh HelloWorldDemo
Construire une Midlet
Avec le JDE, il est possible de convertir une midlet JAVA en un fichier COD.
Pour faire cela, j’ai également écrit un petit script.
[root@Dahlia root]$ mkdir -p /opt/RIM/tools [root@Dahlia root]$ cat > /opt/RIM/tools/jar2cod.sh #!/bin/bash SDK=/opt/RIM/sdk PREVERIFY=/opt/RIM/WTK2.5.2/bin PATH=$PATH:$PREVERIFY java -jar $SDK/bin/rapc.jar \ import=$SDK/lib/net_rim_api.jar \ codename=$1 \ -midlet \ jad=$1.jad \ $1.jar
Puis…
[root@Dahlia root]$ /opt/RIM/tools/jar2cod.sh HelloWorldDemo
Signer une application Java
Nous arrivons à la dernière étape, signer son application Java.
Tout d’abord, il faut enregistrer les trois clés envoyées par RIM lors de la procédure d’enregistrement en tant que développeur. Vous obtiendrez donc les trois clés RBB, RCR et RRT :
- client-RBB-1234567890.csi
- client-RCR-1234567890.csi
- client-RRT-1234567890.csi
Pour utiliser ces clés, vous devez les enregistrer avec l’outil JDE. Pendant cette procédure vous devez être en ligne (connecté à Internet). Vous devez saisir votre code PIN et une passphrase.
ATTENTION, vous devrez utiliser ce même code PIN et cette même passphrase pour chaque clé.
[root@Dahlia root]$ cd /opt/RIM/sdk/bin [root@Dahlia bin]$ chmod 644 sigtool.* [root@Dahlia bin]$ java -Djava.net.preferIPv4Stack=true -jar SignatureTool.jar client-RBB-1234567890.csi [root@Dahlia bin]$ java -Djava.net.preferIPv4Stack=true -jar SignatureTool.jar client-RCR-1234567890.csi [root@Dahlia bin]$ java -Djava.net.preferIPv4Stack=true -jar SignatureTool.jar client-RRT-1234567890.csi
A présent, vous pouvez signer vos applications.
[root@Dahlia root]$ cd /opt/RIM/sdk/bin [root@Dahlia bin]$ java -Djava.net.preferIPv4Stack=true -jar SignatureTool.jar
Debugger une application Java
Il est possible d’utiliser votre BlackBerry pour debugger pas à pas vos applications Java. Je suis pour cela en train d’écrire un outil qui permet à partir d’un client JDB (ou autre) de se connecter à la JVM embarquée dans le téléphone.
L’application est encore en cours de développement. Certaines fonctionnalités peuvent déjà être utilisée et sont disponibles dans les dernières versions du projet Barry.
Nous allons utiliser l’exemple HelloWorldDemo vu précédemment.
[root@Dahlia helloworlddemo]$ /opt/RIM/tools/build.sh HelloWorldDemo [root@Dahlia helloworlddemo]$ ls build.sh* HelloWorldDemo.cso HelloWorldDemo.jar HelloWorldScreen.class HelloWorldDemo.class HelloWorldDemo.debug HelloWorldDemo.java* img/ HelloWorldDemo.cod HelloWorldDemo.jad HelloWorldDemo.rapc* Makefile
Le compilateur a généré plusieurs fichiers… dont deux qui nous intéresse. Le fichier HelloWorldDemo.cod que nous allons installé sur notre BlackBerry et le fichier HelloWorldDemo.debug qui va nous servir pour debugger.
[root@Dahlia helloworlddemo]$ bjavaloader load HelloWorldDemo.cod loading HelloWorldDemo.cod... done.
Pour pouvoir debugger, il faut lancer la commande bjdwp dans le dossier qui contient notre fichier HelloWorldDemo.debug. Si vous souhaitez debugger plusieurs applications, copier tous vos fichiers « .debug » dans un même dossier.
[root@Dahlia helloworlddemo]$ bjdwp localhost 8000
Puis utiliser votre debugger préféré (Eclipse, JDB ou autres) :
[root@Dahlia root]$ jdb -connect com.sun.jdi.SocketAttach:hostname=localhost,port=8000
L’outil bjdwp va générer plusieurs traces notamment l’affichage des messages de la console (la sortie des « System.out.println »).