symbian ohjelmointi
Download
Skip this Video
Download Presentation
Symbian ohjelmointi

Loading in 2 Seconds...

play fullscreen
1 / 29

Symbian ohjelmointi - PowerPoint PPT Presentation


  • 131 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Symbian ohjelmointi' - keefe


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
symbian ohjelmointi
Symbian ohjelmointi
sis lt
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
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
epoc32
\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\
epoc321
\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ää
symbian spesifiset l hdekoooditiedostot
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
projektim rittely bld inf
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.
moduulim rittely mmp
Moduulimäärittely (.mmp)
  • MMP-tiedosto määrittelee modulin
  • Syntaksi
    • Tuotettavan modulin nimi

TARGET 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

moduulim rittely mmp1
Moduulimäärittely (.mmp)
  • Syntaksi
    • Listataan lähdekooditiedostot (.cpp), jotka käännetään moduuliin

SOURCE CFunkyBase.cpp CGeorgeClinton.cpp

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

LIBRARY euser.lib cone.lib bafl.lib

    • Lisäksi paljon muuta
      • MMP:n syntaksi määrittely löytyy SDK helpistä
resurssil hdetiedosto rss
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...
resurssiheaderit rh hrh loc
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
projektin hakemistorakenne
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
myproject
\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
myproject1
\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
myproject2
\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
komentorivi k nn sty kalut
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
emulaattori
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
emulaattori1
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
emulaattori2
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
emulaattori3
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
emulaattori4
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
emulaattori options
Emulaattori - Options
  • Left softkey avaa Options-valikon
  • Valikosta löytyy ohjelman lisätoimintoja
  • Päätoiminnot löytyvät ensimmäisestä näkymästä
emulaattori ohjelman k ynnistys
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
emulaattori application key
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ä
k nt minen visual c lla step by step
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)
testaaminen emulaattorilla
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
helloworldin muokkaaminen
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.
msvc debuggaus
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
  • !
msvc debuggaus1
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)
ad