In questa lezione iniziamo con l'esaminare la struttura di una midlet. La classe principale dell'applicazione dovrà contenere i seguenti metodi:
startApp()
: chiamato dal JAM per avviare l'applicazione;destroyApp()
: chiamato dal JAM all'uscita dall'applicazione;pauseApp()
: chiamato dal JAM quando l'applicazione deve andare in pausa (ad esempio quando si riceve una telefonata e il software è in esecuzione).
A sua volta la midlet può comunicare con il JAM invocando i seguenti metodi:
notifyDestroyed()
: viene richiesto al JAM lo shutdown;notifyPaused()
: viene richiesta al JAM la pausa;resumeRequest()
: viene richiesto al JAM di riportare attiva la midlet che è in pausa.
Nel nostro primo esempio implementeremo solo il metodo startApp
, che ci permetterà di stampare, nella console del WTK, i dati letti dal file jad (ovvero "nome della midlet" e "vendor").
Listato 1. Codice della midlet
import javax.microedition.midlet.*;public class MyMidlet extends MIDlet
{
public MyMidlet()
{
System.out.println("Constructor");
}protected void startApp() throws MIDletStateChangeException
{
System.out.println("NAME: "+getAppProperty("MIDlet-Name"));
System.out.println("VENDOR: "+getAppProperty("MIDlet-Vendor"));
}protected void pauseApp() { }
protected void destroyApp(boolean arg0) throws MIDletStateChangeException { }
}
Compiliamo premendo il tasto "Build", del WTK, e lanciamo l'applicazione premendo "Run" (è possibile selezionare l'emulatore preferito dal menù a tendina che si trova sotto i pulsanti); quando appare l'emulatore premiamo il tasto menù in corrispondenza di "Launch" (in basso a destra).
Il risultato che otteniamo è presentato sotto: nella console del WTK sono visualizzati i dati letti direttamente dal jad (si può confrontare questi valori con quelli realmente presenti nel file, premendo il tasto "Settings" e andando nel tab "Required").
Nel jad sono presenti anche parametri opzionali (visibili dal tab "Optional") e si possono inserire altri dati a nostro piacimento (dal tab "User Defined"), definendone il nome ed il valore. Questa possibilità è utile, ad esempio, nel caso si vogliano immettere dati di configurazione direttamente in questo file.
Per completare la creazione della midlet andiamo su Project>Package>Create Package (o "Create Obfuscated Package" se abbiamo installato un offuscatore): nella directory bin di MyMidlet troviamo, ora, oltre a MyMidlet.jad, anche MyMidlet.jar.
Negli esempi successivi, in cui vedremo applicazioni grafiche, si potranno usare questi due file trasferendoli per eseguire l'applicazione J2ME direttamente nei nostri cellulari.
Tools dai produttori
A volte, le midlet, devono essere compatibili con modelli di terminale che appartengono ad un determinato fornitore; per questo è utile integrare il WTK con i tools forniti direttamente dai siti dei produttori stessi:
- Nokia - Forum Nokia
- SonyEricsson - Developer SonyEricsson
- Motorola - Developer Motorola
- Samsung - Developer Samsung
- Siemens (BenQ) - Developer Siemens (BenQ)
In questo modo si potrà testare su emulatori, dei reali cellulari, le applicazioni realizzate.