Java Virtual Machines per PocketPC

Java Virtual Machines per PocketPC
Analisi delle implementazioni disponibili
Massimo Albertin
[email protected]
I PDA con sistema operativo Microsoft PocketPc
(PocketPc) non dispongono di una Java Virtual Machine
integrata, come è possibile trovare su cellulari di ultima
generazione. Per questa ragione sono disponibili in rete
diverse implementazioni di JVM in versione gratuita o a
pagamento.
Questo documento prende in considerazione un elenco di
Java Virtual Machines disponibili gratuitamente o in prova per Pocket Pc. Per ogni diversa implementazione è
indicato il sito web da cui scaricare l’applicativo, le modalità di installazione ed infine una descrizione delle funzionalità con riferimenti a particolari considerazioni di
natura pratica. Per le prove è stato utilizzato un palmare
HP IPAQ HX-4700 con sistema operativo Pocket Pc 2003
SE. In ultima analisi è indicata una tabella riassuntiva
con gli aspetti principali delle diverse implementazioni di
Java Virtual Machines, seguitata da un elenco di pagine
web interessanti su cui trovare informazioni utili al riguardo.
MMAPI
presenti
all’interno di questa virtual machine permettono
la sola esecuzione di audio WAV. Non ha supporto per il bluetooth, tali
applicazioni vengono terminate a priori all’avvio
della midlet, nel caso contengano riferimenti alle
classi javax.bluetooth.
2.1.1 Installazione
L’installazione
avviene
tramite un programma di
installazione guidata che installa una parte del software su
pc ed al termine esegue automaticamente ActiveSync per
l’installazione su Pocket Pc. La procedura di installazione
creerà una icona in programmi, chiamata MIDLet HQ.
2.1.2 Sito Web
http://www306.ibm.com/software/wireless/wctme/bundle.html
1
3
Abstract
Introduzione
Una seiri di diverse implementazioni di JVM sono disponibili sulla rete per venire incontro alla mancanza di distribuzioni ufficiali del runtime Java per PocketPc. Sono
disponibili versioni di Java Standard Edition (Java SE at a
Glance), Java Personal Edition (Java ME PersonalJava) e
Java Micro Edition (The Java ME Platform — the Most
Ubiquitous Application Platform for Mobile Devices). La
potenza di calcolo sempre crescente a disposizione sui
PDA permette infatti l’esecuzione di JVM molto vicini
alle JVM disponibili per Pc, permettendo quindi la realizzazione di software anche molto complessi.
2
Java Micro Edition
Di seguito sono evidenziate le implementazioni di J2ME
(The Java ME Platform — the Most Ubiquitous
Application Platform for Mobile Devices) per PocketPC
(PocketPc).
2.1 IBM Workplace Client Technology 5.7
Tale virtual machine è scaricabile dal sito dell’IBM previa
registrazione. E’ una delle migliori distribuzioni J2ME
per Pocket Pc disponibili al momento in rete. La jvm di
IBM fornisce una utilità per la gestione delle midlet
chiamata MIDLet HQ che ne permette l’installazione ed
esecuzione (sempre a seguito di una installazione). Associa inoltre a tale applicativo tutti i file .jar in modo tale da
porter facilitare installazione ed esecuzione delle midlet
anche utilizzando l’esplora risorse del Pocket Pc. Le
Java Virtual Machines per PocketPC
Massimo Albertin
J2SE/Personal Java
Di seguito sono evidenziate le implementazioni di J2SE
(Java SE at a Glance) e Java Personal (Java ME
PersonalJava) per PocketPC (PocketPc).
3.1 Mysaifu 0.2.5
E’ una implementazione della J2SE per Pocket Pc 2003,
conforme con lo standard Java. Sulla pagina del sito web
è possibile trovare anche un elenco di librerie da affiancare alle librerie presenti all’interno della jvm quali: file
compresson,
memory
management, Text encoding/deconding e folder
select dialog box ().
L’installazione inserisce
una icona nei programmi
per eseguire il launch
delle applicazioni java
che accetta file .class e
.jar con possibilità di
visualizzare o meno una
console. Supporta sia
AWT che SWING per la
realizzazione di interfacce grafiche, in questo
modo è possibile eseguire una applicazione progettata per
PC con J2SE direttamente, ad eccezione ovviamente dei
ridimensionamenti opportuni per una corretta visualizzazione. Lo sviluppo di applicazioni per questa jvm può
1
quindi avvenire tramite classi IDE di sviluppo anche visuale come Netbeans o Eclipse.
Ha un supporto, seppur non completo alle JNI (Java Native Interface) con possibilità di interfacciamento ad eventuali
librerie
native
(http://www2s.biglobe.ne.jp/~dat/java/project/jvm/jni_en.
html è indicato il supporto di JNI). Inoltre sul sito, nella
sezione di download purtroppo solamente in giapponese,
è possibile scaricare anche le librerie java.comm per la
comunicazione seriale e parallela. Essendo una J2SE
(come anche le altre SE) non comprendono una implementazione per JSR-82 (Bluetooth). Sul sito, sempre nella
sezione download, è possibile scaricare inoltre i sorgenti
dell’intera jvm.
3.1.1 Installazione
Avviene direttamente su palmare utilizzando il CAB scaricabile dal sito, viene installata una icona in programmi
per avviare la virtual machine, chiamata Mysaifu JVM.
3.1.2 Sito Web
http://www2s.biglobe.ne.jp/~dat/java/project/jvm/index_e
n.html
3.2 Ewe Vistual Machine 1.49
Una volta installata la virtual machine utilizza un launcher
per eseguire applicativi
java che però prevede
solo l’esecuzione di file
*.class e *.ewe (estensione proprietaria), ma
non file .jar. Sul sito
web è presente una
guida allo sviluppatore
in cui sono elencate le
classi
implementate
all’interno della jvm e
alcune guide alla realizzazione delle interfacce grafiche. Fra le
varie librerie disponibili c’è la possibilità di
accedere al registry di sistema di gestire file .zip e di utilizzare reflection (per maggiori informazioni consultare la
guida
sul
sito
http://www.ewesoft.com/docs/EweDevelopment/index.ht
m). Le funzionalità di grafica, reflection e io si trovano
all’interno di appositi package differente da quelli presenti nelle j2SE classiche (ewe.io, ewe.reflect…). Le classi
per questa virtual machine devono quindi essere realizzate
ad hoc e non utilizzando la j2SE classica.
3.2.1 Installazione
Avviene direttamente su palmare utilizzando il CAB scaricabile dal sito, al termine verrà creata una cartella con
Ewe in Programmi con all’interno la virtual machine e un
paio di esempi. Un volta terminata l’installazione è importante eseguire la virtual machine (Icona Ewe in Programmi/Ewe) per registrare la virtual machine nel registro.
3.2.2 Sito Web
http://www.ewesoft.com/
Java Virtual Machines per PocketPC
Massimo Albertin
3.3 Superwaba Virtual Machine 5.61
Sul sito è presente anche un developer kit scaricabile previa registrazione, in cui sono contenuti file di documentazione, e sorgenti dell’intero pacchetto. Le classi implementate nella virtual machine non si trovano nei classici
package, ma sono completamente differenti (Es. waba.lang…) come mostrato nella documentazione in linea
(javadoc) http://www.superwaba.org/doc/. La documentazione su come realizzare applicazioni da utilizzare per
questa virtual machine è
invece quasi inesistente.
Nel developer kit sono
presenti alcuni file di
esempio in formato cab,
con un installer che
sfrutta active sync per
installarli sul palmare. A
seguito dell’installazione
verrà poi creata una icona per l’esecuzione
dell’applicazione
che
sfrutterà la jvm installata. L’esecuzione di applicativi con questa virtual machine sono particolarmente lenti, inoltre si notano
alcuni problemi con la gestione dell’audio. Per la creazione dei cab sono presenti dei tool che generano i cab di
installazione. Superwaba non esegue file jar o class direttamente ma bisogna utilizzare il developer kit per creare i
file di installazione come descritto precedentemente descritta.
3.3.1 Installazione
Avviene direttamente su palmare utilizzando il CAB scaricabile dal sito, viene installata una icona in programmi
per avviare la virtual machine.
3.3.2 Sito Web
http://www.superwaba.com.br/en/downloads.asp
3.4 Jeode Evn 1.9.3
L’installazione guidata lascia sul pc sulla quale viene effettuata anche una guida su
come eseguire gli applicativi java e creare dei collegamenti che facilitino la
cosa. Per l’esecuzione manuale infatti è necessario
utilizzare altrimenti EVM
Console in cui specificare
il
percorso
completo
dell’applicazione java da
eseguire, .class o .jar che
sia, tramite una sintassi di
questo tipo
18#"\Windows\evm.exe"
MainClass
-cp
\percorso\file.jar
E’ supportato AWT ma non SWING 1.1.1 per quanto
riguarda la parte grafica. Per poter realizzare le applicazioni eseguibili all’interno di questa jvm è necessario
compilare per java 1.3, con le versioni successive si otterrà il messaggio di ClassFormatException.
2
3.4.1 Installazione
L’installazione avviene tramite eseguibile di installazione
da installare prima su pc e poi automaticamente su Pocket
Pc tramite ActiveSync. Verrà creata una cartella in programmi con una serie di esempi e la jvm con console per
l’esecuzione dei programmi java.
3.4.2 Sito Web
http://www.insignia.com/
3.5 CRE-ME 4.10
L’esecuzione dei file .jar
o .class dovrebbe avvenire tramite l’applicativc
Jrun o modo automatico
eseguendo direttamente
i file .jar da Esplora
sorse del Pocket Pc, in
realtà
dalla
prove
tuate
sembra
non
zionare correttamente.
Dalle prove effettuate si
è potuto ovviare al
blema utilizzando la
console CrEME in cui è
possibile impostare a
mano il percorso del jar con gli eventuali parametri di
4
esecuzione, come ad esempio
-jar /percorso/file.jar
Non permette l’esecuzione delle midlet in quanto si tratta
di una jvm molto vicina alla J2SE e molto lontana dalla
J2ME (a differenza da quanto mostrato nel sito web della
software house).
A
questo
indirizzo
inoltre
http://www.nsicom.com/Default.aspx?tabid=295 è possibile trovare altri package aggiuntivi per la grafica in
swing (che dai test eseguiti non è sembrata funzionare)
javacomm, ed RMI.
3.5.1 Installazione
L’installazione avviene tramite un programma di installazione guidata che installa una parte del software su pc ed
al termine esegue automaticamente ActiveSync per
l’installazione su Pocket Pc.
3.5.2 Note
L’installazione di questa virtual machine richiede il riavvio del Pocket Pc per poter funzionare correttamente.
L’installazione crea una cartella CrE-ME in programmi
con una serie di icone per l’esecuzione della jvm e un
esempio.
3.5.3 Sito Web
http://www.nsicom.com/Default.aspx?tabid=138
Analisi Comparativa
IBM
Workplace
Client Technology
Mysaifu
Ewe Vistual
Machine
SuperWaba
Virtual Machine
Jeode EVN
CrE-ME
Version
5.7
0.2.5
1.49
5.61
1.9.3
4.10
Java Version
MIDP 2.0
J2SE 1.5
Personal Java
1.2
Personal Java
Personal Java
1.3
Personal Java
1.5
Standard
SI
SI
NO
NO
SI
SI
Additional Pachages
MMAPI
JNI, COMM
Registration/Type
SI/Trial
NO/OpenSource
5
SWING,
COMM, RMI
NO/Free
Conclusioni
Nel caso in cui sia necessaria una implementazione di
Java Micro Edition la scelta è pressoché obbligata essendo disponibile praticamente solo la distribuzione di IBM.
Per quanto riguarda invece le Java Personal Edition e Java
Standard Edition la scelta risulta più variegata. Dalle prove effettuate la più completa e performante risulta al
Mysaify il cui gruppo di sviluppo si dimostra molto attivo
per le continue correzioni di bug e incremento di funzionalità. La disponibilità di librerie aggiuntive, il rispetto
degli standard e la presenza sul sito del codice sorgente
sono i punti forti di questa implementazione.
Java Virtual Machines per PocketPC
Massimo Albertin
SI (per SDK)
/OpenSource
SI
/COMMERCI
ALE
SI/Trial
Un’alternativa seppure a pagamento viene dalla CrE-ME
che come la concorrente permette l’estensione tramite di
librerie di funzionalità ulteriori portando ad una JVM
molto simile a quella distribuita da Sun per Pc.
Per quanto riguarda le altre implementazioni analizzate
risultano tutte inferiori a quelle sopra citate sia per performances che soprattutto per rispetto degli standard e
completezza.
3
Riferimenti
Forum
on
Pocket
PC.
(s.d.).
Tratto
da
http://forum.pocketpcitalia.com/
IBM Workplace Client Technology, Micro Edition. (s.d.).
Tratto
da
http://www14.software.ibm.com/webapp/download/produ
ct.jsp?s=p&id=DVDE-634P22
Java
ME
PersonalJava.
(s.d.).
Tratto
da
http://java.sun.com/products/personaljava/
Java SE at a Glance. (s.d.). Tratto da
http://java.sun.com/javase/
Java Support on Pocket PC. (s.d.). Tratto da
http://www.comp.lancs.ac.uk/computing/users/fittond/ppc
java.html
Mikko, K. (s.d.). Java On Pocket PC Devices. Tratto da
http://www.informit.com/articles/article.asp?p=344816&r
l=1
PocketPc.
(s.d.).
Tratto
da
http://www.microsoft.com/windowsmobile/pocketpc/defa
ult.mspx
The Java ME Platform — the Most Ubiquitous
Application Platform for Mobile Devices. (s.d.). Tratto da
http://java.sun.com/javame/index.jsp
Java Virtual Machines per PocketPC
Massimo Albertin
4