Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

TEKNIIKAN JA TALOUDEN YLIOPISTO Symbian ohjelmointi 1. Luento Juha Turunen

Samankaltaiset esitykset


Esitys aiheesta: "TEKNIIKAN JA TALOUDEN YLIOPISTO Symbian ohjelmointi 1. Luento Juha Turunen"— Esityksen transkriptio:

1 TEKNIIKAN JA TALOUDEN YLIOPISTO www.lut.fi

2 Symbian ohjelmointi 1. Luento Juha Turunen (juha.turunen@lut.fi)

3 Sisältö Johdanto Symbian OS:iin Mobiilin ympäristön asettamat vaatimukset Symbian OS arkkitehtuuri S60 Kehitysympäristö

4 Symbian Ltd. Perustettu 1998 Yhteisyritys Omistajilla ei valtaa teknisissä asioissa –(eipä)

5 Symbian lisensoijat

6 Symbian nyt 7 valmistajaa on tuonut Symbian-puhelimia markkinoille 55+ laitetta markkinoilla 50+ laitetta tulossa markkinoille 11 eri valmistajalta Vuoden 2005 ensimmäisellä puoliskolla maailmassa myytiin 14.5 miljoonaa Symbian-puhelinta Kaiken kaikkiaan 39 miljoonaa laitetta maailmalla

7 Kilpailijat Microsoft –Windows Mobile Palm OS –Palm UI for mobile phones Proprietary järjestelmät –Esim. Nokia OS Linux & Java –Motorola

8 Symbian laitteen rakenne Valmiin Symbian laitteen voidaan katsoa kostuuvan useasta eri kerroksesta Symbian OS ei tee kaikkea tarpeellista –esim. cellular stack Symbian OS v9 (EKA2) ensimmäinen RTOS versio (DOS ei pakollinen kerros) Etel API Symbian OS Domestic OS HW GUI & Apps

9 Symbian platform on avoin Perinteisesti matkapuhelimet ovat suljettuja järjestelmiä –ei kolmansien osapuolien natiivisovelluksia Symbian tarjoaa alustan sovellusten kehittämiselle: Symbian OS Avoin alusta tarjoaa: –Yhteensopivuutta –Riippumatonta ohjelmistokehitystä –Portattavuutta

10 Symbian ekosysteemi Symbian Lisensoijat 3rd party kehittäjät SCC (Symbian Competence Center) –Kustomointi –Tuotekehitys –Integrointi

11 Platformit Lähtökohta, jonka pohjalta lisensoija voi luoda oman laitteen Käyttöliittymäkirjasto, varusohjelmat, muut komponentit Päättäessään tehdä Symbian-laitetteen lisensoijalla on kaksi vaihtoehtoa –Tehdä oma platform –Lisensoida jo olemassa oleva platform (S60 tai UIQ) Oman käyttöliittymän ja varusohjelmien tekeminen todella hidasta ja kallista –Käytännössä platformit ovat syntyneet eikä ole todennäköistä, että kukaan investoisi uusien kehittämiseen

12 Symbian platform Symbian operating system Symbian system layer Symbian application engines Symbian Platform 5% 55% 20% Communicator platform 1 Communicator platform 2 Smartphone platform 1 Smartphone platform 2 20%

13 Kurssin ympäristö Symbian operating system Symbian system layer Symbian application engines Generic technologies 5% 55% 20% Series 60 platform 20%(?)

14 Nokia S60 Älypuhelin platform Ensimmäinen versio ja laite (7650) vuonna 2000 Useita eri versiota –Editions & feature packs –Yleisesti ottaen taaksepäin yhteensopivia (pl. 3rd edition) Sisältää valtavan määrän kirjastoja eri käyttötarkoituksiin Varusohjelmat AVKON

15 Mielenkiintoisia S60 ominaisuuksia Open GL ES (2nd edition FP2) Puheentunnistus (2nd edition FP2) Tuki skaalautuvalle näytölle (2nd edition FP3) Platform security (3rd edition) Landmarks (3rd edition) XML customization framework (3rd edition)

16 Nokia Series80 ”Kommunikaattoriplatformi” ½ VGA (640 x 240) QWERTY näppäimistö

17 UIQ UIQ technology Kosketusnäyttöpohjainen QVGA (320x240) SE, Nokia, BenQ, Motorola UIQ 1.0, UIQ 2,0, UIQ 3.0

18 NTT DoCoMo FOMA APAC markkinoilla Useita eri valmistajia Kehitysympäristöä ei julkisesti saatavilla

19 Symbianin rooli Symbian lisensoi ”core platformin” Ydin Kaikki geneerinen teknologia S60, S80, S90, UIQ lisensoivat käyttöliittymän –Laitevalmistaja voi myös itse tehdä oman käyttöliittymän (ei ihan pikku homma) Laitevalmistaja voi yleensä muokata käyttöliittymää, mutta ei Symbianin geneeristä osuutta

20 Kuka tekee mitä? Esimerkki: kalenteri Symbian –Kalenteri engine –Ei mitään visuaalista Nokia Series 60 –Kalenterin toiminnallisuus –Käyttöliittymä Laitevalmistaja / operaattori –Omat muokkaukset –Ikonit, värit, jne...

21 Mobiilin ympäristön asettamat vaatimukset Suorituskyky –Laitteissa on rajoitetusti prosessointitehoa Massamuistit Muistin määrä Luotettavuus –Puhelinta ei mielletä tietokoneeksi vaikka älypuhelin käytännössä sellainen onkin Turvallisuus –Erityisen houkutteleva kohde hyökkääjälle, koska ympäristö tarjoaa ansaintamahdollisuuksia Symbian OS pyrkii tarjoamaan ratkaisuja vaatimusten saavuttamiseksi, mutta ei vapauta sovelluskehittäjää niistä

22 Symbian OS 32-bittinen microkernel (EKA2 RTOS) Erittäin optimoitu Keskeyttävä moniajo Suojattu muisti 95% C++, 5% C-kieltä ja natiivi assembleria ~Täysin oliopohjainen Sisäinen client-server arkkitehtuuri Portattavissa useille alustoille (esim. ARM, Intel XScale) SIBO -> ER3 -> ER5 -> SOS EKA1 vs. EKA2 Secure platform

23 Symbian OS v9 Symbian maailman mullistus Turvallisuusuudistukset Uusi kernel-arkkitehtuuri (EKA2) –RTOS Uusi sovellusrajapinta (ARM ABI) –Uudet kääntäjäversiot (ARM RVCT, GCC, Borland?) Binääriyhteensopivuus jouduttiin rikkomaan uudistusten vuoksi Kurssilla käytetään vanhempaan käyttöjärjestelmä versioon pohjautuvaa ympäristöä

24 Secure platform Tarjoaa mekanismit, joilla voidaan kontrolloida sovelluksien pääsyä laitteen sisältämään dataan sekä tarjottuihin palveluihin (esim. puhelut) Sovellusten sertifiointi Secure platform esitellään tarkemmin myöhemmin kurssin aikana

25 Moniajo Symbian OS:ssa Prosessit –Toimivat muistin suojauksen yksikköinä Jokaisessa prosessissa on vähintään yksi threadi –Thread on ”suorittamisen yksikkö” –Threadeja ajetaan keskeyttävällä moniajolla –Threadilla on prioriteetti Threadin sisällä tuetaan yhteistyömoniajoa –Useimmissa applikaatioissa on vain yksi säie –Active objectit –Ei context switchingiä -> tehokas

26 Muistinhallinta Symbian OS:ssa Alimman tason yksikkö chunk Jokaisella prosessilla on oma heap Jokaisella threadilla on oma stack –Stackin koko on yleensä pieni johtuen pienien laitteiden rajallisista resursseista –Saman prosessin threadit käyttävät samaa heapia –Threadi voi luoda myös oman heapin Chunkkeja voidaan jakaa prosessien välillä –Luodaan jaettava chunk –Useat prosessit voivat avata kahvoja samaan chunkiin –Chunkin jako kätevä tapa säästää prosessori tehoa ja muistia Prosessin sisäinen muistinhallinta poikkeaa hieman perinteisestä tarjoamalla

27 Kirjastot Kirjasto (=library) on pieni ohjelmistokokonaisuus Kahden tyyppisiä –Staattisesti linkitettävä –Dynaamisesti linkitettävä (DLL) Sisältävät koodia josta on hyötyä monelle eri taholle –Ei tarvitse keksiä pyörää uudelleen (ainakaan niin usein) –Dynaamisesti linkitettävän kirjaston käyttö pienentää applikaation kokoa –Joskus myös loogisen jaon väline applikaation sisällä Pluginit

28 Sisäinen Client/Server arkkitehtuuri Symbian OS server tarkoittaa ohjelmaa, joka palvelee muita laitteessa olevia ohjelmia (clients) jollain tavalla Serverit voivat tarjota kontroloidun tavan jakaa resursseja –Serverillä voi olla useita client sessioita –Kaksi applikaatiota voi käsitellä samaa dataa Agenda server (kalenteri data) File server (tiedosto järjestelmä) Window server (näyttö) Koodin ja toiminnallisuuden jakamiseen IPC C/S arkkitehtuuria käytetään erittäin paljon Symbian OS ympäristössä

29 Sisäinen Client/Server arkkitehtuuri Edut –Asynkroninen –Hyvä modulaarisuus –Process boundary –Turvallisuus näkökohdat Haitat –Server kutsu hitaampi kuin DLL kutsu –Datan siirtäminen hidasta –Latenssi –Context switching

30 Sovelluksen jakelu Sovellus voidaan sijoittaa laitteeseen kiinteästi laitteen flash-muistiin –Suljettu –Mahdollinen vain valmistajille Kolmansien osapuolien sovelluksia on mahdollista asentaa massamuistille –SIS-paketit

31 Ohjelmistokehitys Symbian-laitteille Kehitystyö tapahtuu pääosin PC-työasemalla C++ tai Java Samasta lähdekoodista käännetään useita eri variantteja –WINS/WINSCW Ajetaan emulaattoriympäristössä –MARM/ARMI/THUMB jne... Ajetaan kohderaudalla (proto tai valmis tuote)

32 C++ ympäristö SDK sisältää emulaattorin kehitystä ja debuggausta varten Visual C++ / CodeWarrior / Borland IDE / Carbide.c++ –Kohde raudalle GNU gcc tai ARM RVCT SDK:ssa myös omia työkaluja Jokseenkin haastava –”Few concessions made to programmers less than stellar” – David Wood, EVP, Symbian

33 Emulaattori WINS (=Windows Single Process) –EKA2:ssa useita prosesseja Emulaattori – ei simulaattori Emulaattori ja siinä ajettavat ohjelmat ovat Win32 natiivikoodia Suorittaa Symbian OS –kutsut, mutta emuloi kohdelaitteen raudan (näyttö, äänet, verkko, näppäimistö, kynä) työaseman käyttöjärjestelmän avulla.

34 Työkalut Komentorivityökalut –Paljon pieniä työkaluja –Periaatteessa kaiken voi tehdä ilman IDE:a (kääntäjä on luonnollisesti kuitenkin pakollinen) MS Visual C++ (ei tukea 3rd editionissa) Metrowerks Codewarrior GCC (tuki saatavilla myös uudelle ABI:lle) Nokia Carbide.c++ (Eclipse + GCC)

35 Debuggaus Debuggaus emulaattorilla helppoa –Breakpointit –Debug print Debuggaus raudalla –DIY logit –Apuohjelmia saatavilla, joilla debug printit voidaan siirtää esim. Bluetoothin yli PC:lle –Myös breakpointtien käyttö mahdollista Bluetooth yhteyttä käyttäen (CodeWarrior, GDB) –Kalliit rautadebuggerit Ei kolmansien osapuolien käytettävissä

36 Kehitysprosessi C++ koodi Sovelluskehitin MSVC Carbide Codewarrior Emulaattori Kohdekääntäjä GCC ARM RVCT Rautasidonnaisten bugien debuggaus Käännös Debuggaus

37 Hello World (ei näyttelykelpoinen) #include GLDEF_C TInt E32Main() { CConsoleBase* console; _LIT(KTxtExampleCode,"Hello console"); console=Console::NewL(KTxtExampleCode, TSize(KConsFullScreen,KConsFullScreen)); _LIT(KHelloWorldText,"Hello world!\n"); console->Printf(KHelloWorldText); console->Getch(); delete console; return 0; }

38 Hello World


Lataa ppt "TEKNIIKAN JA TALOUDEN YLIOPISTO Symbian ohjelmointi 1. Luento Juha Turunen"

Samankaltaiset esitykset


Iklan oleh Google