Mobiilijärjestelmien ohjelmointi

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

Pedacode Pikaopas. Web-sovelluksen luominen

Valppaan asennus- ja käyttöohje

5. HelloWorld-ohjelma 5.1

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

Eclipse 3.1 Pikaopas versio 1.0

T&M Autori Versio Series 60 -puhelimiin

Pedacode Pikaopas. Web Service asiakasohjelman luominen

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Tämä ohje on laadittu Mozilla Firefoxin asetuksille versiossa

Antitammirobotti. Antti Meriläinen Martin Pärtel 29. toukokuuta 2009

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Mobiilijärjestelmien ohjelmointi

1 Tivax siirto uuteen koneeseen

TTY TKT-1110 Mikroprosessorit TKT. HEW-ohjeet ver 1.0

PIKAOHJE MODEM OPTIONS for Nokia 7650

5. HelloWorld-ohjelma 5.1

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen StorageIT varmuuskopiointipalvelun.

BaseMidlet. KÄYTTÖOHJE v. 1.00

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

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

PIKAOPAS. Nokia Connectivity Cable Drivers -ohjainten asentaminen

Lisenssin hakeminen PTC:n verkkosivun kautta

1 Visma L7 päivitysaineiston nouto

Febdok 6.0 paikallisversion asennus OHJEISTUS

erasmartcardkortinlukijaohjelmiston

PLA Mobiiliohjelmointi. Mika Saari

UCOT-Sovellusprojekti. Asennusohje

SÄÄNNÖT. Language: English / Suomi

XML tehtävien työnkulku

MPCC-työkalua voidaan käyttää yhden laitteen valvontaan ja yhden tai useamman laitteen konfigurointiin (Modbus broadcast, osoite 0).

Yksittäisasennus eli perusasennus

Climecon MagiCADliitosohjelma

Pedacode Pikaopas. Tietokantaa hyödyntävän sovelluksen luominen

XML tehtävien työnkulku

Ohjelmistojen testaus ja hallinta. Gradle

PIKAOPAS NOKIA PC SUITE 4.51a NOKIA PUHELIMELLE

PIKAOPAS. Nokia Connectivity Cable Drivers -ohjainten asentaminen

Asennuksessa kannattaa käyttää asennusohjelman tarjoamia oletusarvoja.

P e d a c o d e ohjelmointikoulutus verkossa

PRINTER DRIVER PÄÄKÄYTTÄJÄN OPAS

Titan SFTP -yhteys mittaustietoja varten

Henkilö- ja koulutusrekisterin asennusohje

HARJOITUS 3: Asennetaan Windows Vista koneeseen Windows 7 Professional upgrade ohjelmisto (Windows 7 käyttöjärjestelmän asennus)

Java Runtime -ohjelmiston asentaminen

DNA Mokkula E180 - korjaus päivityksen yhteydessä syntyneeseen ongelmaan

Motorola Phone Tools. Pikaopas

POMPIDOU 10 ASENNUSOHJEET

Integroidun maksupäätteen lisääminen käyttöönotossa

Mikäli olet saanut e-kirjan latauslinkin sähköpostilla, seuraa näitä ohjeita e-kirjan lataamisessa.

Versio 1.0. BLUETOOTH DONGLE, GS-301 GPS JA NAVICORE PERSONAL Asennusohje Windows 2000/XP ja Nokia Series 60 älypuhelimille

Ohjeistus pöytäkirjan käyttöön. Suomen Lentopalloliitto ry

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

McAfee VirusScan Enterprice asennus

Windows 8.1:n vaiheittainen päivitysopas

SCI- A0000: Tutustuminen Linuxiin, syksy 2015

BL40A1810 Mikroprosessorit, harjoitus 1

Ennen varmenteen asennusta varmista seuraavat asiat:

Visma Business AddOn Installer. Käsikirja

Tiedostojen lataaminen netistä ja asentaminen

Helsinki Street Map. Nokia Communicator -versio (Series 80 versio) Asennus ja käyttöohje. Maaliskuu 2005 Versions 1.9x

TIETOKONE JA TIETOVERKOT TYÖVÄLINEENÄ

Harjoituksen aiheena on tietokantapalvelimen asentaminen ja testaaminen. Asennetaan MySQL-tietokanta. Hieman linkkejä:

Olet tehnyt hyvän valinnan hankkiessasi kotimaisen Storage IT varmuuskopiointipalvelun.

JulkICT Arkkitehtuuripankki - QPR EnterpriseArchitect asennusohje

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

Ohjeet e kirjan ostajalle

Liveseuranta (1/9) Suomen Palloliiton Tampereen piiri

ZENworks Application Virtualization 11

Asteri Ostoreskontra (Dos)

Visma Avendon asennusohje

PLA Mobiiliohjelmointi. Mika Saari

Johdatus ohjelmointiin

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

Sisällys Clerica Web-sovellusten käytön aloittaminen 2

Liitäntäkaapelin CA-42 pika-asennusohje

4. Luokan testaus ja käyttö olion kautta 4.1

NETIKKA PCTV KÄYTTÖOHJE

OCAD KOULUTUS ALITTELIJOILLE OCAD PERUSTEET

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Selaimen asetukset. Toukokuu (7) Selaimen asetukset Tikon Oy. All rights reserved.

Poista tietokoneessa olevat Java ja asenna uusin Java-ohjelma

HAMINETTI WLAN LIITTYMÄN KÄYTTÖÖNOTTO-OHJE

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

CLOUDBACKUP TSM varmistusohjelmiston asennus

Web Services tietokantaohjelmoinnin perusteet

Enemmän voitonriemua. Vähemmän tylsiä hetkiä. Pelien ja sovellusten jakaminen Sonera Viihde -palvelussa

SSH Secure Shell & SSH File Transfer

Maha Eurosystem jarrulaskentaohjelman asennusohje versio

Asteri Ostoreskontra (Dos)

Office ohjelmiston asennusohje

Poista tietokoneessasi olevat Javat ja asenna uusin Java-ohjelma

Asteri Laskutus (Dos)

Coolselector Asennusohje

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE:

INTERBASE 5.0 PÄIVITYS VERSIOON 5.6

F-Secure KEY salasanojenhallintaohjelman käyttöönotto PC -laitteella

PIKAOPAS MODEM SETUP

Transkriptio:

Mobiilijärjestelmien ohjelmointi 27.1.2004 Sasu Tarkoma sasu.tarkoma@cs.helsinki.fi Sisällys Johdanto Tarvittavat ohjelmat Harjoitustyön esittely Vaatimukset Demo Arvostelu Esimerkkejä Komentorivityökalut Muistin profilointi Ryhmät Yleistä Java harjoitustyö Kurssin ensimmäinen harjoitustyö tehdään Java MIDP 1.0 ympäristössä Keskeisenä työkaluna Sunin WTK (Wireless Toolkit) Versio 2.1 asennettuna mikroluokkaan D325 Marjaniemi-koneet (12 konetta) Myös vanhempaa versiota voi käyttää (1.0.4) Ohjeet ja nämä kalvot tulevat kotisivulle Java päivystys helmikuussa 2.2.-27.2. (A318 tai mikroluokka D325) Tiistaisin 16-17 Torstaisin 9-10 Series 60 MIDP SDK 1.2 + JDK 1.4.1 + WTK 1.0.4 Osa koodista annetaan valmiina Harjoitustyönä toteutetaan kahdenpelattava peli, jota tässä kutsutaan nimellä BoiGame. Peli on 7x7 lautapeli, josta pelaajat vuorotellen poistavat yhden nappulan tavoitteenaan saada poistettua omia nappuloita enemmän kuin vastustajan nappuloita. BoiGame Pelin säännöt I Pelin alussa kussakin ruudussa on nappula. Alkuasetelman nappulat ovat kolmea väriä: keskellä ja kulmissa olevat keltaiset nappulat ovat neutraaleja eivätkä kuulu kummallekaan pelaajalle, vasemmassa ja oikeassa sivussa olevat siniset nappulat kuuluvat siniselle pelaajalle, ja ylä- ja alasivuissa olevat punaiset nappulat kuuluvat punaiselle pelaajalle. Punainen pelaaja (eli harjoitustyössä ihmispelaaja) aloittaa aina pelin. Ensimmäisenä siirtonaan punainen pelaaja voi ottaa pelilaudalta minkä tahansa keltaisen nappulan. Seuraavilla siirroilla sekä sininen että punainen pelaaja ottavat vuorotellen yhden mitä tahansa väriä olevan nappulan. 1

Pelin voittaja Vaatimukset I Ainoa seuraavan poistettavan nappulan valitsemista rajoittava sääntö on: uuden poistettavan nappulan pitää olla edellisen poistetun nappulan naapuriruudussa (naapuruus määräytyy kuten kuninkaan liike shakissa). Pelaaja voi siis omalla vuorollaan poistaa oman nappulansa, vastustajan nappulan tai neutraalin nappulan. Jokaista poistettua punaista nappulaa kohti punainen pelaaja saa yhden pisteen. Vastaavasti jokaista poistettua sinistä kohti sininen pelaaja saa pisteen. Peli voi päättyä kahdella tavalla. 1. Joko kaikki siniset tai kaikki punaiset nappulat tulevat poistetuiksi. Peli päättyy välittömästi ja voittaja on se pelaaja, jonka kaikki nappulat on poistettu. 2. Vaikka laudalla onkin vielä nappuloita, laillisia siirtoja ei enää ole. Pelaaja, jolla tuolloin on enemmän pisteitä, on voittaja. Jos pisteitä on yhtä paljon, tuloksena on tasapeli. Vaikka peli on kahdenpelattava, niin työssä pitää varsinaisesti toteuttaa vain pelaaminen pelin aloittavan pelaajan kannalta. Toisena pelaajana toimii tekoälyvastustaja, joka annetaan valmiina (luokka BoiOpponent). Pelin käynnistyksen jälkeen pelin tulee kysyä pelaajalta, pelataanko uusi peli vai esitetäänkö jokin aiemmin pelattu peli. Pelattujen pelien jälkeen tulee vastaavasti tiedustella ihmispelaajalta, taltioidaanko pelattu peli myöhempää esittämistä varten. Taltioimisen yhteydessä peleille pitää voida antaa jokin nimi. Vaatimukset II Vaatimukset III Yksinkertaisuuden vuoksi sovitaan, että peli alkaa ihmispelaajan siirrolla. Siirron tekeminen tarkoittaa, että pelin pitää mahdollistaa seuraavan nappulan valitseminen. Tällöin pitää tarkistaa,että valinta tapahtuu sääntöjen mukaisesti. Rikkomukset pitää estää, ja yrityksestä tehdä virheellinen siirto pitää tiedottaa ihmispelaajalle. Kun siirtoja on tehty vuorotellen niin, ettei enää ole mahdollista tehdä uutta siirtoa, pelin pitää todeta pelin voittaja (mahdollisesti tasapeli). Huomaa, että peli voi päättyä yhtä hyvin tekoälypelaajan kuin ihmispelaajankin siirron jälkeen. Tehtävässä pitää siis toteuttaa seuraavat asiat Graafinen käyttöliittymä peliin. Siirron tekemisen mahdollistaminen ja virheellisten siirtojen estäminen sekä niistä huomauttaminen. Pelilaudan tilan esittäminen. Pelin hallinta: aloittaminen, lopettaminen, keskeyttäminen, pelatun pelin taltiointi,... Pelattu peli (siirtosarja) pitää voida taltioida ja esittää uudelleen. Valmiit luokat ja niiden dokumentaatio annetaan työhön liittyvän sivuston kautta. Sivustolla on myös toteuttamiseen liittyviä vihjeitä. Vaatimukset IV Annetut koodit Vastustaja on vuorovaikutuksessa ihmispelaajan kanssa pelilaudan tilaa esittävän luokan kautta käyttäen rajapintaa BoiGameAbstractModel. Kyseinen rajapinta annetaan. Sen aliluokaksi pitää tehtävässä toteuttaa pelin tilaa mallintava konkreetti luokka. Edellisten lisäksi annetaan rajapinnat BoiConstants (sisältää vain vakioidenmäärittelyitä) ja BoiObserver (liittyy pelilaudan tilaan, mahdollistaa pelilaudan tilan muutosten havannoitsijoiden rekisteröinnin). Luokka BoiOpponent.java Sisältää vastapelurin koodin. Abstrakti luokka AbstractBoiModel.java Esittää pelilaudan tilanteen malliluokkaa. Tälle pitää tehdä konkreettinen toteutus, osalle metodeista on annettu toteutus. Vastapelaaja käyttää tätä luokkaa siirtonsa tekemiseen ja se saa tiedon omasta siirtovuorostaan tämän avulla. Rajapinta BoiConstants.java Sisältää joitakin vakioiden määrittelyitä. Rajapinta BoiObserver.java. Tämän rajapinnan toteuttajat voidaan rekisteröidä pelilaudalle, jotta pelilaudassa tapahtuvat muutokset välitettäisiin niille. 2

JavaDoc Palautus JavaDoc valmiiksi annettavista lähdekoodeista BoiGame:n esittely Miltä valmiin työn pitäisi näyttää.. Palautus: 1-vaihe (viikko 8): suunnitelma ja pieni osittainen toteutus 2-vaihe: valmis työ viimeistään 8.3. klo 16.00 mennessä 1-vaihe 2-vaihe Ensimmäisessä vaiheessa palautetaan suunnitelma, josta selviää ohjelman logiikka ja käytettävät tietorakenteet. Suunnitelma on muodoltaan vapaa, mutta esimerkiksi UML:n luokka- ja sekvenssikaavion käyttöä suositellaan. Kustakin luokasta tulee selvitä niiden yleinen merkitys ja kunkin metodin merkitys. Käyttöliittymästä voi olla myös kuvia. Suunnitelma jätetään assistentille tulostettuna ja niitattuna. Suunnitelman lisäksi ohjelman osatoteutusta esitellään emulaattorin avulla harjoituksissa assistentille. Osatoteutusta ei tarvitse luovuttaa vielä tässä vaiheessa. Osatoteutuksen tulee sisältää pelin käynnistys ja lopettaminen sekä sillä pitää voida tehdä pelin ensimmäinen siirto. Vaiheessa 2 palautetaan lopullinen kaikki vaatimukset täyttävä ohjelma. Ohjelmaa esitellään harjoituksissa assistentille. Lisäksi ohjelma toimitetaan sähköpostilla zip-pakettina ja päivitetty suunnitelma tulostettuna ja niitattuna. Zip-paketissa on ajettavan ohjelman lisäksi myös lähdekoodi ja mahdolliset muut tarpeelliset tiedostot. Lisäksi tulee toimittaa käännös-, asennus- ja ajo-ohjeet readme.txt -tiedostossa. Toki mukana voi olla myös Makefile- ja/tai bat-tiedosto kääntämistä ja ajamista varten. Kopiointi Arvostelu Harjoitustyöstä saa keskustella muiden ryhmien jäsenten kanssa vain periaatteellisella tasolla. Yhdenkään harjoitustyörivin luovuttaminen toisen ryhmän jäsenelle on ehdottomasti kielletty. Windows koneisiin ei siis ole syytä jättää omia tiedostoja muiden luettavaksi Kannattaa käyttää kotihakemistoa Kirjallisuuden ja verkosta löytyvän materiaalin tutkiminen on sallittua ja suositeltavaa, mutta näidenkään tapauksessa kopiointi ei ole sallittua. Harjoitustyöstä ei jaeta pisteistä, vaan se arvostellaan asteikolla hylätty/hyväksytty. Hyväksyminen edellyttää ensimmäisen ja toisen vaiheen suorittamista hyväksytysti. Kurssin suorittaminen edellyttää hyväksytysti suoritettua harjoitustyötä. 3

Tekoälypelaajien välinen kilpailu Kysymyksiä? Maaliskuussa järjestetään tekoälypelaajien välinen kilpailu. Osallistuminen on vapaaehtoista. Valmiina annettu tekoälypelaaja ei ole paras mahdollinen. Osallistuaksesi sinun tai tiimisi pitää tehdä luokan BoiOpponent-tapainen luokka, joka pelaa BoiGame:a. Lisätietoa verkossa harjoitustyön sivulla Asennus I Ohjelmien asennus Vaatimukset Windows 2000 XP Vaiheet 1. Java JDK 1.4.2 tai uudempi tarvitaan asennusta varten. Vanhempi JDK käy myös. 2. Aja j2me_wireless_toolkit-2_1- windows.exe, tämä on versio 2.1, voit käyttää myös aiempaa versiota, esim. 1.0.4. Uudessa 2.1 versiossa on paljon bugikorjauksia ja parannuksia vanhempiin versioihin. 3. Määritä asennushakemisto, oletusarvo on c:\wtk21 Asennus II 4. WTK:n asennus on valmis. Mukana tulee kattava ohjeistus, joka löytyy c:\wtk21\docs\userguide.pdf. WTK pääohjelma on nimeltään ktoolbar. Ohjelman toiminnan voi testata avaamalla valikosta "File->Open Project" demoprojektin ja valitsemalla valikosta "run". Huom. kaikki ohjelmat eivät käänny MIDP 1.0:lle enään WTK2.0 myöhemmissä versioissa (koska MIDP 2.0 on myös tuettuna, ainakin photoalbum kääntyy). 5. Seuraavaksi asennetaan Nokian J2ME Series 60 versio 1.2. Tiedoston nimi on: ns60_jme_sdk_v1_2_1.zip ja se sisältää setup.exe:n sekä ohjeistuksen. Asennus wtk<versio>\wtklib\devices alle Tarvitset Nokia Forum tunnuksen Dokumentaatio ja esimerkit 4

Dokumentaatio KToolbar Wireless Toolkitin ja Series 60 MIDP:n dokumentaatio löytyy seuraavista paikoista: Wireless Toolkit: c:\wtk<versio>\index.html(userguide ja APIdokumentaatio) Series 60 MIDP SDK: c:\wtk<versio>\wtklib\devices\series_60_mid P_SDK_for_Symbian_OS_v_1_2_1\doc\inde x.html Default Device Selection Valitse aluksi oletuslaitteeksi Series_60_MIDP_SDK_for_Symbian_OS_v_1_2_ 1 Wireless Toolkitin Default Device Selection - työkalulla Luo uusi projekti: New Project Project Name: HelloWorld MIDlet Class Name: HelloMidlet Kopioi HelloMidlet.java projektin src-hakemistoon Varmista, että valittu laite on Series 60 ja paina Build. Komento kääntää ja verifioi lähdekooditiedoston. Valitse Project-valikosta Package, ja sen alta Create Package. Komento päivittää jar-paketin. Aja ohjelma Run-painikkeella HelloWorld projekti Komentorivityökalut I Hakemistorakenne HelloWorld-projektin tiedostot HelloWorld.jad HelloWorld.jar MANIFEST.MF HelloMidlet.java Kätevämpää on käyttää graafista ympäristöä, mutta komentorivityökalujen esittely selventänee, mitä graafisessa ympäristössä itseasiassa tapahtuu. Aluksi kannattaa määritellä ympäristömuuttuja, mihin Series 60 MIDP asennettiin, esim: S60MIDP=C:\wtk<versio>\wtklib\devices\Series_6 0_MIDP_SDK_for_Symbian_OS_v_1_2_1 Kääntäminen Series 60 -ympäristölle C:\wtk<versio>\apps\HelloWorld>javac bootclasspath %S60MIDP%\lib\Series_60_MIDP_SDK_for_Symb ian_os_v_1_2_1\j2me-debug.zip -d tmpclasses - classpath src src\*.java Komentorivityökalut II Komentorivityökalut III Esitarkistus Tarkistaa bytecoden ja tekee optimointeja C:\wtk<versio>\apps\HelloWorld>%S60MIDP%\bin \preverify -classpath %S60MIDP%\lib\Series_60_MIDP_SDK_for_Symb ian_os_v_1_2_1\j2me-debug.zip -d classes tmpclasses Manifest-tiedoston luonti (MANIFEST.MF) Kuvaa Midletin sisällön Luo jollakin tekstieditorilla seuraava tiedosto ja tallenna se HelloWorld-projektin bin-hakemistoon: MIDlet-1: HelloWorld, HelloWorld.png, HelloMidlet MIDlet-Name: HelloWorld MIDlet-Vendor: Mobo Enterprises MIDlet-Version: 1.0 MicroEdition- Configuration: CLDC-1.0 MicroEdition-Profile: MIDP-1.0 Jar-paketin luominen Siirry projektin bin-hakemistoon, jos et jo ole siellä. c:\wtk<versio>\apps\helloworld\bin>jar cfm HelloWorld.jar MANIFEST.MF -C..\classes.\ Jad-tiedoston luonti Java Application Description File Luo jollakin tekstieditorilla seuraava tiedosto ja tallenna se HelloWorld-projektin bin-hakemistoon: MIDlet-1: HelloWorld, HelloWorld.png, HelloMidlet MIDlet-Jar-Size: 1176 MIDlet-Jar-URL: HelloWorld.jar MIDlet-Name: HelloWorld MIDlet- Vendor: Mobo Enterprises MIDlet-Version: 1.0 Oleellista on, että Midlet-Jar-Size on määritelty oikein. Emulaattori ei suostu käynnistämään sovellusta, jos koko ei ole oikein. 5

Komentorivityökalut IV Esimerkki tietovaraston käytöstä: Notepad Midletin ajaminen emulaattorissa c:\wtk<versio>\apps\helloworld\bin>java - classpath %S60MIDP%\tools\emulator.jar - Demulator.home=%S60MIDP% com.nokia.phone.sdk.emulator -jad HelloWorld.jad Esimerkin ohjelmalla käyttäjä pystyy tekemään pieniä muistiinpanoja ja tallentamaan niitä myöhempää käyttöä varten. Luo uusi projekti New Project Project Name: Notepad MIDlet Class Name: NoteMidlet Kopioi NoteMidlet.java, NoteStore.java ja Note.java projektin src-hakemistoon Käännä, pakkaa ja aja ohjelma Koodin tarkastelu (huom. tied. sulkeminen) Tietokanta sijaitsee hakemistossa \bin\series_60_midp_sdk_for_symbian_os_v_ 1_2_1\ epoc32\wins\c\tmp\midp. rms.db-tiedoston poistaminen tyhjentää tietokannan. Asentaminen matkapuhelimeen Muistin seuranta Asennuksen voi tehdä esimerkiksi Bluetooth yhteyden yli Luo Bluetooth-yhteys kännykkään PC:ltä Käynnistä "PC Suite for Nokia" -ohjelma Kopioi esim. HelloWorld.jad- ja HelloWorld.jartiedostot puhelimen "Installation and Java files" - hakemistoon (tai vastaavaan) Asenna sovellus puhelimen kautta Aja ohjelma puhelimessa Valitse KToolbarin Edit-valikosta Preferences Ruksaa välilehdeltä Monitoring "Enable Memory Monitoring" päälle ja käynnistä KToolbar uudestaan. Aja ohjelma esim. DefaultColorPhonella (Series 60 emulaattorissa ei tukea tälle) Kysymyksiä? Ryhmät Ryhmien muodostaminen Ryhmät tulevat kurssin kotisivulle 6

Edellisen viikon kurssikysymys Millaisia sovelluksia ei voi tehdä J2ME:llä? (API-rajoitukset) 7