Top Banner
Symbian ohjelmointi Ti5315200 Symbian ohjelmointi 1. harjoitus Juha Turunen ([email protected])
29

Symbian ohjelmointi

Mar 20, 2016

Download

Documents

Keefe

Symbian ohjelmointi. Ti5315200 Symbian ohjelmointi 1. harjoitus Juha Turunen ([email protected]). Sisältö. Tutustutaan SDK:n sisältöön Käännöstiedostot Emulaattori Käännetään ohjelma emulaattorille Tutustutaan käytettävään sovelluskehittimeen. SDK:n rakenne. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Symbian ohjelmointi

Symbian ohjelmointi

Ti5315200 Symbian ohjelmointi1. harjoitus

Juha Turunen ([email protected])

Page 2: Symbian ohjelmointi

Sisältö

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

Page 3: Symbian ohjelmointi

SDK:n rakenne

• Hakemistorakenne \Symbian\<versio>\<platformversio>\– 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

Page 4: Symbian ohjelmointi

\epoc32\

• Release\– Target platform riippuvat binäärit (DLL:t ja lib:t)– Emulaattori: Release\<platform>\EPOC.exe– Emulaattorin z: -aseman juuri: release\<platform>\z\– Käännetyt DLL:t ja niitä vastaavat lib:t -> release\

<platform>\• Include\

– C++ headerit• WINS\

– Emulaattorin c: -aseman juuri: WINS\c\

Page 5: Symbian ohjelmointi

\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ää

Page 6: Symbian ohjelmointi

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

Page 7: Symbian ohjelmointi

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_PLATFORMSWINSARMI

PRJ_MMPFILESMyApplication.mmpMyEngine.mmp

• Syntaksi– PRJ_PLATFORMS määrittelee mille kaikille varianteille projekti

käännetään– PRJ_MMPFILES listaa moduulit, jotka kuuluvat projektiin.

Page 8: Symbian ohjelmointi

Moduulimäärittely (.mmp)

• MMP-tiedosto määrittelee modulin• Syntaksi

– Tuotettavan modulin nimiTARGET MyFunkyLibrary.dll

– Tuotettavan modulin tyyppi (app, dll, tsy, jne...)TARGETTYPE dll

– Tuotettavan modulin UID (unique ID)UID 0x1000008D 0x01098FDC

– Polku, josta lähdekooditiedostot haetaan (huomaa ”..\” koska mmp-tiedosto sijaitsee group\ -hakemistossa)SOURCEPATH ..\FunkySrc

Page 9: Symbian ohjelmointi

Moduulimäärittely (.mmp)

• Syntaksi– Listataan lähdekooditiedostot (.cpp), jotka käännetään

moduuliinSOURCE CFunkyBase.cpp CGeorgeClinton.cppSOURCE CFunkontainer.cpp

– Listataan ”käyttäjän” headerhakemistot, joihin viitataan #include ”MyHeader.h”USERINCLUDE ..\src ..\inc // private headers

– Listataan ”systeemin” headerhakemistot, joihin viitataan #include <e32std.h>SYSTEMINCLUDE \epoc32\include

– Listataan linkitettävät kirjastotLIBRARY euser.lib cone.lib bafl.lib

– Lisäksi paljon muuta• MMP:n syntaksi määrittely löytyy SDK helpistä

Page 10: Symbian ohjelmointi

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...

Page 11: Symbian ohjelmointi

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

Page 12: Symbian ohjelmointi

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

Page 13: Symbian ohjelmointi

\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

Page 14: Symbian ohjelmointi

\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

Page 15: Symbian ohjelmointi

\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

Page 16: Symbian ohjelmointi

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

Page 17: Symbian ohjelmointi

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

Page 18: Symbian ohjelmointi

Emulaattori

NavigointiEmulaattorin näppäimet ja niiden merkitysPikanä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

Page 19: Symbian ohjelmointi

Emulaattori

NavigointiEmulaattorin näppäimet ja niiden merkitysPikanä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

Page 20: Symbian ohjelmointi

Emulaattori

NavigointiEmulaattorin näppäimet ja niiden merkitysPikanä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

Page 21: Symbian ohjelmointi

Emulaattori

NavigointiEmulaattorin näppäimet ja niiden merkitysPikanä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

Page 22: Symbian ohjelmointi

Emulaattori - Options

• Left softkey avaa Options-valikon• Valikosta löytyy ohjelman

lisätoimintoja• Päätoiminnot löytyvät ensimmäisestä

näkymästä

Page 23: Symbian ohjelmointi

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

Page 24: Symbian ohjelmointi

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ä

Page 25: Symbian ohjelmointi

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)

Page 26: Symbian ohjelmointi

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

Page 27: Symbian ohjelmointi

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.

Page 28: Symbian ohjelmointi

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!

Page 29: Symbian ohjelmointi

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)