J2ME MIDLET PELISOVELLUKSEN SUUNNITTELU JA TOTEUTUS NOKIAN 7210 PUHELIMEEN

Koko: px
Aloita esitys sivulta:

Download "J2ME MIDLET PELISOVELLUKSEN SUUNNITTELU JA TOTEUTUS NOKIAN 7210 PUHELIMEEN"

Transkriptio

1 T a m p e r e e n A m m a t t i k o r k e a k o u l u L i i k e t a l o u s Tutkintotyöraportti J2ME MIDLET PELISOVELLUKSEN SUUNNITTELU JA TOTEUTUS NOKIAN 7210 PUHELIMEEN Satu Pietarinen

2 2 Tekijä(t): Koulutusohjelma(t): Tutkintotyön nimi: Satu Pietarinen Tietojenkäsittely J2ME MIDlet pelisovelluksen suunnittelu ja toteutus Nokian 7210 puhelimeen Title in English: Designing and producing the J2ME MIDlet game application for the Nokia 7210 mobile phone Työn valmistumiskuukausi ja -vuosi: tammikuu 2004 Työn ohjaaja: Paula Hietala Sivumäärä: 56 TIIVISTELMÄ J2ME on alustariippumaton ohjelmistoympäristö matkapuhelinten ja kämmentietokoneiden sovellusten kehittämistä varten. Sen avulla on mahdollista tehdä Java-kielisiä MIDlet-sovelluksia, jotka toimivat useiden eri valmistajien laitteissa. Sovellukset ovat ladattavissa päätelaitteelle Internet-verkosta tai pöytätietokoneelta. Tutkintotyö on Nokian keväällä 2003 julkaiseman MIDlet-sovelluskilpailun määrittelyn mukaan tehty pelisovellus Nokian puhelimeen. Työn tavoitteena oli suunnitella ja toteuttaa päätelaitteella toimiva pelisovellus. Sovelluksen sisällön suunnittelussa noudatettiin pelisuunnittelun yleisiä ohjeita. Sovelluksen ulkoasun suunnittelun tavoitteena oli tehdä mobiililaitteen pienikokoiselle näytölle soveltuvaa grafiikkaa. Sovelluksesta tehtiin helppokäyttöinen ja sen käyttöliittymästä yhtenevä muiden päätelaitteen pelisovellusten kanssa. Työn toteutuksen aikana pelin toiminnallisuutta testattiin emulaattorissa ja päätelaitteella. Testaus osoittautui erittäin tärkeäksi osaksi työtä. Tutkintotyön kirjallisessa osuudessa käsitellään J2ME-arkkitehtuuria ja sen erityispiirteitä, MIDletsovelluksen sisältöä ja käytännön ohjelmointia. Kartoitusosio sisältää käyttäjän tarpeiden kartoittamisen sekä sovelluksen suunnittelulle ja toteutukselle asetettujen rajoitusten tarkastelua. Suunnitteluvaiheessa esitellään sovelluksen sisältöä, rakennetta, toiminnallisuutta, visuaalista ilmettä ja suunnittelun ongelmia. Sovelluksen toteutusosassa esitellään käytännön peliohjelmointia ja sovelluksen teossa esiintyneitä ongelmia. Pelisovellus on tutkintotyön liitteenä levykkeellä ja se on asennettavissa päätelaitteelle JAD-tiedostona. Avainsanat: J2ME MIDlet Java Ohjelmointi Pelisovellus

3 3 Sisällysluettelo 1 Johdanto J2ME (Java TM 2, Micro Edition) J2ME:n historia J2ME:n arkkitehtuuri Virtuaalikone KVM (KiloByte Virtual Machine) KVM:n rajoitukset KVM ja luokkien tarkistus Tietoturva J2ME konfiguraatiot Connected Device Configuration (CDC) Connected Limited Device Configuration (CLDC) CLDC kirjastot Kansainvälisyys Generic Connection Framework (GCF) Kuvio 4 Esimerkki Connector-luokan käytöstä (Kontio 2002: 44) Profiili Mobile Information Device Profile (MIDP) Record Management System ( RMS ) MIDP -käyttöliittymäluokat MIDlet MIDletin elinkaari ja metodit MIDletin luominen MIDlet ja Applet Kartoitus Käyttäjän tarpeet Tekniset rajoitteet suunnittelulle ja toteutukselle Pelisuunnittelu Pelin sisältö Pelin rakenne Sovelluksen visuaalinen ilme Suunnittelun ongelmat Sovelluksen toteutus Toiminnallisuuden kuvaus Sovelluksen käyttöliittymä Screen Display Form Menu -valikot ja käskyt Image Double Buffering Canvas Spritet Animointi PNG (Picture Network Graphic) Spriten piirto Törmäystarkistus Optimointi Monisäikeinen pelin ohjelmointi Thread-luokan metodit Runnable-rajapinta Säikeiden prioriteetit Säikeen tilat Synkronointi wait() ja notify() -metodit Timer Ongelmat sovellusta tehtäessä Testaus...51

4 6.8 Sovelluksen lataaminen päätelaitteelle Havaintoja Johtopäätöksiä...54 Liitteet...57 Liite 1: Sanasto...57 API (Application Programming Interface) kokoelma luokkia joita voidaan sovelluksessa käyttää. Yhdessä ne muodostavat kirjaston, jota kutsutaan API- rajapinnaksi...57 CLDC (Connected Limited Device Configuration) on J2ME-konfiguraatio. CLDC määrittelee Java-kielen, Java virtuaalikoneen (KVM), rajapinnat (API:t) syöttö- ja tulostustoimintojen suorittamiseen, perus verkkotuen (GCF) ja tietoturvan...57 J2ME (Java 2, Micro Edition) on kokoelma määrityksiä ja teknologioita jotka tukevat Java-kieltä. J2ME kattaa laajan valikoiman laitteita kämmentietokoneista auton navigaatio järjestelmiin. J2ME jaetaan konfiguraatioihin ja profiileihin, jotka määrittelevät Java ympäristön tietyn tyyppiselle laitteelle MIDlet on Java-kielinen MIDP-sovellus joka toimii päätelaitteella MIDlet Suite (eli JAR) sisältää useamman MIDlet-sovelluksen pakattuna yhteen JAR-tiedostoon. Päätelaitteella voi olla useita JAR-paketteja

5 5 1 Johdanto Tutkintotyö on Nokian keväällä 2003 julkaiseman sovelluskilpailun määrittelyjen mukaan tehty Java-kielinen (MIDlet) pelisovellus Nokian 7210 puhelimeen, joka tukee Java 2 Micro Edition (J2ME) -teknologiaa. Sovellus sai Nokian määritysten mukaan olla kooltaan enintään 64 kilotavua. Pelin grafiikan tuli soveltua käytettäväksi päätelaitteen 128x128 pikselin näytöllä ja päätelaite käyttää KVM-virtuaalikonetta, MIDP 1.0 -profiilia ja CLDC 1.0 -konfiguraatiota. Tutkintotyön tavoitteena oli tehdä päätelaitteessa toimiva MIDlet pelisovellus ja selvittää, miten MIDlet-ohjelmointi eroaa pöytäkoneelle tehdyn pelisovelluksen ohjelmoinnista. Työssä esitellään J2MEteknologiaa ja käytännön peliohjelmointia. Työn on tarkoitus olla käytännön apuna uusille MIDlet-ohjelmoijille ja tuoda esiin niitä asioita, joihin tulisi kiinnittää huomiota matkapuhelinten pelisovelluksia kehitettäessä. Tutkintotyö on tehty sovelluskehittäjän näkökulmasta. Tutkintotyönä tehty sovellus on toimintapeli nimeltä SpaceBall ja se on tehty laitesuuntautuneille käyttäjille, joille on tärkeää, että puhelimessa on mahdollisimman paljon erilaisia ominaisuuksia kuten esim. pelejä. Se soveltuu pelattavaksi kaiken ikäisille henkilöille ja molemmille sukupuolille. Pelin toteutus on tehty englannin kielellä. Sovelluksen peli-idea ja käyttöliittymä ovat yksinkertaiset ja helppokäyttöiset. Pelin toimintaidea perustuu puhelimen näppäimistöltä tapahtuvaan käsi - silmä koordinaatiokykyyn. Sovellus on testattu toimivaksi pöytäkoneella Nokian 6310i MIDP SDK Beta 0.9 -emulaattorissa ja Nokian 7210 puhelimessa. Tutkintoyö aloitettiin tutustumalla matkapuhelimissa pelattaviin peleihin, J2ME MIDlet ohjelmointia käsittelevään kirjallisuuteen ja Borlandin JBuilder-ohjelmaan, johon on liitetty Nokia Developer's Suite kehitysympäristö. Tutkintotyössä perehdytään ensin J2ME teknologiaan ja sen arkkitehtuuriin. Tämän jälkeen tutkintotyössä käsitellään tutkintotyönä tehdyn pelisovelluksen suunnittelun ja toteutuksen eri vaiheita, sekä ohjelmointitekniikoita.

6 6 2 J2ME (Java TM 2, Micro Edition) 2.1 J2ME:n historia Ensimmäisissä matkapuhelimissa oli mukana ohjelmisto, jota käyttäjä ei itse pystynyt muokkaamaan. Matkapuhelimien ohjelmat eivät olleet yhteensopivia muiden laitevalmistajien kanssa, eivätkä käyttäjän siirrettävissä tai päivitettävissä kuten tietokoneissa. Kun haluttiin käyttöön uusi sovellus, oli ostettava kokonaan uusi laite. Matkapuhelinten laitevalmistajat ja Sun Microsystems olivat samaa mieltä siitä, että alustasta riippumaton Java-ohjelmointikieli mahdollistaisi samojen ohjelmien käyttämisen eri valmistajien laitteissa. Matkapuhelimet asettivat kuitenkin vähäisten resurssiensa takia omat vaatimuksensa ja niihin täytyi suunnitella aivan uusi Java-ympäristö. Sunin ensimmäinen ratkaisu oli kehittää sen aikaisesta (1997) alustasta Java AE:sta (Java Application Environment) kolme uutta teknologiaa käytettäviksi erilaisissa laitteissa. Nämä teknologiat olivat Personal Java AE, Embedded Java AE sekä Java Card. Jokaiselle laitekategorialle tehtiin sopiva virtuaalikone ja rajoitettiin mukana tulevien luokkakirjastojen määrää. Näiden teknologioiden ongelmana kuitenkin oli, että ne eivät mainittavasti tukeneet ohjelmistojen siirrettävyyttä eri laitevalmistajien laitteiden välillä (Sun 1998). Vuonna 1998 Sun julkisti Java 2:n ja kehitysympäristöt jaettiin kuvan (Kuvio 1) mukaisesti kolmeen erilaiseen kokonaisuuteen niiden käyttötarkoituksen mukaan. Nämä Java alustat ovat: J2EE (Java 2 Enterprise Edition), J2SE (Java 2 Standard Edition) ja J2ME (Java 2 Platform, Micro Edition). (Muchow 2002.) Server Workstation, Laptop Communicator, Net TV Pager, SmartPhone Smartcard PDA J2EE J2SE CDC J2ME CLDC Java Language HotSpot JVM CVM KVM CardVM Kuvio 1 Java arkkitehtuuri ja kohde alustat (Kontio 2002: 4)

7 7 J2SE tunnettiin aiemmin pelkkänä Javana. Se on suunniteltu työasemien sovellusten kehittämiseen ja se sisältää kaikki perus Java-luokat. J2EE on näistä kolmesta kehitysympäristöstä laajin. Se on kehitetty palvelimille ja yritysten kokonaisvaltaisten palvelujen tietojenkäsittelyyn. Näitä palveluja ovat mm. online-kaupankäynti, asiakashallinta- ja kirjanpito-järjestelmät. J2EE sisältää myös sisäänrakennetun tuen servlet-, JSP- ja XML-ohjelmoinnille. J2ME on modulaarinen Java-ympäristö, joka on suunniteltu laitteille, joiden käytössä on vähän muistia, pieni prosessori ja pienikokoinen näyttö kuten esim. kämmentietokoneet ja matkapuhelimet (Muchow 2002). Kuviosta 1 näkyy myös, että J2EE:tä käytetään palvelimien toimintojen kehittämiseen, kun taas J2SE ja J2ME on suunniteltu kehittämään yksittäisiä sovelluksia tai ratkaisuja, jotka käyttävät J2EE-teknologialla tehtyjä palvelin-sovelluksia (Kontio 2002: 4). 2.2 J2ME:n arkkitehtuuri J2ME jakaa laitteet eri ryhmiin horisontaalisesti laitteistoresurssien mukaan, sekä vertikaalisesti niiden käyttötarkoitusten mukaan. Samassa vertikaalisessa ryhmässä olevilla laitteilla voi kuitenkin olla erikokoiset laitteistoresurssit, jolloin ne eivät kuulu samaan horisontaaliseen ryhmään. J2ME:n päämääränä on tukea jo markkinoilla olevia laitteita siten, että jokaisen laitteen Java-ympäristö sisältäisi vain ne ominaisuudet, joita kyseisellä laitteella tarvitaan. Tästä syystä J2ME:stä ei ole olemassa vain yhtä toteutusta. J2ME on Java-ympäristö, joka kootaan osista laitteen ominaisuuksien ja käyttötarkoituksen mukaan. Näitä osia ovat konfiguraatiot ja profiilit, jotka perustuvat edellä kuvattuun laitteiden luokitteluun. (Kontio 2002: 5.) J2ME-konfiguraatio määrittelee virtuaalikoneen, joka toimii kuvan (Kuvio 2) mukaisesti laitteiston varusohjelmakerroksen päällä. Konfiguraatio määrittää myös joukon luokkakirjastoja, jotka sisältävät vain kaikki tarpeelliset ja olennaiset luokat. J2ME-konfiguraatioita on kaksi (Sun 2000a): Connected Device Configuration (CDC) ja Connected Limited Device Configuration (CLDC).

8 8 Sama konfiguraatio voi kattaa käyttötarkoitukseltaan aivan erityyppisiä laitteita, kuten esim. matkapuhelimia ja pesukoneita. Ei ole tarkoituksenmukaista, että pesukoneen ohjelmia käytettäisiin matkapuhelimessa tai toisinpäin. Koska konfiguraatio ei huomioi erilaisten laitteiden erikoistarpeita, tätä tarkoitusta varten on kehitetty profiilit. Profiilit määritellään aina tietyn konfiguraation päälle ja ne laajentavat konfiguraation luomaa Java-ympäristöä. (Sun 2000a.) Sovelluskerros (Midlet) Profiilikerros (MIDP) Konfiguraatiokerros (CLDC) Virtuaalikonekerros (KVM) Laitteiston varusohjelmistokerros Kuvio 2 J2ME arkkitehtuuri (Mahmoud 2002: 4) Profiilit määritellään aina JCP:n (Java Community Process) kautta yhdessä Sun:in, sekä laitevalmistajien kanssa (Sun 2001a). Profiili määrittelee rajapinnat ja luokkakirjastot, joita tarvitaan hyödyntämään kaikki kyseisen laitteen tarjoamat ominaisuudet (Sun 2000b). Profiili mahdollistaa myös ohjelmien siirrettävyyden laitteesta toiseen. Ohjelma luodaan profiilin päälle ja se käyttää vain ja ainoastaan tämän profiilin tarjoamia rajapintoja. Ohjelma toimii kaikissa laitteissa joissa kyseinen profiili on toteutettu. Profiilien lisäksi laitevalmistajalla on mahdollisuus luoda omia rajapintoja. Niiden avulla ohjelmoija pääsee käsiksi laitteen ominaisuuksiin, joita yksikään konfiguraatio tai profiili ei tue. Tämänkaltaisten rajapintojen käyttö tosin vaikeuttaa ohjelman siirrettävyyttä toisiin laitteisiin. (Sun 2002a.) Matkapuhelinten käyttämälle CLDC-konfiguraatiolle on tällä hetkellä määritelty ainoastaan yksi profiili: MIDP (Mobile Information Device Profile). MIDP-määritys antaa laite- ja ohjelmistovalmistajille varsin vapaat kädet tehdä minimivaatimukset täyttävä toteutus. Päätelaitteelta täytyy löytyä vähintään: verkkoyhteys, tietueille perustuva tallennusjärjestelmä ja lcdui (liquid crystal display user interface) -määritystä noudattava käyttöliittymä (Muchow 2002).

9 9 2.3 Virtuaalikone KVM (KiloByte Virtual Machine) J2ME tarvitsee sovellusten suorittamiseen Java-alustan eli virtuaalikoneen. Matkapuhelimissa käytettävä virtuaalikone on nimeltään KVM (KiloByte Virtual Machine). Se on pienikokoinen ja helposti siirrettävä virtuaalikone (Kontio 2002: 29). Siitä on jätetty pois joitakin muiden virtuaalikoneiden ominaisuuksia, joiden ei ole katsottu olevan tarpeellisia kohdelaitteissa. Näin virtuaalikonetta tukevan luokkakirjaston joukkoa on saatu pienennettyä, joka puolestaan mahdollistaa virtuaalikoneen päälle sijoittuvan konfiguraation (CLDC) toimimisen pienemmässä tilassa (Sun 2000a). KVM on kirjoitettu C-kielellä, joten se on helposti siirrettävissä erilaisille alustoille, joille löytyy C-kielinen kääntäjä. KVM voi ladata luokkia luokka hakemistosta tai JAR (Java Archive) -tiedostoista (Mahmoud 2002: 22) KVM:n rajoitukset KVM-virtuaalikoneesta on olemassa useita eri versioita. Kun KVMvirtuaalikone toimii CLDC-konfiguraation kanssa on siitä poistettu ominaisuuksia, jotka ovat joko liian kalliita toteuttaa tai joiden olemassaolo toisi tietoturva-ongelmia (Mahmoud 2002: 21): CLDC:tä käyttävillä laitteistolla ei ole tukea liukuluvuille. CLDC perustaisissa sovelluksissa ei siis voida käyttää liukulukuja, kuten float tai double. CLDC ja MIDP sisältävät tuen säikeille, koska suurin osa MIDPsovelluksista perustuu säikeille. Ne eivät kuitenkaan tue säie ryhmiä tai ns. demoni säikeitä (daemon threads). CLDC rajapinta ei sisällä Object.finalize()-metodia, eli resursseja ei voida sulkea ennen kuin olio on kerätty roskiin. Ajonaikaisille virheille CLDC määrittelee vain kolme virheluokkaa: java.lang.error, java.lang.outofmemoryerror ja java.lang.virtualmachineerror. Ei-ajonaikaiset virheet käsitellään laitteesta riippuen joko sulkemalla sovellus, tai uudelleen käynnistämällä laite. KVM ei sisällä JNI:tä (Java Native Interface), koska se veisi liikaa muistia kohdelaitteessa ja toisi lisäksi tietoturva ongelmia. Tämä aiheuttaa sen, ettei sovelluksia ohjelmoitaessa voida käyttää mitään natiivirajapinnan kuvakkeita, tai esim. puhelimen soittoääniä. Java-virtuaalikoneessa, joka tukee CLDC:tä, täytyy olla sisäänrakennettu luokkalataaja, jota ei voi tietoturvan takia

10 ylikirjoittaa tai korvata käyttäjän toimesta. Sovellus ei voi vaikuttaa siihen kuinka luokat ladataan, koska luokkalataajan voi määritellä ja tuottaa vain ajonaikainen järjestelmä KVM ja luokkien tarkistus J2SE:n Java-virtuaalikoneessa on luokkatarkistaja, joka on vastuussa ajonaikana virheellisten luokkien hylkäämisestä. Tämä tarkistus on aikaa vievää ja siihen tarvitaan kilotavua ajonaikasta muistia. KVM:n muistin koko on kilotavua. Rajoitetun muistin takia KVM:n suunnittelijat päättivät siirtää suurimman osan tarkistuksesta päätelaitteen sijaan palvelin-koneelle, josta sovellus ladataan. Tätä toisella laitteella tapahtuvaa tarkistusta kutsutaan esitarkistukseksi (preverification). Esitarkistuksen tuloksena saadut luokka-tiedostot sisältävät ylimääräistä tietoa varmistamassa, että ajonaikainen tarkistaja voi suorittaa työnsä minimaalisella muistilla ja mahdollisimman nopeasti. (Mahmoud 2002: 22.) Tietoturva CLDC tietoturva on tiukempi kuin J2SE:ssä. Tämä tietoturvamalli on jakautunut kahteen alueeseen: virtuaalikonetason ja sovellustason tietoturvaan. Virtuaalikonetasolla edellisessä luvussa kuvattu esitarkistus varmistaa, ettei luokan tavukoodi sisällä viittauksia virheellisiin muistipaikkoihin, eikä sovellus pysty vahingoittamaan laitetta, jolla ne toimivat. Sovellustasolla KVM sisältää yksinkertaisen ns. hiekkalaatikko tietoturvamallin, jossa sovellus toimii suljetussa ympäristössä. Tällöin sovellus voi kutsua vain laitteen tukemia luokkia. (Mahmoud 2002: 23.) 2.4 J2ME konfiguraatiot Connected Device Configuration (CDC) CDC-konfiguraatio on tarkoitettu lähinnä seuraavan sukupolven laitteisiin, joissa on paljon laitteistoresursseja ja monipuoliset hallintalaitteet. Tällaisia laitteita ovat mm. television digitaalivastaanottimet, Internet televisiot, kehittyneemmät kommunikointivälineet sekä autojen viihde- ja navigointi-järjestelmät. (Sun 2001b.)

11 Connected Limited Device Configuration (CLDC) CLDC on konfiguraatio laitteille, joilla on rajoitetummat resurssit kuin CDC:tä käyttävillä. Tyypillisiä tämän kaltaisia laitteita ovat matkapuhelimet, PDA- ja hakulaitteet. Näille laitteille on ominaista, että niiden käyttömuistin koko on kilotavua, näyttö on kooltaan pieni ja tehonlähteenä käytetään akkua (Muchow 2002). Laitteita valmistetaan markkinoille suuria määriä ja laitteistoresurssit on pidettävä pieninä, jotta laitekustannukset pysyisivät mahdollisimman alhaisina (Sun 2000b). CLDC:n tarkoituksena oli luoda Java-ympäristö, joka toteuttaa suurimman osan Java standardista, mutta tarvitsee toimiakseen mahdollisimman vähän muistia. CLDC määrittelee tällä hetkellä sitä käyttäville laitteille seuraavat toiminnallisuudet: Java-kieli, virtuaalikone, ydinkirjastot, rajapinnat erilaisten syöttö- ja tulostustoimintojen suorittamiseen, perus verkkotuki ja tietoturva (Mahmoud 2002: 20). CLDC-konfiguraation tärkeimpinä ominaisuuksina on pidetty langattomien verkkoyhteyksien tukemista ja dynaamista Java-ohjelmien latausta laitteille. Lisäksi CLDC mahdollistaa laitteille usean tyyppisten siirrettävien sovellusten rakentamisen. Tällaisia sovelluksia ovat mm. hyötyohjelmat ja verkkosovellukset (esim. uutisten luku ja sähköposti sovellukset). Yksi merkittävin ryhmä J2ME:lle koodattavista ohjelmista ovat pelit (Kontio 2002: 6). CLDC ei määrittele käyttöliittymää, sitä miten ohjelmat asennetaan, käynnistetään tai poistetaan laitteilta (ohjelmistojen elämänkaari). Se ei anna tukea eri hallintalaitteille (kosketusnäytöt ym.), eikä tapahtuman käsittelylle. Nämä ovat ominaisuuksia, joita toteuttavat CLDC:n päälle sijoittuvat profiilit (Sun 2000b) CLDC kirjastot CLDC kirjaston ohjelmointirajapinnat (API) voidaan jaotella luokkiin, jotka ovat osajoukko J2SE API:sta ja luokkiin, jotka on kehitetty erityisesti CLDC:tä varten. J2SE rajapinnat vaativat noin 20 megatavua muistia, joka ylittää pienikokoisten laitteiden muistin kapasiteetin. Tästä syystä CLDC käyttää vain Taulukossa 1 lueteltuja luokkia, jotka periytyvät J2SE alustasta (Mahmoud 2002: 23). Matkapuhelinten virheenkäsittely ominaisuudet ovat rajoitetut ja ne reagoivat eri tavalla virhetilanteisiin: yksi laite antaa virheilmoituksen, kun taas toinen suorittaa automaattisen ohjelman keskeytyksen (Kontio 2002: 43). Kaikkien J2SE-alustasta perittyjen luokkien täytyy käyttää täsmälleen samoja poikkeuksia kuin alkuperäisten J2SE-luokkien, joten CLDC-konfiguraatiolle periytyvät myös Taulukossa 2 luetellut poikkeusja virheluokat.

12 Erityisesti CLDC:tä varten suunnitellut rajapinnat ovat: javax.microedition.io, joka määrittelee GCF (Generic Connection FrameWork) -tietoliikenne toteutuksen ja javax.microedition.lcdui, joka sisältää korkean tason käyttöliittymäluokat (Kontio 2002: 40). Taulukko 1 CLDC-konfiguraation perityt J2SE luokat 12 Paketti java.lang java.io java.util Luokka Boolean, Byte, Character, Class, Integer, Long, Math, Object, Runnable, Runtime, String, StringBuffer, System, Thread, Throwable ByteArrayInputStream, ByteArrayOutputStream, DataInput, DataInputStream, DataOutput, DataOutputStream, InputStream, InputStreamReader, OutputStream, OutputStreamWriter, PrintStream, Reader, Writer Calendar, Date, Enumeration Hashtable, Random, Stack Time, Vector PACKAGE CLASS Taulukko 2 CLDC-konfiguraation perityt J2SE poikkeus- ja virheluokat Ta Paketti Luokka java.lang java.io java.util ArithmetricException, ArrayIndexOutOfBoundsException, ArrayStoreException, ClassCastException, ClassNotFoundException, Error, Exception, IllegalAccessException, IllegalArgumentException, IllegalMonitorStateException, IllegalThreadStateException, IndexOutOfBoundsException, InstantiationException, InterruptedException, OutOfMemoryException, NegativeArraySizeException. NumberFormatException, NullPointerException, RuntimeException, SecurityException, StringIndexOutOfBoundsException, VirtualMachineError EOFException, IOException, InterruptedIOException, UnsupprotedEncodingException, UTFDataFormatException EmptyStackException, NoSuchElementException

13 Kansainvälisyys Laitteissa, jotka käyttävät CLDC:tä tulisi huomioida kansainvälisyys. Sovelluksen tulee varautua eri kieliversioille, fonteille jne. Käytännössä tämä tarkoittaa sitä, että sovelluksen ohjelmakoodiin ei tulisi kirjoittaa suoraan esim. käyttäjälle ohjelman aikana ilmestyviä ilmoituksia koskien käytettävää kieltä. Kielivalintojen tulisi tapahtua käyttäjän toimesta ikonien tai valikon kautta. CLDC:lle kansainvälistäminen tarkoittaa, että järjestelmän tulee tukea Unicode-merkkijärjestelmää, johon on olemassa tuki InputStreamReader ja OutputStreamWriter luokissa. (Kontio 2002: 43-44) Generic Connection Framework (GCF) CLDC:n verkkoyhteyksien muodostaminen perustuu Generic Connection Framework (GCF) -kehykseen. Tässä kehyksessä kaikki verkkoyhteydet muodostetaan Connector-luokan open(string)-metodin avulla (Kontio 2002: 44). Verkkoyhteyden tieto siirretään yksinkertaisena merkkijonona ja yhteyden tyyppiä on helppo vaihtaa tarvittaessa. Näin sovelluksen koodi pysyy samana, riippumatta siitä mitä protokollaa käytetään (Mahmoud 2002: 27). Metodia open(string) käytetään kuvan (Kuvio 3) esimerkkien mukaisesti seuraavalla syntaksilla: Connector.open("protokolla:osoite;parametrit"); Connector.open( ); Connector.open( socket:// :8080 ); Connector.open( datagram:// :8090 ); Connector.open( comm.:0;baudrate=9600 ); Connector.open( file://j2me.doc ); //HTTP //socket //datagrammi //sarjaportti //tiedosto Kuvio 3 Esimerkkejä protokollien käytöstä (Kontio 2002: 44) Connector-luokkaa käytetään kuvan (Kuvio 4) mukaisesti. Metodin open(string) epäonnistuminen laukaisee IOException-poikkeuksen ja avatut yhteydet suljetaan finally-lohkossa.

14 14 Connection c = null; try{ c = Connector.open( ); } catch (IOException io{} //yhteys suljetaan finally{ try{ if (c!=null) c.close(); } catch (IOException io){} } Kuvio 4 Esimerkki Connector-luokan käytöstä (Kontio 2002: 44) Connector-luokan lisäksi GCF sisältää kuvassa (Kuvio 5) näkyvät erikoistuneet rajapinnat. Connection rajapinta sisältää vain kaksi metodia: open() ja close(). Rajapinnat perivät niiden yläpuolella olevien rajapintojen metodit. Connection StreamConnectionNotifier InputConnection OutputConnection DatagramConnection StreamConnection ContentConnection Kuvio5 Generic Connection Framework -rajapinnat (Kontio 2002: 45) InputConnection-rajapinnan metodeilla avataan tietoa lukemista varten, OutputConnection-metodeilla tietoa kirjoitetaan ja StreamConnectionmetodi käyttää edellä mainittuja metodeja perimällä ne. StreamConnectionNotifier-rajapinnan metodit odottavat ensin yhteyden saamista, jonka jälkeen ne palauttavat StreamConnection-rajapinnan. ContentConnection-rajapinta käsittelee yhteyden metatietoja ja DataGramConnection-rajapinta lähettää, tai vastaanottaa datagrammeja. (Kontio 2002: 45.)

15 15 CLDC ei sisällä tapaa toteuttaa mitään verkkoyhteyteen tarvittavaa protokollaa, vaan se on jätetty profiilin tehtäväksi. MIDP-profiili lisää HttpConnection-rajapinnan, joka mahdollistaa HTTP-yhteyden. MIDPprofiili voi myös tukea socket-kantoja tai datagrammeja (Internet verkon paketti). Näitä käytettäessä on kuitenkin muistettava, että sovellus ei välttämättä toimi kaikissa päätelaitteissa, tai kaikissa verkoissa. (Kontio 2002: 44.) 2.5 Profiili Mobile Information Device Profile (MIDP) J2ME:tä varten on kehitetty Mobile Information Device -profiili (MIDP), jonka ensisijaisena tehtävänä on määritellä rajapinta ohjelmistokehittäjiä varten. MIDP sijoittuu päätelaitteelle kuvan (Kuvio 6) mukaisesti. MIDP-sovellusta kutsutaan nimellä MIDlet. Sovellukset voivat olla yksittäisiä MIDlettejä tai ns. MIDlet Suite, joka sisältää useamman MIDlet-sovelluksen pakattuna yhteen JAR-tiedostoon. Päätelaitteella voi olla useita JAR-paketteja, mutta tietyn sovelluksen kaikkien luokkien on oltava samassa paketissa (Kontio 2002: 47). Kuvio 6 MIDP arkkitehtuuri (Mahmoud 2003) MIDP:tä käyttävien laitteiden resursseja rajoittavat: laskentateho, muistin määrä, verkkoyhteyden nopeus ja laatu, sekä näytön koko. MIDP Specification 1.0 -määrityksessä on sitä käyttäville laitteille asetettu minimirajat. Laitteiden näyttöjen tulee täyttää seuraavat vaatimukset: näytön koon on oltava vähintään 96x54 pikseliä, värimäärän kuvauksen tulee olla vähintään 1-bittinen (musta-valkoinen), pikselin muodon on oltava 1:1 ja lisäksi laitteessa tulee olla yhden/kahden käden näppäimistö, tai kosketusnäyttö. Laitteissa tulee olla 128 kilotavua pysyvää muistia MIDP-komponenteille, 8 kilotavua pysyvää muistia ohjelmien

16 16 tallentamaa tietoa varten ja 32 kilotavua muistia Javan ajonaikaiseen käyttöön. Lisäksi laitteissa tulee olla langaton kaksisuuntainen verkkoyhteys ja rajoitettu kaistanleveys. (Fox & Verhovsek 2002: ) MIDP sisältää kaikki CLDC:n käyttämät luokat ja lisäksi MIDP-profiilia varten määriteltyjä kirjastoja. Yksi tärkeimmistä kirjastoista on javax.microedition.midlet. Se sisältää MIDlet luokan, joka on kaikkien MIDlettien perusta. Muita tärkeitä kirjastoja ovat: javax.microedition.lcdui, jossa ovat käyttöliittymäluokat, javax.microedition.rms, joka sisältää tietueille perustuvan tallennusjärjestelmän (RMS eli Record Management System) ja javax.microedition.io, jota tarvitaan verkkoliikennettä varten (Kontio 2002: 55). MIDP ei määrittele sovelluksen liitäntää laitteeseen, päästä päähän tietosuojamallia, systeemitason tai laitteen alkuperäisen valmistajan (OEM, Original Equipment Manufacturer) määrittelemiä tarpeita sovellukselle, eikä mitään tiettyä toteutusta Record Management System ( RMS ) MIDP-profiilissa on huomioitu sovellukset, jotka tarvitsevat tiedoille katoamatonta muistia. MIDP määrittelee yksinkertaisen tietueille perustuvan RMS (Record Management System) -tallennusjärjestelmän. Sen luokat ja rajapinnat sijaitsevat javax.microedition.rms-paketissa. Käytännössä RMS-tietokanta on tiedosto, joka koostuu tietueista. Pääsy tietokantaan on vain samaan JAR-pakkaukseen kuuluvilla MIDleteillä. (Kontio 2002: 137.) RMS:n tieto on tavutaulukko, jonka koko voi vaihdella tietueittain. RMS ei rajoita sitä, millaista tietoa tietueisiin tallennetaan. Jokaiselle tietueelle määritellään yksilöllinen tunniste (recordid), joka on voimassa koko tietovaraston elinajan. Tietueita lisättäessä samaa tunnistetta ei käytetä uudelleen, joten yksittäisiä tietueita on helppo jäljittää. Tunnisteen avulla tietueita voidaan muuttaa ja poistaa. Tunnisteiden tietotyyppi on Integer ja ensimmäisen luotavan tietueen arvo on yksi. Tietueita lisättäessä, tunnisteen arvoa kasvatetaan ykkösellä (Mahmoud 2000). Tietovarasto luodaan, suljetaan ja poistetaan RecordStore-luokan metodeilla. Uuden tietovaraston luonti ja jo olemassa olevan tietovaraston avaus tehdään kuvan (Kuvio 7) mukaisesti openrecorstore()-metodilla, jolle välitetään kaksi parametria (String, boolean) (Kontio 2002:138). Ensimmäinen parametri kertoo luotavan, tai avattavan tietovaraston nimen. Nimi saa sisältää enintään 32 merkkiä. Toisen parametrin true-arvolla pyydetään metodia luomaan uusi tietovarasto, jos sitä ei ensimmäisen parametrin nimellä ole olemassa.

17 17 Avattaessa jo olemassa olevaa tietovarastoa, parametrin arvoksi asetetaan false. Tällöin on käytettävissä myös poikkeusten käsittely -luokka RecordStoreNotFoundExeption (Kontio 2002: 143). Tietovarasto suljetaan metodilla closerecordstore(). Tätä metodia käytettäessä on huomattava, että sitä on kutsuttava yhtä monta kertaa kuin metodia jolla tietovarasto avattiin. Muutoin tietovarasto jää avoimeksi (Mahmoud 2000). RecordStore rs = RecordStore.openRecordStore("nimi", false); byte[] tietue; //tallennettava tieto tavukoodeina int recordid; try { //tallennetaan tietue tietovarastoon recordid = rs.addrecord(tietue, 0, tietue.length); //haetaan tietue esille tietovarastosta tietue = rs.getrecord(recordid); //muutetaan tietuetta //kirjoitetaan tietue takaisin tietovarastoon rs.setrecord(recordid, tietue, 0, tietue.length), } catch (Exception e) { //käsitellään mahdolliset poikkeukset } Kuvio 7 Tietueiden käsittely RMS-tietovarastossa Tietuejoukon käsittelyä varten määritellään RecordStore-luokassa neljä perusmetodia: addrecord(), getrecord(), setrecord() ja deleterecord(). Tallentaminen suoritetaan koko tietue kerrallaan tavukoodina addrecord()-metodilla. Metodi palauttaa luodun tietueen tunnisteen. Tieto haetaan esille tallennusjärjestelmästä getrecord()-metodilla, jolle välitetään parametrina halutun tietueen tunniste. Metodilla setrecord() voidaan korvata jo olemassa oleva tietue uudella. (Kontio 2002: 137.) RMS-tallennusjärjestelmässä ei ole mahdollista muuttaa vain tietueen tiettyä osaa (Mahmoud 2000). Tietuetta muutetaan lukemalla ensin koko tietue tietovarastosta, jonka jälkeen tehdään muutokset ja lopuksi tietue kirjoitetaan tallennusjärjestelmään vanhan tietueen päälle setrecord()-

18 18 metodilla kuvan (Kuvio 7) mukaisesti MIDP -käyttöliittymäluokat MIDP-sovellusten käyttöliittymävaatimukset poikkeavat pöytätietokoneista, koska matkapuhelimilla ei ole vastaavia syöttölaitteita ja niiden näyttöjen koko on pienempi. MIDP ei käytä AWT:tä (Abstract Windowing Toolkit) graafisten käyttöliittymien luonnissa, koska se on liian raskas. Lisäksi AWT on suunniteltu käytettäväksi osoitinlaitteen kanssa ja sellainen on vain harvoilla MIDP-päätelaitteilla (Kontio 2002: 47). MIDP:n mukana tulee oma grafiikkarajapinta, joka on jaettu korkean tason (high-level) ja matalan tason (low-level) rajapintoihin. Korkean tason rajapinta on suunniteltu liike-elämän sovelluksia varten, joiden asiakasohjelmia ajetaan MID (Mobile Information Device) -laitteissa. Sovelluksen logiikka, tietokannat ja palvelut sijaitsevat palvelimilla ja MIDP-laitteella on vain kevyt asiakas-sovellus (Kontio 2002: 47). Näissä sovelluksissa tärkeintä on siirrettävyys. Korkean tason komponenttien ulkonäkö on kiinteä, eikä ohjelmoija voi siihen vaikuttaa. Ohjelmalla ei myöskään ole tarkkaa tietämystä laitteen hallinta- tai syöttölaitteista. Korkean tason käyttöliittymä-komponentteja toteuttavat luokat periytyvät luokasta javax.microedition.lcdui.screen. Matalan tason (low-level) grafiikkarajapinta on tarkoitettu sovelluksille, joissa tarvitaan graafisten elementtien tarkkaa sijoittelua ja ohjausta näytöllä. Pelit ovat tyypillisiä sovelluksia, jotka käyttävät matalan tason käyttöliittymäkomponentteja (Riggs, Taivalsaari ja VandenBrink 2001). Pienen näytön koon vuoksi puhelinlaitteilta puuttuvat myös pöytäkoneille ominaiset ikkunointijärjestelmät. MIDP-profiilin käyttöliittymärajapinnan keskeisin luokka on Screen, joka kapseloi 1 ja järjestää graafiset komponentit, sekä kohdistaa käyttäjän syötteet laitteiston avulla. Screen-luokan ilmentymästä käytetään nimitystä näkymä. MIDP-sovellus voi koostua useista näkymistä, mutta vain yksi näkymä voi olla kerrallaan aktiivisena päätelaitteen näytöllä. Näkymät tulisi toteuttaa siten, että näkymä on mahdollisimman yksinkertainen ja sisältää graafisia komponentteja vain sen verran kuin tehtävän suorittaminen vaatii (Mahmoud 2001). MIDP-käyttöliittymä API määrittelee neljä erilaista näkymätyyppiä: tekstiruutu-, lista, -viesti- ja valikkonäkymät. Nämä luokat totutetaan kuvan (Kuvio 8) mukaisesti Screen-luokasta perityistä luokissa: TextBox, List, Alert ja Form. 1 Oliotekniikan tukema tietojen määrittelytapa, jossa osaa tiedoista pääsee käyttämään vain olioiden avulla.

19 19 Kuvio 8 MIDP käyttöliittymäluokat (Kontio 2002: 58) 3 MIDlet 3.1 MIDletin elinkaari ja metodit MIDlet on Java-kielellä tehty MIDP-sovellus. MIDlet suoritetaan Javavirtuaalikoneen alaisuudessa päätelaitteella. Kannettavilla päätelaitteilla ei ole komentokuorta, jolla käyttäjä voi ohjata ohjelman suoritusta kuten pöytätietokoneissa. MIDlet-sovellusten ohjaus tapahtuu päätelaitteelle sijoitetun AMS (Application Management Software) -ohjelmiston avulla. Se ohjaa koko MIDletin elinkaaren toiminnot. AMS toimii samalla tasolla kuin laitteen muutkin varusohjelmistot ja se tekee yhteistyötä Java-virtuaalikoneen kanssa. (Kontio 2002: 157.) Kaikki MIDletit periytyvät kantaluokasta MIDlet, joka sijaitsee javax.microedition.midlet-paketissa. MIDlettien kantaluokka määrittelee kolme metodia, joiden avulla toteutetaan MIDletin elinkaaren aikaiset tilasiirtymiset. Nämä metodit ovat: startapp(), pauseapp() ja destroyapp(boolean), jotka täytyy ylikirjoittaa jokaisessa MIDletissä (Kontio 2002: 48). MIDlet voi itse pyytää tilasiirtymistä seuraavien metodien avulla: resumerequest(), notifypaused() tai notifydestroyed(). Kuvassa (Kuvio 9) näkyvät MIDletin mahdolliset tilat ja tilasiirtymiset.

20 20 Constructor Paused ResumeRequest() startapp() pauseapp() notifypaused() Active DestroyApp() notifydestroyed() DestroyApp() Destroyed Kuvio 9 MIDletin tilat ja sallitut tilasiirtymiset (Kontio 2002: 48) 3.2 MIDletin luominen MIDletin luominen sisältää viisi vaihetta (Kontio 2002: 51): MIDletin ohjelmakoodin kirjoitus, kääntäminen, esitarkistus, pakkaus JAR- ja JAD-tiedostoiksi. Tutkintotyössä käytetty Nokian Developers Suite antaa ohjelmointia varten kuvan (Kuvio10) mukaisen MIDlet rungon. Jokaisen MIDletin täytyy periytyä MIDlet luokasta. Valmiiseen runkoon on lisätty myös javax.microedition.lcdui-paketti, joka sisältää MIDP:n käyttämät käyttöliittymäluokat (Kontio 2002: 50). Kuvan (Kuvio 10) esimerkin SpaceBall-luokka toteuttaa CommandListener-rajapinnan, joka seuraa korkean tason käyttöliittymäluokkien tapahtumia. CommandListener rajapinta määrittää vain commandaction(command, Displayable) metodin (Kontio 2002: 50).

Java-API, rajapinnat, poikkeukset, UML,...

Java-API, rajapinnat, poikkeukset, UML,... Java-API, rajapinnat, r poikkeukset, UML,... Janne Käki 12.10.2006 Keskeisimmät Java-API:n pakkaukset API = Application Programming Interface eli sovellusohjelmointirajapinta (!) pakkaus (engl. package)

Lisätiedot

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++

JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ JAVA alkeet JAVA on ohjelmointikieli, mikä on kieliopiltaan hyvin samankaltainen, jopa identtinen mm. C++ ja Javascriptin kanssa. Huom! JAVA ja JavaScript eivät silti ole sama asia, eivätkä edes sukulaiskieliä.

Lisätiedot

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++? JAVA-OHJELMOINTI 3op A274615 JAVAN PERUSTEET LYHYT KERTAUS Teemu Saarelainen teemu.saarelainen@kyamk.fi Lähteet: http://java.sun.com/docs/books/tutorial/index.html Vesterholm, Kyppö: Java-ohjelmointi,

Lisätiedot

14. Poikkeukset 14.1

14. Poikkeukset 14.1 14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

Lisätiedot

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla poikkeuksella? Poikkeusten heittäminen.

Lisätiedot

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Sisällys. 14. Poikkeukset. Johdanto. Johdanto Sisällys 14. Poikkeukset Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla

Lisätiedot

14. Poikkeukset 14.1

14. Poikkeukset 14.1 14. Poikkeukset 14.1 Sisällys Johdanto. Tarkistettavat ja tarkistamattomat poikkeukset. Miten varautua poikkeukseen metodissa? Poikkeusten tunnistaminen ja sieppaaminen try-catchlauseella. Mitä tehdä siepatulla

Lisätiedot

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki Sisällys JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta Abstrakti luokka ja metodi Rajapintamäärittely (interface) Eero Hyvönen Tietojenkäsittelytieteen laitos Helsingin yliopisto 13.10.2000 E.

Lisätiedot

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo Concurrency - Rinnakkaisuus Group: 9 Joni Laine Juho Vähätalo Sisällysluettelo 1. Johdanto... 3 2. C++ thread... 4 3. Python multiprocessing... 6 4. Java ExecutorService... 8 5. Yhteenveto... 9 6. Lähteet...

Lisätiedot

Tekninen suunnitelma - StatbeatMOBILE

Tekninen suunnitelma - StatbeatMOBILE Tekninen suunnitelma - StatbeatMOBILE Versio Päivämäärä Henkilö Kuvaus 1.0 13.12.2013 Pöyry Alustava rakenne ja sisältö 1.1 22.12.2013 Pöyry Lisätty tekstiä ilmoituksiin, turvallisuuteen ja sisäiseen API:in

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Lueteltu tyyppi enum. Override-annotaatio. Geneerinen ohjelmointi. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia.

Ohjelmointitaito (ict1td002, 12 op) Kevät 2008. 1. Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen raine.kauppinen@haaga-helia. Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-ympäristö Java-ohjelma ja ohjelmaluokka

Lisätiedot

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä 6.11.2002 JReleaser Yksikkötestaus ja JUnit Mikko Mäkelä 6.11.2002 Sisältö Johdanto yksikkötestaukseen JUnit yleisesti JUnit Framework API (TestCase, TestSuite) Testien suorittaminen eri työkaluilla Teknisiä käytäntöjä

Lisätiedot

BaseMidlet. KÄYTTÖOHJE v. 1.00

BaseMidlet. KÄYTTÖOHJE v. 1.00 KÄYTTÖOHJE v. 1.00 KUVAUS BaseMidlet on matkapuhelimessa toimiva sovellus jolla voi etäkäyttää Tiimi 7000 sarjan säätimiä. Copyright Team-Control Oy, oikeudet muutoksiin pidätetään. TiiMi on Team-Control

Lisätiedot

15. Ohjelmoinnin tekniikkaa 15.1

15. Ohjelmoinnin tekniikkaa 15.1 15. Ohjelmoinnin tekniikkaa 15.1 Sisällys For-each-rakenne. Geneerinen ohjelmointi. Lueteltu tyyppi enum. 15.2 For-each-rakenne For-rakenteen variaatio taulukoiden ja muiden kokoelmien silmukoimiseen:

Lisätiedot

Mobiilin MIDP-sovelluksen toteutus ja suorituskyky XML-pohjaisilla yhteyskäytännöillä

Mobiilin MIDP-sovelluksen toteutus ja suorituskyky XML-pohjaisilla yhteyskäytännöillä Mobiilin MIDP-sovelluksen toteutus ja suorituskyky XML-pohjaisilla yhteyskäytännöillä Heikki Holopainen 6.5.05 Joensuun yliopisto Tietojenkäsittelytiede Pro gradu -tutkielma TIIVISTELMÄ Ohjelmistojen kehitys

Lisätiedot

Taulukot. Jukka Harju, Jukka Juslin 2006 1

Taulukot. Jukka Harju, Jukka Juslin 2006 1 Taulukot Jukka Harju, Jukka Juslin 2006 1 Taulukot Taulukot ovat olioita, jotka auttavat organisoimaan suuria määriä tietoa. Käsittelylistalla on: Taulukon tekeminen ja käyttö Rajojen tarkastus ja kapasiteetti

Lisätiedot

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään

Lisätiedot

TEKNIIKAN JA LIIKENTEEN TOIMIALA. Tietotekniikka. Ohjelmistotekniikka INSINÖÖRITYÖ

TEKNIIKAN JA LIIKENTEEN TOIMIALA. Tietotekniikka. Ohjelmistotekniikka INSINÖÖRITYÖ TEKNIIKAN JA LIIKENTEEN TOIMIALA Tietotekniikka Ohjelmistotekniikka INSINÖÖRITYÖ SOVELLUSKEHYS VETOBOX-SOVELLUSPALVELIMEN MOBIILEILLE KÄYTTÖLIITTYMÄSOVELLUKSILLE Työn tekijä: Marko Heiskanen Työn valvoja:

Lisätiedot

Pieniä sovelluksia pienissä laitteissa. J2ME-SOVELLUKSET Motorola V66i Motorola T720 Nokia 3410 Nokia 6310i Nokia 7650 Siemens M50

Pieniä sovelluksia pienissä laitteissa. J2ME-SOVELLUKSET Motorola V66i Motorola T720 Nokia 3410 Nokia 6310i Nokia 7650 Siemens M50 MPC-TESTI MOBIILILAITTEET TEKSTI JA TESTIT: JULIAN IIZUKA VALOKUVAT JA KUVANKÄSITTELY: MATTI SULANTO J2ME-SOVELLUKSET Motorola V66i Motorola T720 Nokia 3410 Nokia 6310i Nokia 7650 Siemens M50 Pieniä sovelluksia

Lisätiedot

Tekninen suunnitelma - StatbeatMOBILE

Tekninen suunnitelma - StatbeatMOBILE Tekninen suunnitelma - StatbeatMOBILE Versio Päivämäärä Henkilö Kuvaus 1.0 13.12.2013 Pöyry Alustava rakenne ja sisältö 1.1 22.12.2013 Pöyry Lisätty tekstiä ilmoituksiin, turvallisuuteen ja sisäiseen API:in

Lisätiedot

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti

Rinnakkaisohjelmointi kurssi. Opintopiiri työskentelyn raportti Rinnakkaisohjelmointi kurssi Opintopiiri työskentelyn raportti Opintopiiri: Heikki Karimo, Jesse Paakkari ja Keijo Karhu Päiväys: 15.12.2006 Ohjelmointitehtävä C i C i : Säikeet ja kriittisen vaiheen kontrollointi

Lisätiedot

Karttaselain Paikannin J2ME

Karttaselain Paikannin J2ME Karttaselain Paikannin J2ME Käyttöohje Päivitetty 8.9.2014 Sisältö Tervetuloa...3 Tuetut laitteet...3 Sovelluksen lataaminen...3 Päänäyttö...4 Sovelluksen valikko...5 Laitetunniste (IMEI-koodi)...5 Sovelluksen

Lisätiedot

FOTONETTI BOOK CREATOR

FOTONETTI BOOK CREATOR F O T O N E T T I O Y FOTONETTI BOOK CREATOR 6 2012 Kemintie 6 95420 Tornio puhelin: 050-555 6500 pro/kirja: 050-555 6580 www.fotonetti.fi Ohjelman asentaminen 1 Hae ohjelma koneellesi osoitteesta http://www.fotonetti.fi/kuvakirjatilaa

Lisätiedot

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4) 2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi

Lisätiedot

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä 12.1 12.2 12.3 12.4 Sisällys 12. Näppäimistöltä lukeminen Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä.. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit. Scanner-luokka.

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Taulukot & Periytyminen Taulukot: Array Taulukko Javassa pitää aina perustaa (new) Yksinkertaisessa tilanteessa taulukon koko tiedetään etukäteen ja

Lisätiedot

17. Javan omat luokat 17.1

17. Javan omat luokat 17.1 17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Kieliversiointityökalu Java-ohjelmistoon. Ohje Kieliversiointityökalu Java-ohjelmistoon Ohje 2/6 SISÄLLYSLUETTELO 1 YLEISTÄ OHJELMASTA... 3 2 PÄÄ-IKKUNA...4 3 YLÄVALIKKO... 4 3.1 TIEDOSTO... 4 3.2 TOIMINTO... 4 3.3 ASETUKSET... 5 3.4 OHJE... 5 4 VÄLILEHDET...5

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Poikkeukset ja tietovirrat: Virhetilanteiden ja syötevirtojen käsittely Poikkeukset Poikkeuksella tarkoitetaan yllättävää ajonaikaista tilannetta, joka

Lisätiedot

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245

Android ohjelmointi. Mobiiliohjelmointi 2-3T5245 Android ohjelmointi Mobiiliohjelmointi 2-3T5245 Mikä on Android? Linux kernelin päälle rakennettu, Googlen kehittämä sovelluspino mobiilisovelluksiin Erillinen versio puhelimelle ja taulutietokoneille

Lisätiedot

Mainosankkuri.fi-palvelun käyttöohjeita

Mainosankkuri.fi-palvelun käyttöohjeita Mainosankkuri.fi-palvelun käyttöohjeita Sisällys 1. Johdanto... 1 2. Sisäänkirjautuminen... 1 3. Palvelussa navigointi... 2 4. Laitteet... 2 5. Sisällönhallinta... 4 6. Soittolistat... 7 7. Aikataulut...

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa(); Sisällys 7. Oliot ja viitteet Olio Java-kielessä. Olion luominen, elinikä ja tuhoutuminen. Viitteiden käsittelyä: sijoitus, vertailu ja varautuminen null-arvoon. Viite metodin paluuarvona.. 7.1 7.2 Olio

Lisätiedot

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen Pedacode Pikaopas Java-kehitysympäristön pystyttäminen Pikaoppaan sisältö Pikaoppaassa kuvataan, miten Windowstyöasemalle asennetaan Java-ohjelmoinnissa tarvittavat työkalut, minkälaisia konfigurointeja

Lisätiedot

8. Näppäimistöltä lukeminen 8.1

8. Näppäimistöltä lukeminen 8.1 8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)

Lisätiedot

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö

Matopeli C#:lla. Aram Abdulla Hassan. Ammattiopisto Tavastia. Opinnäytetyö Matopeli C#:lla Aram Abdulla Hassan Ammattiopisto Tavastia Opinnäytetyö Syksy 2014 1 Sisällysluettelo 1. Johdanto... 3 2. Projektin aihe: Matopeli C#:lla... 3 3. Projektissa käytetyt menetelmät ja työkalut

Lisätiedot

9. Periytyminen Javassa 9.1

9. Periytyminen Javassa 9.1 9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.

Lisätiedot

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Teknillinen korkeakoulu 51 Vaatimusmäärittely Ohjelma-ajanvälitys komponentti Versio Päiväys Tekijä Kuvaus 0.1 21.11.01 Oskari Pirttikoski Ensimmäinen versio 0.2 27.11.01 Oskari Pirttikoski Lisätty termit

Lisätiedot

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14 Arkkitehtuurikuvaus Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy Ryhmä 14 Muutoshistoria Versio Pvm Päivittäjä Muutos 0.4 1.11.2007 Matti Eerola 0.3 18.10.2007 Matti Eerola 0.2

Lisätiedot

17. Javan omat luokat 17.1

17. Javan omat luokat 17.1 17. Javan omat luokat 17.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 17.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Poikkeustenkäsittely

Poikkeustenkäsittely 1 Poikkeustenkäsittely Mitä poikkeustenkäsittely tarkoittaa? Poikkeuksen käsitteleminen Poikkeusluokkien hierarkia Poikkeuksen heittäminen 1 Mitä poikkeustenkäsittely tarkoittaa? Poikkeus (Exception) on

Lisätiedot

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin Raimo Nikkilä Aalto-yliopiston sähkötekniikan korkeakoulu - Automaation tietotekniikan tutkimusryhmä 17. tammikuuta 2013

Lisätiedot

20. Javan omat luokat 20.1

20. Javan omat luokat 20.1 20. Javan omat luokat 20.1 Sisällys Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang Sisällys 20. Javan omat luokat Application Programming Interface (API). Pakkaukset. Merkkijonoluokka String. Math-luokka. Kääreluokat. 20.1 20.2 Java API Java-kielen Application Programming Interface (API)

Lisätiedot

16. Javan omat luokat 16.1

16. Javan omat luokat 16.1 16. Javan omat luokat 16.1 Sisällys Johdanto. Object-luokka: tostring-, equals-, clone- ja getclass-metodit. Comparable-rajapinta: compareto-metodi. Vector- ja ArrayList-luokat. 16.2 Javan omat luokat

Lisätiedot

PIKAOPAS NOKIA PC SUITE 4.3. Nokia 8310 -puhelimelle. Copyright Nokia Mobile Phones 2001. Kaikki oikeudet pidätetään Issue 6

PIKAOPAS NOKIA PC SUITE 4.3. Nokia 8310 -puhelimelle. Copyright Nokia Mobile Phones 2001. Kaikki oikeudet pidätetään Issue 6 PIKAOPAS NOKIA PC SUITE 4.3 Nokia 8310 -puhelimelle Copyright Nokia Mobile Phones 2001. Kaikki oikeudet pidätetään Issue 6 Sisällysluettelo 1. JOHDANTO...1 2. JÄRJESTELMÄVAATIMUKSET...1 3. PC SUITE -OHJELMISTON

Lisätiedot

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0 CODEONLINE Monni Oo- ja Java-harjoituksia Version 1.0 Revision History Date Version Description Author 25.10.2000 1.0 Initial version Juha Johansson Inspection History Date Version Inspectors Approved

Lisätiedot

Integrointi. Ohjelmistotekniikka kevät 2003

Integrointi. Ohjelmistotekniikka kevät 2003 Integrointi Ohjelmistotekniikka kevät 2003 ERP (Toiminnanohjausjärjestelmä) Myynti Henkilöstö, palkanlaskenta Kirjanpito Myynti Myyjät Extranet Tietovarasto Laskutus, reskontrat Asiakas ERP Asiakasrekisteri

Lisätiedot

5. HelloWorld-ohjelma 5.1

5. HelloWorld-ohjelma 5.1 5. HelloWorld-ohjelma 5.1 Sisällys Lähdekoodi. Lähdekoodin (osittainen) analyysi. Lähdekoodi tekstitiedostoon. Lähdekoodin kääntäminen tavukoodiksi. Tavukoodin suorittaminen. Virheiden korjaaminen 5.2

Lisätiedot

12. Näppäimistöltä lukeminen 12.1

12. Näppäimistöltä lukeminen 12.1 12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.

Lisätiedot

Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat

Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat Linux rakenne Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat Linux ydin Ytimen (kernel) päätehtävä on tarjota rajapinta

Lisätiedot

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014

Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Ohjelmoinnin jatkokurssi, kurssikoe 28.4.2014 Kirjoita jokaiseen palauttamaasi konseptiin kurssin nimi, kokeen päivämäärä, oma nimi ja opiskelijanumero. Vastaa kaikkiin tehtäviin omille konsepteilleen.

Lisätiedot

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ELM GROUP 04. Teemu Laakso Henrik Talarmo ELM GROUP 04 Teemu Laakso Henrik Talarmo 23. marraskuuta 2017 Sisältö 1 Johdanto 1 2 Ominaisuuksia 2 2.1 Muuttujat ja tietorakenteet...................... 2 2.2 Funktiot................................

Lisätiedot

4. 10.2010 ACCELBIT KARTTASELAIN TRACKER. Karttaselaimen Tracker- sovelluksen käyttöohje versio 1.0 AccelBit Oy

4. 10.2010 ACCELBIT KARTTASELAIN TRACKER. Karttaselaimen Tracker- sovelluksen käyttöohje versio 1.0 AccelBit Oy 4. 10.2010 ACCELBIT OY KARTTASELAIN TRACKER Karttaselaimen Tracker- sovelluksen käyttöohje versio 1.0 AccelBit Oy Sisältö Laitteistovaatimukset...3 Yleisesittely...3 Versiohistoria...3 Karttaselain Tracker

Lisätiedot

Javan perusteita. Janne Käki

Javan perusteita. Janne Käki Javan perusteita Janne Käki 20.9.2006 Muutama perusasia Tietokone tekee juuri (ja vain) sen, mitä käsketään. Tietokone ymmärtää vain syntaksia (sanojen kirjoitusasua), ei semantiikkaa (sanojen merkitystä).

Lisätiedot

Selkosanakirja sdfghjklöäzxcvbnmqwertyuiopåasdfghjklöäzxcvbnmq. Tietokoneet. wertyuiopåasdfghjklöäzxcvbnmqwertyuiopåasdfghjk 1.4.

Selkosanakirja sdfghjklöäzxcvbnmqwertyuiopåasdfghjklöäzxcvbnmq. Tietokoneet. wertyuiopåasdfghjklöäzxcvbnmqwertyuiopåasdfghjk 1.4. qwertyuiopåasdfghjklöäzxcvbnmqwertyuiopåasdfghj klöäzxcvbnmqwertyuiopåasdfghjklöäzxcvbnmqwerty uiopåasdfghjklöäzxcvbnmqwertyuiopåasdfghjklöäzxc vbnmqwertyuiopåasdfghjklöäzxcvbnmqwertyuiopåa Selkosanakirja

Lisätiedot

13/20: Kierrätys kannattaa koodaamisessakin

13/20: Kierrätys kannattaa koodaamisessakin Ohjelmointi 1 / syksy 2007 13/20: Kierrätys kannattaa koodaamisessakin Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy

Lisätiedot

Ohjelmistoarkkitehtuuri. Verkotettu multimedia. Multimedian vaikutukset. Mediavirtojen puskurointi. Ohjelmointi. Selain-ohjelmistoarkkitehtuuri

Ohjelmistoarkkitehtuuri. Verkotettu multimedia. Multimedian vaikutukset. Mediavirtojen puskurointi. Ohjelmointi. Selain-ohjelmistoarkkitehtuuri Ohjelmistoarkkitehtuuri Verkotettu multimedia Käyttöliittymä Middleware Tietoliikenne 1 2 Multimedian vaikutukset Mediavirtojen puskurointi 3 4 Ohjelmointi Selain-ohjelmistoarkkitehtuuri 5 6 WWW-arkkitehtuuri

Lisätiedot

CT50A2601 Käyttöjärjestelmät Androidin ja Symbianin vertailu Seminaarityö

CT50A2601 Käyttöjärjestelmät Androidin ja Symbianin vertailu Seminaarityö CT50A2601 Käyttöjärjestelmät Androidin ja Symbianin vertailu Seminaarityö 0349955 Pekka Hyvärinen 0342194 Joonas Heikelä 0327708 Miro Temonen 0350122 Sami Tuominen Yleistä Seminaarityö osa kurssia Käyttöjärjestelmät

Lisätiedot

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi

Pong-peli, vaihe Aliohjelmakutsu laskureita varten. 2. Laskurin luominen. Muilla kielillä: English Suomi Muilla kielillä: English Suomi Pong-peli, vaihe 7 Tässä vaiheessa lisäämme peliin pistelaskun. Pong-pelissä pelaaja saa pisteen kun pallo ohittaa toisen pelaajan mailan. 1. Aliohjelmakutsu laskureita varten

Lisätiedot

KÄYTTÖLIITTYMÄT. Visuaalinen suunnittelu

KÄYTTÖLIITTYMÄT. Visuaalinen suunnittelu KÄYTTÖLIITTYMÄT Visuaalinen suunnittelu MUISTETTAVA Yksinkertaisuus Selkeys Johdonmukaisuus Sommittelutyyli on säilytettävä samankaltaisen koko sivustossa Sivustolle yhtenäinen ulkoasu Miellyttävä ulkonäkö

Lisätiedot

PIKAOPAS NOKIA PC SUITE 4.88. Copyright Nokia Oyj 2003. Kaikki oikeudet pidätetään

PIKAOPAS NOKIA PC SUITE 4.88. Copyright Nokia Oyj 2003. Kaikki oikeudet pidätetään PIKAOPAS NOKIA PC SUITE 4.88 Copyright Nokia Oyj 2003. Kaikki oikeudet pidätetään Sisällysluettelo 1. JOHDANTO...1 2. JÄRJESTELMÄVAATIMUKSET...1 3. PC SUITE -OHJELMISTON ASENTAMINEN...2 4. KÄYTÖN ALOITTAMINEN...3

Lisätiedot

Jypelin käyttöohjeet» Miten voin liittää törmäyksiin tapahtumia?

Jypelin käyttöohjeet» Miten voin liittää törmäyksiin tapahtumia? Muilla kielillä: English Suomi Jypelin käyttöohjeet» Miten voin liittää törmäyksiin tapahtumia? Kun kaksi fysiikkaoliota törmää toisiinsa, syntyy törmäystapahtuma. Nämä tapahtumat voidaan ottaa kiinni

Lisätiedot

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen Ohjelmointitaito (ict1td002, 12 op) Kevät 2009 Raine Kauppinen raine.kauppinen@haaga-helia.fi 1. Java-ohjelmoinnin alkeita Tietokoneohjelma Java-kieli ja Eclipse-kehitysympäristö Java-ohjelma ja luokka

Lisätiedot

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi. 11. Rajapinnat 11.1 Sisällys Johdanto. Abstrakti luokka vai rajapinta? Rajapintojen hyötyjä. Kuinka rajapinnat määritellään ja otetaan käyttöön? Eläin, nisäkäs, kissa ja rajapinta. Moniperiytyminen rajapintojen

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print

Lisätiedot

8. Näppäimistöltä lukeminen 8.1

8. Näppäimistöltä lukeminen 8.1 8. Näppäimistöltä lukeminen 8.1 Sisällys Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. In-luokka, käännös ja tulkinta Scanner-luokka. 8.2 Yleistä Näppäimistöltä annettujen arvojen (syötteiden)

Lisätiedot

Projektityö: Mobiiliajopäiväkirja. Mikko Suomalainen

Projektityö: Mobiiliajopäiväkirja. Mikko Suomalainen Projektityö: Mobiiliajopäiväkirja Mikko Suomalainen 1. Määritelmä Mobiiliajopäiväkirja on kännyköille suunnattu ajopäiväkirja-sovellus. Sovelluksen pääperiaate on toimia automaattisena ajopäiväkirjana.

Lisätiedot

Olio-ohjelmointi Virhetilanteiden käsittely

Olio-ohjelmointi Virhetilanteiden käsittely Olio-ohjelmointi 2016 Virhetilanteiden käsittely Poikkeustilanteet n Java-järjestelmässä voidaan ottaa kiinni ohjelman suoritusaikana tapahtuvia virhetilanteita, joita ei saada kiinni tavanomaisilla ohjausrakenteilla

Lisätiedot

Ulkoiset mediakortit Käyttöopas

Ulkoiset mediakortit Käyttöopas Ulkoiset mediakortit Käyttöopas Copyright 2010 Hewlett-Packard Development Company, L.P. Java on Sun Microsystems, Inc:n tavaramerkki Yhdysvalloissa. SD-logo on omistajansa tavaramerkki. Tuotetta koskeva

Lisätiedot

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Standardi- ja tietorakenneluokkia

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op. Standardi- ja tietorakenneluokkia Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op Standardi- ja tietorakenneluokkia Standardi- ja tietorakenneluokkia Javan API, ArrayList Ohjelmointirajapinta (Application Programming Interface, API)

Lisätiedot

sivu 1 Verkkopäätteen muuttaminen Anvian uuteen tekniikkaan Ohje käy seuraaviin verkkopäätteisiin

sivu 1 Verkkopäätteen muuttaminen Anvian uuteen tekniikkaan Ohje käy seuraaviin verkkopäätteisiin sivu 1 Verkkopäätteen muuttaminen Anvian uuteen tekniikkaan Ohje käy seuraaviin verkkopäätteisiin Zyxel Prestige 645 ISP Zyxel Prestige 645 WEB Zyxel Prestige 645R Zyxel Prestige 645 Ennen aloitusta tarkista,

Lisätiedot

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Muilla kielillä: English Suomi Pong-peli, vaihe 3 Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana Jaetaan ohjelma pienempiin palasiin (aliohjelmiin) Lisätään peliin maila (jota ei voi vielä

Lisätiedot

Viva-16. Käyttöohje. 1.4.2009 Veikko Nokkala Suomen Videovalvonta.com

Viva-16. Käyttöohje. 1.4.2009 Veikko Nokkala Suomen Videovalvonta.com Viva-16 Käyttöohje 1.4.2009 Veikko Nokkala Sisällysluettelo Sisällysluettelo... 2 Ohjelmisto käyttöliittymä... 3 Asentaminen... 3 Käyttöönotto... 3 Katselu... 6 Tallennus... 8 Toistaminen... 9 Selain käyttöliittymä...

Lisätiedot

Jypelin käyttöohjeet» Miten saan peliin pistelaskurin?

Jypelin käyttöohjeet» Miten saan peliin pistelaskurin? Jypelin käyttöohjeet» Miten saan peliin pistelaskurin? Pistelaskurin saamiseksi tarvitaan kaksi osaa: Laskuri, joka laskee pisteitä Olio, joka näyttää pisteet ruudulla Laskuri voi olla esimerkiksi tyyppiä

Lisätiedot

DNA MOBIILI TV - YLEISET KÄYTTÖOHJEET

DNA MOBIILI TV - YLEISET KÄYTTÖOHJEET DNA MOBIILI TV - YLEISET KÄYTTÖOHJEET Mobiili-tv-palvelua käytetään puhelimen mobiili-tv-sovelluksella. Tässä dokumentissa kuvatut toiminnallisuudet ovat esimerkkejä tiettyjen puhelinmallien toiminnallisuuksista.

Lisätiedot

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen

Sisällys. 6. Metodit. Oliot viestivät metodeja kutsuen. Oliot viestivät metodeja kutsuen Sisällys 6. Metodit Oliot viestivät metodeja kutsuen. Kuormittaminen. Luokkametodit (ja -attribuutit).. Metodien ja muun luokan sisällön järjestäminen. 6.1 6.2 Oliot viestivät metodeja kutsuen Oliot viestivät

Lisätiedot

Ohjeistus Auditorion laitteiden käyttämiseksi.

Ohjeistus Auditorion laitteiden käyttämiseksi. Ohjeistus Auditorion laitteiden käyttämiseksi. Jatkuu seuraavalla sivulla Huomioi ensimmäiseksi nämä asiat: Kuvassa näkyvissä liitinlaatikoissa tulisi olla kaikki johdot paikallaan. Mikäli jokin kuvassa

Lisätiedot

1 Tehtävän kuvaus ja analysointi

1 Tehtävän kuvaus ja analysointi Olio-ohjelmoinnin harjoitustyön dokumentti Jyri Lehtonen (72039) Taneli Tuovinen (67160) 1 Tehtävän kuvaus ja analysointi 1.1 Tehtävänanto Tee luokka, jolla mallinnetaan sarjaan kytkettyjä kondensaattoreita.

Lisätiedot

Käyttöohjeet. Sovellussivusto

Käyttöohjeet. Sovellussivusto Käyttöohjeet Sovellussivusto SISÄLLYSLUETTELO Tietoja oppaasta...2 Oppaassa käytetyt symbolit...2 Vastuuvapauslauseke...3 Huomautuksia...3 Mitä sovellussivustolla voi tehdä... 4 Ennen sovellussivuston

Lisätiedot

.NET ajoympäristö. Juha Järvensivu 2007

.NET ajoympäristö. Juha Järvensivu 2007 .NET ajoympäristö Juha Järvensivu juha.jarvensivu@tut.fi 2007 Käännösprosessi C# lähdekoodi C# kääntäjä CILtavukoodi JITkäännös Ajettava natiivikoodi Kehitysympäristössä ohjelmoijan toimesta Ajonaikana.NET

Lisätiedot

Jypelin käyttöohjeet» Ruutukentän luominen

Jypelin käyttöohjeet» Ruutukentän luominen Jypelin käyttöohjeet» Ruutukentän luominen Pelissä kentän (Level) voi luoda tekstitiedostoon "piirretyn" mallin mukaisesti. Tällöin puhutaan, että tehdään ns. ruutukenttä, sillä tekstitiedostossa jokainen

Lisätiedot

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä Pekka Ryhänen & Erkki Pesonen 2002 BlueJ:n käyttö Nämä ohjeet on tarkoitettu tkt-laitoksen mikroluokan koneilla tapahtuvaa käyttöä varten. Samat asiat pätevät myös muissa luokissa ja kotikäytössä, joskin

Lisätiedot

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Harjoitus 7. 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: Harjoitus 7 1. Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti: class Lintu //Kentät private int _siivenpituus; protected double _aivojenkoko; private bool _osaakolentaa; //Ominaisuudet public int

Lisätiedot

Tavallisen videomainoksen sijasta Ruudussa voidaan mainostauolla esittää dynaamisia spotteja.

Tavallisen videomainoksen sijasta Ruudussa voidaan mainostauolla esittää dynaamisia spotteja. RUUTU DYNAAMINEN SPOTTI TEKNISET OHJEET Versio 1.0 Yleistä Tavallisen videomainoksen sijasta Ruudussa voidaan mainostauolla esittää dynaamisia spotteja. Dynaamiset spotit ovat flash mainoksia, jotka mahdollistavat

Lisätiedot

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin.

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin. TIETOKANTA MERIKOTKIEN SEURANTAAN Käyttöohje Versiohistoria: Versio Päivämäärä Kuvaus Tekijä 1.0 11.12.2007 Ensimmäinen luonnos Janne Piippo 2.0 13.12.2007 Virallinen verio Janne Piippo HELSINGIN YLIOPISTO

Lisätiedot

1. Taustatietoa näppäimistönkuuntelusta

1. Taustatietoa näppäimistönkuuntelusta Muilla kielillä: English Suomi Pong-peli, vaihe 5 Tämä on Pong-pelin tutoriaalin osa 5/7. Tämän vaiheen aikana Lisäämme peliin näppäimet Laitetaan mailat liikkumaan pelaajien ohjaamina Näin ohjelmaamme

Lisätiedot

SYMBIANIN SERIES 60 JA PUHELIMEN PERUSTOIMINNOT

SYMBIANIN SERIES 60 JA PUHELIMEN PERUSTOIMINNOT T-121.200 KÄYTTÖLIITTYMÄPSYKOLOGIA SYMBIANIN SERIES 60 JA PUHELIMEN PERUSTOIMINNOT Kirsi Männistö kmannist@cc.hut.fi T-121.200 Käyttöliittymäpsykologia 1 (7) Kirsi Männistö Sisällysluettelo 1 JOHDANTO...

Lisätiedot

Eye Pal Solo. Käyttöohje

Eye Pal Solo. Käyttöohje Eye Pal Solo Käyttöohje 1 Eye Pal Solon käyttöönotto Eye Pal Solon pakkauksessa tulee kolme osaa: 1. Peruslaite, joka toimii varsinaisena lukijana ja jonka etureunassa on laitteen ohjainpainikkeet. 2.

Lisätiedot

Scratch ohjeita. Perusteet

Scratch ohjeita. Perusteet Perusteet Scratch ohjeita Scratch on graafinen ohjelmointiympäristö koodauksen opetteluun. Se soveltuu hyvin alakouluista yläkouluunkin asti, sillä Scratchin käyttömahdollisuudet ovat monipuoliset. Scratch

Lisätiedot

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

812341A Olio-ohjelmointi Peruskäsitteet jatkoa 812341A Olio-ohjelmointi 2106 Peruskäsitteet jatkoa Luokkakohtaiset piirteet n Yhteisiä kaikille saman luokan olioille n Liittyvät luokkaan, eivät yksittäiseen olioon n Kaikki ko. luokan oliot voivat käyttää

Lisätiedot

OHJE Jos Kelaimeen kirjautuminen ei onnistu Mac-koneella Sisällys

OHJE Jos Kelaimeen kirjautuminen ei onnistu Mac-koneella Sisällys Sisällys 1 Varmista, että DigiSign-kortinlukijaohjelmisto on käynnissä 2 1.1 DigiSign-kuvake 2 1.2 Sovelluksen käynnistäminen 2 1.3 Kortin toiminnan varmistaminen 4 2 Jos käytät selaimena Mozilla, Firefox

Lisätiedot

Olio-ohjelmointi Javalla

Olio-ohjelmointi Javalla 1 Olio-ohjelmointi Javalla Olio-ohjelmointi Luokka Attribuutit Konstruktori Olion luominen Metodit Olion kopiointi Staattinen attribuutti ja metodi Yksinkertainen ohjelmaluokka Ohjelmaluokka 1 Olio-ohjelmointi

Lisätiedot

4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

4.12.2005. SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T SEPA: REFAKTOROINTI 2 (9) SEPA: REFAKTOROINTI 3 (9) VERSIOHISTORIA Version Date Author Description 0.1 2.12.2005 Erik Hakala Ensimmäinen

Lisätiedot

Action Request System

Action Request System Action Request System Manu Karjalainen Ohjelmistotuotantovälineet seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos 25.10.2000 Action Request System (ARS) Manu Karjalainen Ohjelmistotuotantovälineet

Lisätiedot

Dart. Ryhmä 38. Ville Tahvanainen. Juha Häkli

Dart. Ryhmä 38. Ville Tahvanainen. Juha Häkli Dart Ryhmä 38 Ville Tahvanainen Juha Häkli 1.LYHYESTI Dart on luokkapohjainen, yksiperintäinen, puhdas olio-ohjelmointikieli. Dart on dynaamisesti tyypitetty. Sovellukset on organisoitu modulaarisiksi

Lisätiedot

Samsung Galaxy Tab tietokoneen käyttöohje

Samsung Galaxy Tab tietokoneen käyttöohje Tervetuloa käyttämään Samsungin Galaxy Tab tietokonetta Laitteen keskeinen ominaisuus on 7 tuuman kosketusnäyttö, jonka alapuolella ole neljä (4) taustavalaistua ohjausnäppäintä, ja yläpuolella 1.3 pixelin

Lisätiedot

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

Lisätiedot

Useimmin kysytyt kysymykset

Useimmin kysytyt kysymykset Useimmin kysytyt kysymykset Versio 1.1 1 1. Mikä mobiilikortti on? Mobiilikortti on matkapuhelimessa toimiva sovellus ja www.mobiilikortti.com osoitteessa oleva palvelu. Sovelluksen avulla voit siirtää

Lisätiedot