J2ME & Eclipse - pikaopas

Tuomo Varis (ja Vesa Lappalainen muokkasi hieman)

J2ME:n opettelussa ehkä ikävin vaihe on kehitysympäristön käyttöönotto ja toimintaan saaminen. Tämän sivun tarkoitus on opastaa J2ME-ohjelmien teon alkuun suositun Eclipse-ympäristön parissa. Lisäksi tässä oppaassa toteutetaan yksinkertainen Hello World-tyyppinen ohjelma, jotta voimme todeta asennuksen onnistuneen.

Ohje on testattu toimivaksi seuraavassa ympäristössä: Windows XP, Eclipse 3.2.2 + EclipseME 1.6.6, Sony Ericsson SDK 2.2.4 for the Java(TM) ME Platform.

Sisällys:

  1. Wireless Toolkit
  2. EclipseME
  3. Ensimmäinen ohjelma
  4. Linkkejä
  5. Tapoja munia

1. Wireless Toolkit

Ensimmäinen vaihe on sopivan WTK:n asentaminen. WTK sisältää tarvittavat luokkakirjastot CLCD (Connected Limited Device Configuration)- MIDP (Mobile Information Device Profile)-pohjaisten ohjelmien tekemiseen, sekä yleensä muita hyödyllisiä työkaluja, kuten esimerkiksi emulaattorin ohjelmien nopeaan testaamiseen. Lista EclipseME:n tukemista WTK:sta löytyy EclipseME:n sivuilta. Suositeltavaa on käyttää kohdelaitteen (mahdollisesti oman puhelinvalmistajasi) WTK:ta tai Sunin omaa Sun Java Wireless Toolkit for CLDC:tä. Yksityiskohtaiset asennusohjeet löytyvät kyseisen WTK:n sivuilla. Asennuksen yhteydessä on tärkeää painaa mieleen polku, johon olet työkalut asentanut. Tätä tietoa tarvitaan EclipseME:n asennuksen yhteydessä

2. EclipseME

EclipseME on hyödyllinen plug-in Eclipseen, joka tekee midlettien (MIDP-pohjaisten ohjelmien) tekemisen yhtä vaivattomaksi, kuin tavallisten pöytäkoneille suunniteltujen Java-ohjelmienkin. Lisäksi se sisältää työkalut JAD-tiedostojen (Java Application Descriptor) luomiseen ja muokkaamiseen, sekä tuottaa kätevästi puhelimeen ladattavia asennuspaketteja.

Jos Eclipse-versiosi on vanhempi kuin 3.2, nyt on hyvä aika päivittää se. Uudet EclipseME-versiot eivät toimi vanhemmissa Eclipseissä.

Nämä ohjeet ovat lyhennelmä EclipseME:n kotisivuilta löytyvästä englanninkielisestä ja kuvitetusta asennusohjeesta.

Asentaminen

EclipseME on asennettavissa Eclipsen omalla Update-työkalulla. Avaa työkalu Help-valikon kautta: Software Updates ► Find and Install...

Uudemmissa tuo on kohdassa Help/Software updates.../Available Software/Add site

Valitse "Search for new features to install" ja paina Next. Seuraavaksi lisätään EclipseME:n oma päivitysosoite listaan. Valitse "New Remote Site..." ja syötä palvelun nimi ("EclipseME Update Site") ja URL: "http://www.eclipseme.org/updates/" ja paina OK. Nyt voit etsiä viimeisimmän EclipseME:n version palvelusta ja asentaa sen. Tämän jälkeen on hyvä käynnistää Eclipse uudelleen.

Nyt Window ► Preferences-ikkunassa pitäisi näkyä uusi osio, nimeltään "J2ME". Mikäli näin ei kuitenkaan ole, Eclipsen käynnistäminen uudelleen komennolla "eclipse -clean" voi auttaa.

Asetukset

Suosittelen luomaan Eclipseen uuden työtilan J2ME-projekteille, sillä tietyt asetukset ja käytänteet ovat Eclipsen osetusasetuksia mukavemmat mobiiliohjelmia väsäiltäessä. Lisätietoa näistä asetuksista ja tavoista EclipseME:n sivuilla.

Jotta EclipseME:tä voisi käyttää, täytyy sille osoittaa WTK:n laitemääritykset. Tämä tapahtuu Preferences-ikkunan J2ME-osan Device Management-osiossa. Valitse "Import...", anna hakuhakemistoksi se polku, jonne WTK:n asensit ja paina "Refresh". Valitse haluamasi laitteet ja paina "Finish". Ylimääräisten laitemääritysten tuomisesta ei ole ympäristölle haittaa, joten voit aivan hyvin valita kaikki löytyneet laitemääritykset tuotaviksi.

Myös asetusten Java-osion Debug ► Debugger Timeout kannattaa vaihtaa vähintään 15000 millisekuntiin. Muutoin ohjelmien ajaminen saattaa aiheuttaa virheitä turhaan.

3.Ensimmäinen ohjelma

J2ME-projekti luodaan valitsemalla New Project-ikkunasta projektin tyypiksi J2ME Midlet Suite. Tämän ensimmäisen ohjelman voimme luoda ihan oletusasetuksilla.

Projektiin on tietenkin lisättävä itse ohjelma. Se tehdään lisäämällä projektiin abstraktista MIDlet-luokasta periytyvä luokka. EclipseME:n avulla se käy seuraavalla tavalla:

kuva1 kuva2

Anna midletin nimeksi vaikkapa ekaMidlet ja paina Finish.

EclipseME kirjoitti meille ohjelman rungon valmiiksi. Se sisältää kaikki ne metodit, jotka ohjelman on syrjäytettävä:

import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;


public class ekaMidlet extends MIDlet {

public ekaMidlet() {
}

protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
}

protected void pauseApp() {
}

protected void startApp() throws MIDletStateChangeException {
}

}

Ylläolevia metodeita kutsutaan MIDletin elinkaaren eri vaiheissa automaattisesti. Tässä vaiheessa sen enempää J2ME APIen hienouksiin perehtymättä (Linkkilistasta löytyy mukava opas, jolla pääsee hyvin alkuun) tehdään seuraavanlainen esimerkkiohjelma: (lataa)

import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
import javax.microedition.lcdui.*; // Tarvittavat palikat käyttöliittymän käsittelyyn

public class ekaMidlet extends MIDlet {

    public ekaMidlet() {
    }

    protected void destroyApp(boolean arg0) throws MIDletStateChangeException {
    }

    protected void pauseApp() {
    }

    protected void startApp() throws MIDletStateChangeException {
        // Luodaan Alert-olio, joka on kätevä lyhyiden viestien näyttämiseen
        Alert viesti = new Alert("Hello World!");
        // Käsketään näytönkäsittelijää näyttämään viesti
        Display.getDisplay(this).setCurrent(viesti);
    }

}

Tämä ohjelma ei ole järin monimutkainen, mutta kelpaa emulaattorin testaamiseen. Emulaattorin asetuksia pääsee rukkaamaan "Run"-ikkunan (Run/Run Configurations/WirelessToolkit Emulator/New) "Emulation"-välilehdellä.

Run ikkunassa valitaan ajettava midletti ja ajotavaksi midlet (jos haku ei toimi, niin kirjoittamalla * välilyönti tuntuisi toimivan???). Jos ajosivulla ei ole valmista tämän midletin ajoa, niin sinne voi lisätä uuden tuplaklikkaamalla "Wireless Toolkit Emulation"-tekstiä ikkunan vasemmassa reunassa.

Ohjelman siirtäminen kännykässä ajettavaksi riippuu pitkälti puhelimen ominaisuuksista. Yleisimmin toimiva tapa on tehdä ohjelmasta asennuspaketti ja ladata ohjelma kännykän oman nettiselaimen kautta. Mahdollisesti myös bluetooth- tai lankasiirto on toimiva. Tiedostojen siirron jälkeen puhelimesta riippuen ohjelman joutuu asentamaan. Joitakin puhelimia varten voi joutua .jad-tiedostosta muuttamaan: "MicroEdition-Profile: MIDP-2.0" jos tuonne on tullut suurepi versionumero. .jad tiedostoa voi editoida tavallisella editorilla tai Eclipsellä "rakenteisessa muodossa" tuplakilkkaamalla .jad-nimeä projekti-ikkunassa.

Asennuskelpoisen paketin voi luoda EclipseME:n avulla J2ME-valikosta:

kuva3

Tiedostojen pitäisi ilmestyä asetuksissa määriteltyyn Deployment-hakemistoon (oletuksena "deployed"). Siirtämällä tämän hakemiston sisällön (ekaMidlet.jad ja ekaMidlet.jar) vaikkapa omien kotisivujesi alle, ja tekemällä samaan hakemistoon yksinkertaisen html-sivun, joka sisältää linkin ekaMidlet.jad-tiedostoon, voit testata ohjelman asentamista kännykkäsi selaimen kautta. Toimiva esimerkkisivu tässä. Ohjelmien asentaminen näin ei toimi kaikilla palvelimilla.

Linkkejä

5. Tapoja munia

Virheet ovat siitä inhottavia, että ne voivat ilmentyä niin että puhelimessa vaan sovellus ei käynisty, mutta mitään virheilmoituksiakaan ei tule


T. Varis 160407