Développer des applications BlackBerry

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 »).

Cette entrée a été publiée dans BlackBerry, Linux, avec comme mot(s)-clef(s) , , , , , . Vous pouvez la mettre en favoris avec ce permalien.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *