Introduzione a J2ME

Il linguaggio di programmazione Java con il tempo si è evoluto e sono nati così
dei suoi "dialetti" ovvero sue diverse implementazioni. L'ultima nata
in casa Sun si chiama Java 2 Micro Edition, e come suggerisce il nome nasce
appositamente per soddisfare le esigenze di programmazione in "piccolo".
Micro sta proprio ad indicare la fascia di dispositivi a cui è legata
questa edizione di Java. Fra i dispositivi supportati troviamo per primi i cellulari
di ultima generazione i GPRS gli UMTS e i tribanda. In generale le caratteristiche
tecniche di J2ME le consentono di supportare teoricamente un ventaglio molto
ampio di dispositivi viste le richieste hardware veramente minimali. Come è
facile intuire sarebbe impossibile implementare in toto le caratteristiche di
Java in sistemi con memorie dell'ordine di pochi Mb così sono state apportate
diverse modifiche al linguaggio. Si tratta essenzialmente di rinunce fra cui:
 

1) L'impossibilità
di usare variabili in virgola mobile (peculiarità di natura hardware
spesso presente nei palmari che non utilizzano i nuovi PXA di Intel).

2) Minimale gestione
degli errori. La gestione delle eccezioni è presente ma fortemente ridotta.

3) Il gestore
della sicurezza attivo durante l'esecuzione del programma è sparito.
Questo è stato sostituito da un verificatore che si occupa in fase di
compilazione di controllare aprioristicamente la sicurezza del codice. Questo
contribuisce tuttavia ad appesantire leggermente la grandezza dei files.

4) Nuove API appositamente
studiate per la nuova implementazione.

5) Finalize() e Multithreading spariti del tutto.

6)Profonde differenze
nella JVM ora KVM e nuova architettura MIDP.

LA NUOVA ARCHITETTURA MIDP : Cercando di semplificare
al massimo l'architettura possiamo enucleare 4 livelli dal più basso
al più alto: OS del dispositivo, K Virtual Machine, CLDC 1.0, MIDP 1.0.
Questa è una semplificazione perché in questi casi sono spesso
presenti librerie OEM ed in generale la tendenza è quasi a sistemi Embedded.
Per chiarire le componenti citate bisogna introdurre i concetti di Profilo e
Configurazione: la configurazione (CLDC 1.0) riguarda essenzialmente la KVM
e le caratteristiche hardware del dispositivo, il profilo, il Mobile Information
Device Profile (MIDP 1.0 ), è il supporto software per la parte più
strettamente riguardante le periferiche di comunicazione presenti nel dispositivo. Vediamo adesso quali sono le caratteristiche hardware necessarie all'utilizzo di J2ME.

- 128 Kb di memoria

- 32Kb di memoria allocabile per l'esecuzione dei programmi

- l'alimentazione  tramite batterie

-connessione wireless di tipo intermittente. Le caratteristiche
principali invece della KVM sono la possibilità di girare su processori
a 25Mhz e a 16 bit e la necessità di 20-40 Kb di memoria dinamica e 80
kb di memoria totali, requisiti che gli attuali cellulari sono ampliamente in
grado di soddisfare. Passando ai programmi che vengono creati con J2ME essi si chiamano Midlet dal nome del profilo utilizzato il MID. Per essere scritte in questo profilo sono necessari alcuni requisiti minimi quali:

- le sopracitate capacità in memoria

- la possibilità di leggere scrivere dati attraverso la rete

- uno schermo con risoluzione di almeno 96x54

-possibilità di visualizzare immagini bitmap

Una Midlet ha una struttura in files diversa da quella tipica Java. Java una volta compilati i files crea per ogni classe un file.class relativo. Situazione diversa per la
Midlet in cui vengono creati 2 soli files uno con la nota estensione .jar ed
un altro nuovo di tipo .jad. Il .jar di fatto contiene praticamente tutto il
programma e tutte le risorse in files utilizzate da esso. Il .jad per capirsi
è una sorta di header stile C ma in generale più articolato tramite
la specificazione di più attributi dell'applicazione. Il collegamento
fra il .jar ed il .jad è dato da un file detto manifest presente all'interno
del .jar. La coerenza fra i files deve essere perfetta ; in pratica gli attributi
devono perfettamente combaciare con quelli reali al momento dell'esecuzione
pena la non utilizzabilità del software. In definitiva se
volete andare a vedere meglio di cosa si tratta andate http://java.sun.com/products/j2mewtoolkit/index.html
dove potrete scaricare il comodo Rad per sviluppare applicazioni , direttamente
fornito da Sun.