Symbian ohjelmointi
This presentation is the property of its rightful owner.
Sponsored Links
1 / 29

Symbian ohjelmointi PowerPoint PPT Presentation


  • 96 Views
  • Uploaded on
  • Presentation posted in: General

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.

Download Presentation

Symbian ohjelmointi

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

  • Ti5315200 Symbian ohjelmointi

  • 1. harjoitus

  • Juha Turunen ([email protected])


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


Epoc32

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


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

      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


Moduulim rittely mmp1

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

      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ä


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)


  • Login