Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Symbian ohjelmointi Ti5315200 Symbian ohjelmointi 1. harjoitus Juha Turunen

Samankaltaiset esitykset


Esitys aiheesta: "Symbian ohjelmointi Ti5315200 Symbian ohjelmointi 1. harjoitus Juha Turunen"— Esityksen transkriptio:

1 Symbian ohjelmointi Ti5315200 Symbian ohjelmointi 1. harjoitus Juha Turunen (juha.turunen@lut.fi)

2 Sisältö Tutustutaan SDK:n sisältöön Käännöstiedostot Emulaattori Käännetään ohjelma emulaattorille Tutustutaan käytettävään sovelluskehittimeen

3 SDK:n rakenne Hakemistorakenne \Symbian\ \ \ –Epoc32\ binäärit, headerit, libraryt kaikki kääntämiseen ja linkitykseen tarvittava –Examples\ Symbianin esimerkkikoodeja Lajiteltu aihealueittain –Series60Doc Symbian OS & S60 dokumentaatiota –Series60Ex S60 spesifisiä esimerkkikoodeja –Seris60Tools Apuohjelmia PC:lle ja päätelaitteelle

4 \epoc32\ Release\ –Target platform riippuvat binäärit (DLL:t ja lib:t) –Emulaattori: Release\ \EPOC.exe –Emulaattorin z: -aseman juuri: release\ \z\ –Käännetyt DLL:t ja niitä vastaavat lib:t -> release\ \ Include\ –C++ headerit WINS\ –Emulaattorin c: -aseman juuri: WINS\c\

5 \epoc32\ Data\ –EPOC.ini - Emulaattorin konfiguraatiotiedosto –EPOC.bmp – Emulaattorin ”skini” Build\ –Jokaiselle projektille oma alihakemisto –Käännösprosessiin liittyvät tiedostot Visual Studion projektifile Makefile:t DLL rajapinnan kuvaustiedostot (.def) Paljon tiedostoja, joista ei tarvitse välittää

6 Symbian spesifiset lähdekoooditiedostot Symbian platformissa on erillaisia normaalista (.cpp &.h) poikkeavia tiedostoja Näillä tiedostoilla määritellään erillaisia Symbian platformille ominaisia asioita –Moduulit –MBM-bittikarttatiedostot –MIF-tiedostot (2nd ed FP3->) –Resurssitiedostot

7 Projektimäärittely (bld.inf) Määrittelee Symbian ohjelmisto kokonaisuuden, joka yleensä käännetään kerrallla Kokonaisuus koostuu yhdestä tai useammasta moduulista (.dll,.app,.exe) PRJ_PLATFORMS WINS ARMI PRJ_MMPFILES MyApplication.mmp MyEngine.mmp Syntaksi –PRJ_PLATFORMS määrittelee mille kaikille varianteille projekti käännetään –PRJ_MMPFILES listaa moduulit, jotka kuuluvat projektiin.

8 Moduulimäärittely (.mmp) MMP-tiedosto määrittelee modulin Syntaksi –Tuotettavan modulin nimi TARGETMyFunkyLibrary.dll –Tuotettavan modulin tyyppi (app, dll, tsy, jne...) TARGETTYPE dll –Tuotettavan modulin UID (unique ID) UID0x1000008D0x01098FDC –Polku, josta lähdekooditiedostot haetaan (huomaa ”..\” koska mmp-tiedosto sijaitsee group\ -hakemistossa) SOURCEPATH..\FunkySrc

9 Moduulimäärittely (.mmp) Syntaksi –Listataan lähdekooditiedostot (.cpp), jotka käännetään moduuliin SOURCECFunkyBase.cpp CGeorgeClinton.cpp SOURCECFunkontainer.cpp –Listataan ”käyttäjän” headerhakemistot, joihin viitataan #include ”MyHeader.h” USERINCLUDE..\src..\inc // private headers –Listataan ”systeemin” headerhakemistot, joihin viitataan #include SYSTEMINCLUDE\epoc32\include –Listataan linkitettävät kirjastot LIBRARYeuser.lib cone.lib bafl.lib –Lisäksi paljon muuta MMP:n syntaksi määrittely löytyy SDK helpistä

10 Resurssilähdetiedosto (.rss) Resurssitiedostot ovat binääritiedostoja, jotka voivat sisältää mitä tahansa dataa Resursseilla voidaan määritellä esim. käyttöliittymä komponenttien sisältö (menut, jne...) Resurssitiedostot mahdollistavat laitteen lokalisoinnin Resurssitiedosto käännetään rss-tiedostosta. Lisää resursseista ja niiden käytöstä myöhemmillä harjoituskerroilla...

11 Resurssiheaderit (.rh,.hrh,.loc).hrh –tiedostot ovat.rss –tiedostojen headereita. –Aivan kuin.cpp.h.rh –tiedostot määrittelevät erillaisia resurssistruktuureja (menu, painonappi, ihan mitä vain...) –Luonnollisesti voit myös itse määritellä uusia resurssistruktuureja.loc –tiedostot ovat lokalisointia varten. Yleensä resurssitiedostoon sijoitettavat tekstit määritellään loc- tiedostoissa –loc-tiedosto includoidaan resurssitiedostoa käännettäessä aivan kuten.hrh-tiedostotkin

12 Projektin hakemistorakenne Symbian OS projektissa lähdetiedostot on jaoteltu ”standardihakemistoihin” Platform ei vaadi hakemistoihin jakamista, mutta se helpottaa työskentelyä Eri tyyppiset tiedostot helppo löytää, kun tietää mistä etsiä Looginen jaottelu –Eri modulien koodit eri hakemistoihin –Helpottaa, jos tarvitsee perehtyä tuntemattomaan koodiin

13 \MyProject\ Group\ –Projektin kuvaustiedosto bld.inf –Modulien kuvaustiedostot (.mmp) MyApp.mmp MyEngine.mmp jne... –Kaikille moduleille yhteiset tiedostot MyApp.hrh MyAppConstants.h –Resurssitiedostot (.rss) MyApp.rss

14 \MyProject\ Aif\ –Resurssitiedosto, josta AIF-tiedosto käännetään MyAppAif.rss –Muut AIF-tiedostoon liittyvät tiedostot, esim. ikonit XXXSrc\ –C++ lähdekooditiedostot (.cpp) –Jokaiselle modulille oma Src –hakemisto Esim. MyEngineSrc –Sisältää myös modulille sisäisiä headereita BWINS/BMARM\ –Rajapintamäärittelytiedostot (.def) –Eri varianteille oma hakemisto

15 \MyProject\ XxxInc\ –Jokaisen modulin headereille oma hakemisto –Esim. MyEngineInc, MyCommsModuleInc –Hakemistoon tulee ainoastaan ne header tiedostot, joiden kuuluu näkyä modulin ulkopuolelle. Moduulin sisäiset headerit laitetaan modulin Src –hakemistoon. CMyEnginePublicAPI.h => MyEngineInc CMyEngineInternalClass.h => MyEngineSrc Data\ –Ikonit –Äänet –Sekalainen projektiin liittyvä data Doc\ –Projektin dokumentaatio

16 Komentorivi käännöstyökalut bldmake –Käytetään kun projekti aloitetaan tai siihen liitetään uusia moduleja –> bldmake bldfiles Luo \epoc32\build\ hakemiston alle tarvittavat hakemistot Luo abld.bat:n abld.bat –Hoitaa kääntämisen, linkkaamisen, makefile:n teon,.lib filejen generoinnin, jne... –> abld commands

17 Emulaattori Käynnistyy komentoriviltä EPOC.EXE tai F5/Ctrl-F5 (MSVC) Emulaattori on Windows-ohjelma Käännetyt ohjelmat käyttävät Windowsin kirjastoja –WINS UDEB kääntö Oikealle puhelimelle tehtävä esim. THUMB UREL kääntö jonka jälkeen tehdään SIS- paketti (tai ROM image) –Näitä ei voi ajaa emulaattorissa –Kurssilla ei tehdä omia imageja

18 Emulaattori Navigointi Emulaattorin näppäimet ja niiden merkitys Pikanäppäimet: –§ = OK –Alt-1 = Left softkey –Alt-2 = Right softkey –Backspace = C –Home = Application key –Shift = Edit key –0 – 9 = 0 – 9, kuten puhelimessa

19 Emulaattori Navigointi Emulaattorin näppäimet ja niiden merkitys Pikanäppäimet: –§ = OK –Alt-1 = Left softkey –Alt-2 = Right softkey –Backspace = C –Home = Application key –Shift = Edit key –0 – 9 = 0 – 9, kuten puhelimessa

20 Emulaattori Navigointi Emulaattorin näppäimet ja niiden merkitys Pikanäppäimet: –§ = OK –Alt-1 = Left softkey –Alt-2 = Right softkey –Backspace = C –Home = Application key –Shift = Edit key –0 – 9 = 0 – 9, kuten puhelimessa

21 Emulaattori Navigointi Emulaattorin näppäimet ja niiden merkitys Pikanäppäimet: –§ = OK –Alt-1 = Left softkey –Alt-2 = Right softkey –Backspace = C –Home = Application key –Shift = Edit key –0 – 9 = 0 – 9, kuten puhelimessa

22 Emulaattori - Options Left softkey avaa Options-valikon Valikosta löytyy ohjelman lisätoimintoja Päätoiminnot löytyvät ensimmäisestä näkymästä

23 Emulaattori – Ohjelman käynnistys OK suorittaa komennon, esim. avaa ohjelman Esimerkkinä Phonebook-sovellus Ohjelmasta poistutaan joko Options/Exit tai valitsemalla päänäkymästä Exit

24 Emulaattori – Application key Ohjelman voi jättää taustalle painamalla Application keytä Pitämällä Application keytä pohjassa saa listan käynnissä olevista sovelluksista (ns. fast swap window) Siirtyminen tapahtuu OK-näppäimellä tai Left softkeyllä

25 Kääntäminen Visual C++:lla Step by step... Avaa command prompt (cmd.exe) Mene ….\series60ex\helloworldplus\group\ –hakemistoon > bldmake bldfiles –Hakemistoon ilmestyy abld.bat > abld makefile vc6 –Luo MSVC++ projektitiedoston \epoc32\build\......\helloworldplust\Group\helloworldplus\WINS – hakemistoon Käynnistä Visual Studio File/Open Workspace -> avaa projektitiedosto helloworldplus.dsw yllä olevasta hakemistosta Tarkista että aktiivinen variantti on UDEB –Build/Set active configuration Käännä –Build / Build HelloWorld.app (F7)

26 Testaaminen emulaattorilla Käynnistä emulaattori –Build / Execute (ctrl+F5) –Ensimmäisellä kerralla projektitiedoston luonnin jälkeen Visual Studiolle pitää kertoa emulaattorin paikka \epoc32\release\wins\udeb\epoc.exe –Voit käynnistää emulaattorin myös komentoriviltä Käynnistä HelloWorldPlus emulaattorissa

27 HelloWorldin muokkaaminen Tutustu CHelloWorldPlusAppView–luokan Draw() metodiin Muokkaa Draw() metodia, niin että tekstin paikka vaihtuu –” gc.DrawText( timeAsText, TPoint( 20,20 ) );” Käännä HelloWorld.app uudelleen ja kokeile muutoksia emulaattorissa –Huom! Emulaattoria ei tarvitse sammuttaa kääntämisien välillä. –Ei linkkaudu? Sammuta HelloWorldPlus applikaatio emulaattorissa ja käännä uudelleen Applikaation menussa olevat tekstit luetaan resurssitiedostosta. Kokeile muuttaa jotakin menutekstiä. –Data\helloworldplus.loc –Resurssi tiedosto ei käänny? Emulaattori pitää resurssitiedoston lukittuna vaikkei applikaatio olisikaan käynnissä => emulaattori pitää sammuttaa resurssitiedoston kääntämisen ajaksi.

28 MSVC – Debuggaus Mene CHelloWorldPlusAppUi::HandleCommandL metodiin ja paina F9 = Breakpoint rivillä case EHelloWorldPlusCommand Käynnistä emulaattori debug moodissa Visual Studiosta (F5) Options/Hello World Plus!  Suoritus pysähtyy em. kohtaan Nyt olemme Debuggerissa ja voimme tutkiskella ohjelman toimintaa lähemmin !

29 MSVC – Debuggaus F10 = Step over –Suorittaa kursorin kohdalla olevan lausekkeen F11 = Step into –”Astuu sisään” kursorin kohdalla olevaan lausekkeeseen –Esim. ilmaisujen (expression) tarkastelu F5 jatkaa ohjelman suoritusta –Breakpointit jäävät voimaan Huom: jos debugattavan koodin lähdekoodia ei ole saatavilla, saat vastaasi assembler-dumppia Lopeta debuggaus valitsemalla Debug/Stop debugging (Shift-F5)


Lataa ppt "Symbian ohjelmointi Ti5315200 Symbian ohjelmointi 1. harjoitus Juha Turunen"

Samankaltaiset esitykset


Iklan oleh Google