Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
Chapitre 21
Tirer le meilleur parti des bibliothèques Java 229
JavaMail et avait besoin de deux JAR JavaMail : mail-1.4.jar et activation-1.1.jar.
Avec ces deux fichiers dans le répertoire libs/, le classpath demandait à javac d’effectuer une édition de liens avec ces JAR afin que toutes les références à JavaMail dans le
code de MailBuzz puissent être correctement résolues. Puis le contenu de ces JAR
était énuméré avec les classes compilées de MailBuzz lors de la conversion en instructions Dalvik à l’aide de l’outil dex. Sans cette étape, le code se serait peut-être
compilé, mais il n’aurait pas trouvé les classes JavaMail à l’exécution, ce qui aurait provoqué
une exception.
Cependant, la machine virtuelle Dalvik et le compilateur fournis avec Android 0.9 et les
SDK plus récents ne supportent plus certaines fonctionnalités du langage Java utilisées par
JavaMail et, bien que le code source de JavaMail soit disponible, sa licence open-source
(Common Development and Distribution licence – CDDL) pose… certains problèmes.
Suivre le script
À la différence des autres systèmes pour terminaux mobiles, Android n’impose aucune
restriction sur ce qui peut s’exécuter tant que c’est du Java qui utilise la machine virtuelle
Dalvik. Vous pouvez donc incorporer votre propre langage de script dans votre application, ce
qui est expressément interdit sur d’autres terminaux.
BeanShell 1 est l’un de ces langages de script Java. Il offre une syntaxe compatible Java,
avec un typage implicite, et ne nécessite pas de compilation.
Pour ajouter BeanShell, vous devez placer le fichier JAR de l’interpréteur dans votre répertoire libs/. Malheureusement, le JAR 2.0b4 disponible au téléchargement sur le site de
BeanShell ne fonctionne pas tel quel avec Android 0.9 et les SDK plus récents, probablement à cause du compilateur utilisé pour le compiler. Il est donc préférable de récupérer
son code source à l’aide de Subversion 2 , d’exécuter ant jarcore pour le compiler et de
copier le JAR ainsi obtenu (dans le répertoire dist/ de BeanShell) dans le répertoire
libs/ de votre projet. Vous pouvez également utiliser le JAR BeanShell accompagnant les
codes sources de ce livre (il se trouve dans le projet Java/AndShell). Ensuite, l’utilisation
de BeanShell avec Android est identique à son utilisation dans un autre environnement
Java :
1. On crée une instance de la classe Interpreter de BeanShell.
2. On configure les variables globales pour le script à l’aide d’Interpreter#set().
3. On appelle Interpreter#eval() pour lancer le script et, éventuellement, obtenir le
résultat de la dernière instruction.
1. http://beanshell.org.
2. http://beanshell.org/developer.html.
Livre Android.book Page 229 Dimanche, 8. novembre 2009 12:23 12
Précédent

- 244/391

Suivant