U prvom poglavlju bavit ću se hardverom potrebnim za 3D grafiku na ...
višekanalsko dekodiranje sa opcijom Picture-in-Picture (PiP), AMD-ov ......
Symbian Signed program. ... Nokia sama posjeduje oko 53% tržišta pametnih
telefona. Uspjeh ...
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA
DIPLOMSKI RAD br. 2959
INTERAKTIVNA 3D GRAFIKA NA POKRETNIM SUSTAVIMA Ivan Knežević
Zagreb, lipanj 2008.
Mentor rada: prof. dr. sc. Igor S. Pandžić
Sadržaj Sadržaj........................................................................................................... 1 Uvod............................................................................................................... 2 1. Hardver – grafički procesori ....................................................................... 4 1.1 Samostalni grafički procesori................................................................ 4 1.1.1 ATI ................................................................................................. 4 1.1.2 NVIDIA ........................................................................................... 7 1.2 Grafički koprocesori .............................................................................. 8 1.2.1 Intel ................................................................................................ 9 1.2.2 Philips .......................................................................................... 10 1.2.3 Qualcomm.................................................................................... 11 1.2.4 Renesas....................................................................................... 12 1.2.5 Texas Instruments........................................................................ 14 1.2.6 Toshiba ........................................................................................ 16 1.3.Licencni grafički procesori .................................................................. 16 1.3.1 Imagination Technologies ............................................................ 16 2. Operacijski sustavi za pokretne ureñaje................................................... 19 2.1 Blackberry OS .................................................................................... 20 2.2 JavaFX Mobile.................................................................................... 20 2.3 Operacijski sustavi temeljeni na Linuxu .............................................. 21 2.3.1 Access Linux Platform.................................................................. 22 2.3.2 Android......................................................................................... 23 2.3.3 LiMo Platform............................................................................... 24 2.3.4 Openmoko Linux .......................................................................... 24 2.3.5 Qtopia .......................................................................................... 25 2.4 iPhone OS .......................................................................................... 25 2.5 Windows Mobile ................................................................................. 26 3. Symbian ................................................................................................... 28 3.1 Dizajn.................................................................................................. 29 3.2 Struktura ............................................................................................. 29 3.3 Povijest ............................................................................................... 31 3.4 Razvijanje aplikacija ........................................................................... 32 3.5 Udio na tržištu pametnih telefona ....................................................... 34 4.OpenGL ES............................................................................................... 36 5. Razvijanje aplikacije................................................................................. 39 5.1 Priprema za rad .................................................................................. 39 5.1.2 Perl............................................................................................... 39 5.1.3 Carbide ........................................................................................ 40 5.1.4 SDK za platformu S60 na Symbianu za C++ ............................... 42 5.1.5 UIQ............................................................................................... 42 5.2 Aplikacija ............................................................................................ 43 5.3 Generiranje 3D sadržaja korištenje MS Visual Studija .NET, Carbide.vs-a i SDK-a................................................................................ 44 Zaključak ...................................................................................................... 50 Literatura ...................................................................................................... 51 Dodatak........................................................................................................ 54
1
Uvod Kroz zadnjih nekoliko godina napredak tehnologije omogućio je razvoj prvo 2D, a kasnije i 3D grafike. 3D grafika ima mnogo primjena, ali glavni pokretači njena razvoja su računalne igre i specijalni efekti. Od prve 3D igre za kućno računalo (napravljene 1981. – 3D Monster Maze1) do današnjih 3D igara postignut je golemi napredak.
Slika 0.1 Razvoj 3D grafike
Danas se tvrtke koje se bave proizvodnjom 3D igara neprestano natječu tko će proizvesti bolji i moćniji 3D engine jer im samo to osigurava opstanak na tržištu. Iako su mobilni ureñaji danas još uvijek slabijih mogućnosti nego stolna računala (ali opet jačih nego stolna računala iz recentnije prošlosti), i za njih se razvilo veliko tržište 3D aplikacija. Koliko god te aplikacije bile lošijih performansi od onih na stolnim računalima, svakako više ne predstavljaju zanemariv dio u programima namijenjenim mobilnim ureñajima. Razvojem grafičkih procesora, zaslona i performansi općenito, 3D grafika postala je uobičajena i na mobilnim ureñajima. Od mnogo okruženja u kojima je moguće baviti se grafikom na mobilnim platformama, u dogovoru s mentorom izabrao sam Microsoft Visual C++ na Symbian OS-u. U prvom poglavlju bavit ću se hardverom potrebnim za 3D grafiku na pokretnim ureñajima. Grafički procesori, posebni procesori za obradu grafike, 1
Izvor: Wikipedija
2
standard na desktop računalima, relativna su novost na tržištu pokretnih ureñaja i sami proizvoñači ih rijetko navode u specifikacijama ureñaja koje služe uglavnom marketinškoj svrsi. Potrudio sam se napraviti pregled svih aktualnih grafičkih procesora i koprocesora navesti njihove tehničke specifikacije. Nakon upoznavanja hardvera, za razvoj aplikacije potrebno je upoznati se i sa softverom. Krećemo sa dovoljno niskom razinom – u drugom poglavlju donosim pregled operacijskih sustava korištenih na pokretnim ureñajima. Kao i kod grafičkih procesora, ovo tržište je dosta burno i često podložno promjenama, te pregled neće dugo ostati aktualan. Iz razmatranja sam ipak odlučio isključiti Palm OS, kako je on prvenstveno namijenjen dlanovnicima. Posebno se osvrćem na Symbian u trećem poglavlju. U četvrtom poglavlju se penjemo na višu softversku razinu gdje biramo aplikacijsko programsko sučelje (API) koje ćemo koristiti za razvijanje aplikacije. Izbor je pao na OpenGL ES. U petom poglavlju donosim popis alata koju su korišteni za sam razvoj aplikacije, opis njezine implementacije i korištenja; te na kraju zaključak.
3
1. Hardver – grafički procesori Grafički procesori za pokretne ureñaje (Graphic Processing Unit – GPU) su dio hardvera koji se razvija izuzetno brzo. Tržište, tj. korisnici postavljaju sve veće zahtjeve na te ureñaje: veću razlučivost, TV prijenos i kvalitetnu video i zvučnu reprodukciju, 3D video igre, a sve to uz ograničene izvore napajanja - baterije. U osnovi postoje dva načina na koja se grafički procesor može
naći u
mobilnom ureñaju. Prvi način je diskretno, kao poseban čip, poput ATI-jeve Imageon ili NVIDIA-ine GoForce serije. Grafički procesor takoñer može biti izveden integriran sa glavnim procesorom (System on Chip – Soc), poput Texas Instruments OMAP2420 ili Philipsove serije Nexperia. Dodatno, postoje i tvrtke koje razvijaju sklopovlje koje podržava 2D i 3D akceleraciju, ali same ne proizvode čipove, već izdaju licence. PowerVR tehnologija tvrtke Imagination se licencno izdaje Philipsu, Toshibi i Texas Instruments. Licencu za grafičke procesore su izdavali i BitBoys, no 2006. ih je kupio ATI. U istraživanju sam naišao na neke procesore se mogu naći samo na specifičnim tržištima (npr. Japanu i Koreji), te sam njih izostavio sa popisa.
1.1 Samostalni grafički procesori
1.1.1 ATI ATI Technologies je bio bio veliki proizvoñač i dobavljač grafičkih procesora kojeg je 2006. kupio Advanced Micro Devices (AMD). Ime i brand su zadržani za odreñene vrste proizvoda. Grafički procesori se proizvode u sklopu obitelji Imageon i Imageon TV. Kako kažu na internetskim stranicama, njihovi proizvodi akceleriraju 2D i 3D grafiku, videoigre, video aplikacije te niz drugih multimedijskih svojstava potrebnih na današnjem tržištu mobilnih ureñaja.
4
Imageon su grafički procesori izvedeni SoC tehnologijom, prvi puta predstavljeni 2002. Koriste se za 2D i 3D grafiku handheld ureñaje, mobilne telefone i dlanovnike. Imageon TV, najavljen u veljači 2006., omogućava prijenosnim ureñajima primanje digitalnog TV signala (DVB-H). Čipseti uključuju tuner, demodulator, dekoder i potpuni softverski stog. Osim gotovih proizvoda, ATI takoñer dobavlja 2D i 3D grafičke komponente drugim proizvoñačima, točnije Qualcommu za seriju MSM7000 i za nadolazeće Freescaleove i. MX grafičke procesore. Korisnici ATI-jevih grafičkih procesore uključuju pokretne ureñaje: Motorola, Fujitsu, BenQ-Siemens, Samsung, LG i dr.
Slika 1.1 ATI Imageon u dlanovniku sa Windows CE
5
Procesori u proizvodnji
Imageon 2294/2298 Odnedavna preimenovani u seriju Imageon M100. Svojstva su im: snimanje i reprodukcija u DVD kvaliteti, TV izlaz, podrška za kameru do 12 megapiksela.
Imageon A250 Svojstva: samostalni multimedijski i grafički podsistemi, video rezolucije D1 (720x486), podrška za kameru do 8 megapiksela, vektorska grafika, aplikacije u Flashu...
Imageon D160 mobile TV solution Svojstva: DVB-T/H modul, Dopplerova kompenzacija i QoS za DVB signale, višekanalsko dekodiranje sa opcijom Picture-in-Picture (PiP), AMD-ov softverski stog...
Imageon M210 audio processor Svojstva: višepojasni equalizer, omjer signala prema šumu 99dB, više od 30 različitih audio i video codeca, samostalna audio reprodukcija, podrška za USB 2.0, NAND, SD i Bluetooth...
Imageon Z460 graphics core Svojstva: podrška za OpenGL ES 2.0, programabilna sjenila za vertekse i piksele, rezolucije WVGA (854x480) i QHD (640x360)...
Imageon Z180 vector graphics core Svojstva: hardverska akceleracija iscrtavanja OpenVG 1.x, podrška za HD rezoluciju, podrška za aplikacije u Flashu
6
Najavljeno za 2009.
Za od 2009., ATI najavljuje ugniježñene procesore x86, podršku za OpenVG, OpenGL ES 2.1 sa jedinstvenim sjenilima (VS/PS 4.0/4.1), podršku za kamere sa većim rezolucijama (5 megapiksela za mainstream i 12 megapiksela za high end proizvode), rezolucije zaslona sa standardima WVGA (800×480), SVGA (800×600) i XVGA (1024×768), H.264 kodiranje za snimanje videa, prepoznavanje glasa i 3D audio.
1.1.2 NVIDIA NVIDIA proizvodi samostalne grafičke procesore u sklopu obitelji GoForce, te takoñer rade i sve-u-jednom procesor, APX 2500, koji se koriste u mobilnim telefonima i dlanovnicima. Meñu njihove nositelje se ubrajaju: Acer, Kyocera, LG, Motorola, Samsung, Sony Ericsson, Toshiba i dr.
GoForce 4000 GoForce4000 ima ugrañenih 640KB SRAM memorije, 128-bitni 3D akcelerator, podršku za kameru do 3MP (WMV i Real Video), maksimalnu moguću razlučivost 640x480, JPEG koder/dekoder, videokonferenciju, MPEG-4/H.263 hardverski koder/dekoder, VGA i 64-bitni 2D grafički akcelerator.
GoForce 5500/5300 GoForce 5500 ima ugrañenih 640KB SRAM memorije, podršku za kameru do 10MP (WMV i Real Video), maksimalnu moguću razlučivost 1024x768, JPEG koder/dekoder, videokonferenciju, MPEG-4 koder/dekoder, VGA, višestruke teksture, Z-spremnik, 128-bitni 3D akcelerator (2,67 mil trokuta / sec) kompatibilan s OpenGL ES sa NVIDIA Pixel Shading Extensions, 64-
7
bitni 2D grafički akcelerator, 24-bitni audio engine (AMR, AAC, MP3, MIDI), Camera Image Signal Processor (ISP), H.264 koder/dekoder i mogućnost nadogradnje do 32MB eksterne memorije.
Slika 1.2 NVIDIA GoForce 5500
GoForce 6100 Najnoviji čipset u seriji, uz sva ranije spomenuta svojstva, dolazi uz podršku za kamere do 10 megapiksela, ugrañenim standardima wireless 802.11b/g.
APX 2500 NVIDIA APX 2500 je sve-u-jednom procesor namijenjen pametnim telefonima i dlanovnicima. Svojstva mu uključuju: 750 MHz ARM11 procesor, NOR i NAND flash memoriju, 720p MPEG-4 i H.264 codec, MP3, WMA i AAC, podršku za dvostruki ekran, OpenGL ES 2.0, D3D Mobile, podršku za kamere do 12 megapiksela, HDMI, VGA i S-video izlaz, nPower tehnologiju štednje baterije...
1.2 Grafički koprocesori Koprocesor je posebni sklop u mikroprocesorskom čipu kojemu je namjena izvoñenje specijaliziranih funkcija i to radi brže no što bi to radio središnji procesor (CPU). Koprocesor smanjuje opterećenje na glavni procesor vršenjem posebnih vrsta operacija. Tako koprocesori mogu vršiti operacije
8
matematike sa pomičnim zarezom, enkripciju/dekripciju, obradu signala, ali nas zanimaju grafički koprocesori.
1.2.1 Intel Intel 2700G Intel proizvodi samo jedan model grafičkog koprocesora, 2700G, koji se nalazi integriran u središnjem procesoru XScale PXA27x, a grañen je na temelju PowerVR MBX tehnologije tvrtke Imagination Technologies. Čip dolazi u tri različita okusa: 2700G3 ima 340KB memorije i podršku za HVGA (razlučivosti 320x480); 2700G5 ima KB memorije, podršku za VGA (razlučivosti 640x480) i MPEG-4 dekoder; 2700G7 je model 2700G5 proširen sa dodatnih 16 MB lokalne memorije. 2700G ima vlastiti LCD kontroler i 2 LCD izlaza što omogućava istodobno korištenje zaslona i grafičkom i XScale procesoru. Vanjski zaslon može biti razlučivosti 1024x768 (sa 32-bitnom bojom) ili 1280x1024 (sa 16-bitnom bojom). 3D grafički akcelerator ima potpuni grafički protočni sustav, kompatibilan je sa OpenGL ES-om i može obraditi 831 000 trokuta po sekundi.
Slika 1.3 Pokretni ureñaj Dell sa s Intel 2700G
9
Kako je Intel nedavno prodao svoje odjeljenje za XScale Marvellu, proizvodnja ove jedinice je obustavljena, no zadržao sam je u pregledu jer se nalazi u više recentnijih modela mobilnih telefona i dlanovnika na tržištu.
1.2.2 Philips Philips proizvodi grafičke koprocesore u okviru svog brenda Nexperia. Naglasak stavljaju na procesiranje multimedijalnih sadržaja, a mogu se naći u Sony Ericsson mobilnim ureñajima.
Slika 1.4 Nexperia čip
Nexperia PNX4008 Sustav se temelji na ARM9 RISC procesoru na 208 MHz i sadrži podsustave za video, audio, grafiku i sigurnost. Podsustav za video sadrži JPEG koder/dekoder s podrškom za slike do 4MP, MPEG-4/H.263 koder/dekoder koji može raditi sa rezolucijama CIF kvalitete (352x2888) pri 30 fps, grafički akcelerator i LCD sučelje. Audio podsustav radi sa DSP-om (Digital Signal Processor) neovisno o glavnom ARM procesoru i podupire stereo zvuk. 2D/3D akcelerator je kompatibilan sa OpenGL ES-om 1.1, radi na 80MHz i prosječno obrañuje 1,25 milijuna poligona po sekundi.
10
Nexperia PNX0150 Pokretni multimedijski procesor namijenjen prvenstveno procesiranju zvuka u glazbenim ureñajima i telefonima, uz naglašenu nisku potrošnju baterije. Uključuje kodeke za MP3, WMA, AAC, PCM, ADPCM i potporu za NAND flash i flash kartice.
Nexperia PNX0161 Pokretni multimedijski procesor smanjenih zahtjeva i performansi, namijenjen ureñajima koji napajanje primaju preko USB-a, poput MP3 playera.
Nexperia SAA8510 Dizajniran za korištenje u mobilnim telefonima i sličnim ureñajima, najvažnije svojstvo ovog procesora je TV izlaz pomoću kojeg pretvara digitalni signal u analogni za NTSC i PAL ureñaje. Podržava VGA rezoluciju pri 30 fps.
1.2.3 Qualcomm Qualcomm proizvodi grafičke koprocesore u sklopu obitelji Mobile Station Modem čipseta, a dijeli ih u 4 platforme: Value, Multimedia, Enhanced Multimedia i Convergence.
Platforma Value Platforma Value ne sadrži podršku za 3D već samo za 2D, audio codece za formate AAC, AACPlus, EAAC+ i MP3 dekoder (ovisno o modelu), podršku za kameru do 1,3 MP (ovisno o modelu), te JPEG i PNG codece.
Platforma Multimedia Ovisno o modelu, sadrži i 3D akceleratore ( standard 50 000 trokuta u sekundi); koderi/dekoderi za AAC, AAC+, i ovisno o modelu dekoderi za MPEG-4 i MP3; podrške za kamere od 1,3 do 3 MP; video dekoderi za MPEG-4,
H.263
i
uz
pojedine
modele
i
H.264,
RealNetworks
i
WindowsMedia formate; reprodukcija uz CIF i QVGA razlučivost pri 15 fps.
11
Platforma Enhanced Multimedia Svi modeli imaju 3D akceleratore (uz mogućnost obrade od 225 000 do 540 000 trokuta po sekundi); audio codece za MPEG-4, AAC, AAC+ i dekoder za MP3;
video
codece
za
MPEG-4,
H.263,
H.264,
RealNetworks
i
WindowsMedia formate; QVGA razlučivost pri 30 fps; podršku za kameru do 4 MP, videotelefoniju sa standardima MPEG-4 i H.263, te JPEG i PNG kodere.
Platforma Convergence Takoñer svi modeli imaju 3D akceleratore (4 milijuna trokuta u sekundi); audio codece za MPEG-4, AAC, AAC+ i dekoder za MP3; video codece za MPEG-4, H.263, H.264, RealNetworks i WindowsMedia formate; QVGA razlučivost pri 30 fps; podršku za kameru do 8 MP; videotelefoniju sa standardima MPEG-4 i H.263, i JPEG i PNG kodere.
1.2.4 Renesas Renesas proizvodi više modela grafičkih koprocesora u SH-Mobile (SuperH Mobile Application Processor) seriji, a grañeni su na temelju PowerVR MBX tehnologije tvrtke Imagination Technologies. Procesori su namijenjeni 2.5/3G mobilnim telefonima. Sadrže JPEG, MP3, MPEG-4 kodeke i podršku za softverska rješenja treće strane, npr. Java.
Slika 1.5 Renesas grafički koprocesori
12
SH-MobileL/ SH-MobileL2/SH-MobileUL Budžetni model, pruža samo najosnovnije funkcije.
SH-MobileJ/SH-MobileJ2/ SH-MobileJ3/SH-MobileL3V/SH-MobileL3V2 Procesori sa za nijansu višim performansama od L/UL serije.
SH-Mobile1/SH-MobileV/SH-MobileV2/SH-Mobile3/SH-Mobile3A Procesori namijenjeni high-end pokretnim ureñajima, podrška za kameru do 5 megapiksela, primanje TV signala, hardverski 3D akcelerator...
SH-MobileR/ SH-MobileR2 Ovi procesori su prvenstveno namijenjeni za korištenje u satelitskoj navigaciji i kao višemedijski playeri.
SH-MobileG1/SH-MobileG2/SH-MobileG3 Model G3, najavljen za jesen 2008., namijenjen je obradi high-level grafike, za veće LCD ekrane sa WVGA (864x480) razlučivošću i sa visokom kvalitetom procesiranja zvuka.
Slika 1.6 ureñaj sa SH-Mobile3 procesorom
13
1.2.5 Texas Instruments Texas Instruments proizvodi procesore za mobilne ureñaju u sklopu serije OMAP (Open Multimedia Application Platform). Neki modeli iz te serije imaju dvojezgrenu arhitekturu i uz središnji ARM procesor imaju i jedan ili više DSP-a, najčešće neku varijantu iz serije TI TMS320. Procesori su podijeljeni u 3 razreda, od najopremljenije: High Performance, Basic Multimedia, i Modem and Applications. Zbog velikog broja različitih procesora, ovdje ću predstaviti samo neke iz razreda High performance. Grafički procesor grañen je na licencno po PowerVR MBX tehnologije tvrtke Imagination Technologies.
Slika 1.7 Shema čipa TI OMAP 2430
OMAP2420 Procesor ARM11 na 330MHz, 220 MHz C55x DSP, koderi/dekoderi za JPEG, MPEG-4, H.263, H.264, MP3, WMV i AAC, podršku za kameru do 6MP, kodiranje videa na VGA razlučivosti pri 30fps, grafički akcelerator PowerVR MBX 2D/3D (milijun poligona po sekundi), IVA (Imaging and Video Accelerator).
14
OMAP2430 Procesor ARM1136 na 330MHz, video podrška sa dekoderima za MPEG-4, H.264, WMV 9, RealVideo na razlučivosti D1 (720x480) pri 30fps, koderima za MPEG-4 i H.264 na VGA razlučivosti (640x480), podrškom za H.263/4 videokonferenciju na CIF razlučivosti (352x288) pri 30fps,IVA2 , grafički akcelerator PowerVR MBX lite 2D/3D (milijun poligona po sekundi), SmartReflex tehnologija očuvanja baterije.
OMAP3430 ARM procesor Cortex A8 sa virtualnom memorijom sa dvije razine, ISP-om (Image Signal Processor) sa koderima/dekoderima za JPEG, MPEG-4, H.264, Windows Media Video, RealVideo i H.263 pri DVD razlučivosti (800x600), podrškom za kamere do 12MP, S-video izlazom IVA2 (Imaging and Video Accelerator);
grafički akcelerator PowerVR MBX lite 2D/3D
(milijun poligona po sekundi); SmartReflex tehnologijom očuvanja baterije.
OMAP3515 ARM procesor Cortex A8 sa virtualnom memorijom sa dvije razine, ISP-om (Image Signal Processor), grafički akcelerator PowerVR SGX 530, podrška za OpenGL ES 2.0, OpenVG 1.0, Direct3D Mobile, uz mogućnost obrade 10 Mpoly/s.
OMAP3530 ARM procesor Cortex A8 na 430MHz sa virtualnom memorijom sa dvije razine, ISP-om (Image Signal Processor), grafički akcelerator PowerVR SGX 530, C64x DSP, video akcelerator, podrška za OpenGL ES 2.0, OpenVG 1.0, Direct3D Mobile, uz mogućnost obrade 10 Mpoly/s.
15
1.2.6 Toshiba Toshiba proizvodi samostalne grafičke procesore za mobilne ureñaje u seriji Mobileturbo, u kojoj su trenutno samo dva modela – T4G i T5G.
Toshiba T4G T4G ima 2D/3D grafički akcelerator (OpenGL ES kompatibilan, 3,5 milijuna vertexa po sekundi), 20Mbita DRAM-a, podršku za video za kamere do 2MP (MPEG-4 video codec QVGA kvalitete, 15fps), JPEG codec, te audio i govorni codec.
Toshiba T5G T5G ima 2D/3D grafički akcelerator (OpenGL ES kompatibilan), podršku za video sa MPEG-4 codecom (maksimalne razlučivosti 640x480 pri 30fps) i QVGA H.264 dekoderom (320x240 pri 15fps), JPEG codec, te audio i govorni codec.
1.3.Licencni grafički procesori
1.3.1 Imagination Technologies PowerVR je dio Imagination Technologies (prijašnjih VideoLogic) koji razvija tehnologiju za 3D akceleratore. Oni sami ne proizvode čipove, već prodaju prava intelektualnog vlasništva drugim tvrtkama koje ih implementiraju. Klijenti su im NEC, Intel, Texas Instruments, Samsung...
PowerVR MBX Grafički procesor PowerVR MBX je IP (Intellectual Property) jezgra razvijena za SoC (System-on-Chip) aplikacije poput mobilnih telefona, ručnih igraćih konzola ili set-top boxova niske razine.
16
Svojstva mu uključuju: 2Dvia3D (2D operacije, uključujući ROP(Raster Operations Pipeline), BLT (Bit-Aligned Block Transfer), CSC (Colour Space Conversion) integrirane u 3D protočni sustav), kompatibilnost sa OpenGL ES 1.1, OpenVG 1.0 i Direct3D Mobile, akcelerator kapaciteta obrade do 3,7 milijuna poligona u sekundi; video podsustav sa koderima/dekoderima za JPEG, MPEG-2, MPEG-4, WMV8, VC-1 (WMV9), H.263 i H.264. Neki od ureñaja koji koriste ovaj procesor su Apple iPhone, Nokia N95, Sony Ericsson P1, Motorola RIZR Z8...
PowerVR MBX Lite Ovaj grafički procesor je laganija verzija Power VR MBX-a, prilagoñenija radu u manje zahtjevnim mobilnim telefonima.
Slika 1.8 Razvoj PowerVR procesora kod TI
Sadrži: 2Dvia3D (2D operacije, uključujući ROP(Raster Operations Pipeline), BLT (Bit-Aligned Block Transfer), CSC (Colour Space Conversion) integrirane u 3D protočni sustav), kompatibilnost sa OpenGL ES 1.1 i Direct3D Mobile, akcelerator kapaciteta obrade do 1,7 milijuna poligona u
17
sekundi; video podsustav sa koderima/dekoderima za JPEG, MPEG-2, MPEG-4, WMV8, VC-1 (WMV9), H.263 i H.264.
PowerVR SGX PowerVR SGX je serija IP jezgri grafičkih procesora temeljena na višedretvenom Universal Scalable Shader engine-u, omogućujući time svojstva koja nadmašuju zahtjeve OpenGL-a 2.0, i Microsoftovog Shader Modela 3. Svojstva uključuju: potporu za OpenGL ES 2.0, OpenGL 2.0, OpenVG, Direct3D Mobile, DX9+; video podsustav s koderima/dekoderima za H.264, MPEG-4, VC-1 (WMV9) i JPEG. Ovaj procesor dolazi u 7 varijanti: -
SGX510 (3 MPolys/sec)(prekinuta proizvodnja), SGX520 (7 MPolys/sec), i SGX530 (14 MPolys/sec) za tržište mobilnih telefona
-
SGX535 i SGX540 (28 MPolys/sec) za mobilne ureñaje visoke klase i ureñaje u automobilima
-
SGX540, SGX545, SGX 550 (100 MPolys/sec) i SGX555 za napredne ureñaje, laptope, i desktop računala
18
2. Operacijski sustavi za pokretne ureñaje Operacijski sustav za pokretni ureñaj, takoñer i mobilna platforma, je operacijski sustav koji upravlja pokretnim ureñajem – slično kako Linux ili Windows upravljaju desktop računalom. Meñutim, trenutno su takvi operacijski sustavi još uvijek nešto jednostavniji, i više se bave bežičnim verzijama širokopojasnog i lokalnog spajanja, mobilnih multimedijskih formata i različitim tipovima ulaznih podataka. Trenutni prelazak sa mobilnog prometa kojim je dominirao glas do širokopojasnog prometa kojim dominiraju podaci je važno pitanje za mnoge velike industrije. Napredak u tehnologiji je izazvao žustru konkurenciju ne samo izmeñu giganata u toj industriji, poput Microsofta, Applea i Nokije, već i kod relativno mladih takmaca poput Symbiana, koji čini da predvodi utrku sa najvećim tržišnim udjelom, pogotovo kod pametnih telefona i dlanovnika. Značajne udjele tržišta imaju takoñer i Palm, Research In Motion (RIM) i Ericsson, a od studenog 2007. priključuje se i Google sa svojim operacijskim sustavom. Meñutim, zbog relativne mladosti ovog tržišta, postoji još mnogo otvorenih pitanja koja nisu riješena standardizacijom. Izdvojio bih neka: -
Pokretljivost kroz mrežu, bez obzora na različite načine spajanja (bazne stanice, Wi-Fi...)
-
Interoperabilnost opreme i aplikacija i prilagodljivost stalno promjenjivom ekosustavu mobilne multimedije
-
Bihevioralno praćenje preko GPS-a i pitanja zaštite privatnosti
-
Linkovi u stvarnom vremenu izmeñu bežičnog i fizičkog svijeta
-
Financijske transakcije preko pametnih kartica, SMS-a i MMS-a
19
2.1 Blackberry OS BlackBerry OS je vlasnička softverska platforma koju je napravio Research In Motion (RIM) za svoju liniju pokretnih ureñaja Blackberry. Omogućava multitasking i uvelike se oslanja na ulazne ureñaje specifične za Blackberry ureñaje, osobito thumbwheel. OS podržava MIDP 1.0 i WAP 1.2. Prijašnje verzije su dozvoljavale bežičnu sinkronizaciju sa e-poštom i kalendarom Microsoft Exchange Servera i e-poštom Lotus Domina. Trenutna verzija, OS 4, podržava MIDP 2.0 i dozvoljava potpunu bežičnu aktivaciju i sinkronizaciju sa e-poštom, kalendarom, zadacima, bilješkama i kontaktima za Exchange i pruža podršku za Novell GroupWise i Lotus Notes. Neovisni programeri mogu razvijati softver koristeći te API-je, kao i API-je u vlasništvu BlackBerryja, ali bilo koja aplikacija koji koristi odreñene zaštićene funkcionalnosti mora biti digitalno potpisana tako da može biti povezana sa RIM-om. Procedura digitalnog potpisivanja jamči autorstvo nad aplikacijom, ali ne jamči kvalitetu ili sigurnost koda.
Slika 2.1 Screenshot Blackberry OS-a
2.2 JavaFX Mobile JavaFX Mobile je operacijski sustav temeljen temeljen na Unixu namijenjen pokretnim ureñajima. Razvijen je u SavaJe Technologies, a u travnju 2007. kupio ga je Sun Microsystems. Dio je obitelji proizvoda JavaFX. JavaFX
20
Mobile pruža softversku platformu za dlanovnike, pametne i 'obične' mobilne telefone. Izvorni kod je javno dostupan, pod GPL licencom. Uključuje implementacije Jave SE i Java ME koji se pokreću na Linux jezgri. Sun distribuira JavaFX Mobile kao binarni operativni sustav samim proizvoñačima ureñaja koji izrañuju vlastito sučelje.
Slika 2.2 JavaFX platforma
2.3 Operacijski sustavi temeljeni na Linuxu Ugniježñeni Linux (Embedded Linux) je naziv za skupinu različitih operacijskih sustava temeljenih na Linuxu namijenjenih mobilnim telefonima, dlanovnicima, medijskim playerima, mrežnoj opremi, strojnoj kontroli, industrijskoj automaciji, navigacijskoj opremi, medicinskim ureñajima i sl. Ovdje ćemo se pozabaviti onima namijenjenima pokretnim ureñajima i dlanovnicima, naravno. Za razliku od desktop i server verzija Linuxa, ugniježñeni Linux je namijenjen napravama sa relativno ograničenim resursima, poput manje količine RAMa i
21
ograničenim prostorom za pohranu. Takvi ureñaji često imaju manju flash memoriju umjesto čvrstog diska. Ugniježñeni Linux se takoñer često dizajnira posebno za odreñene za točno odreñene vrste ureñaja i aplikacija koje će se pokretati na njemu, te se tako nastoji optimizirati jezgru (kernel) za te aplikacije. Većina optimizacija se vrši sa ciljem postizanja operativnog sustava u stvarnom vremenu (real-time operating system). Prednosti u odnosu na druge operacijske sustave namijenjene ovom tržištu uključuju lakoću modificiranja i redistribucije izvornog koda, relativno malo zauzimanje memorijskog prostora, tzv. footprint, (tipična instalacija zauzima manje od 2MB memorije), nema plaćanja troškova licence, stabilnost koda i velika baza podrške. Oformljeno je više industrijskih grupa sa ciljem razvoja različitih verzija Linuxa za ugniježñene sustave. CE Linux Forum, osnovan 2003. za pomoć i uključivanje ugniježñenih svojstava u jezgru Linuxa; Linux Foundation (prijašnji Open Source Development Labs); Linux Phone Standards Forum, oformljen 2004. s ciljem standardizacije aplikacijskog okoliša za pokretne i 'konvergentne' ureñaje bazirane na Linuxu; LiMo Foundation, koju su 2006. osnovali Motorola, NEC, Panasonic, DoCoMo i Vodafone te kojoj je cilj uspostaviti skup sučelja i standardnih komponenti kako bi poboljšali suradnju sa bazom neovisnih razvijača aplikacija; Embedded Linux Consortium, koji je do 2005. i priključivanja Linux Foundationu uključivao IBM, Intel, LynuxWorks i druge, a fokusirao se na standardizaciju aplikacijskog programskog sučelja. Embedded Linux Consortium je izdao ELCPS (Embedded Linux Consortium Platform Specification) koji je bio namijenjen
kao
vodič
razvijačima
ugniježñenih
Linux
ureñaja
kroz
funkcionalnosti koje trebaju biti uključene radi postizanja standardne platforme koja podržava prenošenje aplikacija.
2.3.1 Access Linux Platform Access Linux Platform, ponekad zvan i 'slijedeća generacija Palm OS-a' je operacijski sustav otvorenog koda kojeg je razvila i na tržištu predstavlja
22
japanska tvrtka Access Co. Platforma uključuje izvršne okoliše za Javu, klasični Palm OS, i Linux aplikacije bazirane na GTK+. ALP je prvi put najavljena u travnju 2006., a prve verzije platforme i SDK-a su službeno izdane u veljači 2007. Iako se još čeka prvi ureñaj sa ALP-om kao operacijskim sustavom, nekoliko ih je već demonstrirano na sajmovima, a Orange je najavio ureñaj koji bi trebao izaći u prvoj polovici 2008. Korisničko sučelje je napravljeno što sličnije Palm OS-u. Drugi aspekti sučelja
uključuju
orijentaciju
temeljenu
na
zadacima
umjesto
datoteka/dokument orijentacije uobičajene za desktop sustave. Kao većinom uobičajeni Linux/open source projekt, poštuje POSIX i LSB standarde, no kako se oni ne odnose na područja telefonije, slanja poruka i sl., za njih je Access definirao svoje API-je. Aplikacije se mogu razvijati u Cu, C++-u ili Javi. ALP SDK koristi IDE baziran na Eclipseu, uz dodatne plugine, kao i njegov prethodnik Palm OS.
2.3.2 Android
Slika 2.3: ureñaj Android
Android je softverska platforma i operacijski sustav za mobilne ureñaje baziran na Linuxu kojeg su razvili Google i Open Handset Alliance. Najavljen je u studenom 2007., a financira ga Open Handset Alliance, konzorcij 34 hardverske, softverske i telekom tvrtke posvećene poboljšavanju
23
otvorenih standarda za pokretne ureñaje. Kada bude izdan u 2008., većina platforme će biti dostupna pod Apache free software licencom. Svojstva uključuju: VGA, 2D i 3D grafičku biblioteku temeljenu na OpenGL ES 1.0, GSM, 3G, Bluetooth, Wi-Fi, Java virtual machine, MPEG-4, H.264, MP3, uz mogućnost nadogradnje za ekran osjetljiv na dodir, GPS, i 3D grafičke akceleratore. Za razvijanje aplikacija koristi se posebni Android SDK, a uz njega su još potrebni Java Development Kit, Apache Ant i Python 2.2.
2.3.3 LiMo Platform LiMo je platforma za razvijanje softvera za prijenosne ureñaje, ali prvenstveno za mobilne telefone, u vlasništvu LiMo Foundationa. Temelji se na Linuxu, ima modularnu plug-in arhitekturu i podupire DRM. Aplikacije se mogu razvijati u C-u i C++-u, kako je cijela platforma hardverski neovisna, može se implementirati praktički na bilo kojem ureñaju.
2.3.4 Openmoko Linux Openmoko Linux je operacijski sustav za mobilne ureñaje kojeg je razvio FIC. U osnovi je Linux distribucija 'opće prakse' koja se sastoji od različitih dijelova slobodnog softvera. Za razliku od ostalih platformi za mobilne ureñaje, ureñaji sa Openmokom su dizajnirani tako da korisniku dopuštaju da mijenja sam operacijski sustav i softverski složaj. Openmoko Linux koristi Linux jezgru, GNU libc, X.org server, takoñer uz vlastiti grafički korisnički okoliš koji je sagrañen koristeći GTK+ toolkit i Matchbox Window Manager. Aplikacije se mogu razvijati u C-u i C++-u.
24
2.3.5 Qtopia Qtopia je aplikacijska platforma bazirana na Linuxu za mobilne pokretne ureñaje poput mobilnih telefona, dlanovnika ili web padova koju je razvio Trolltech. Ima dvojnu, GPL i vlasničku licencu. Svojstva uključuju grafičko sučelje s prozorima, sinkronizacijski framework, podrška za internacionalizaciju i lokalizaciju, prepoznavanje rukopisa, mogućnosti personalizacije, podrška za Javu i Wi-Fi. Qtopiju trenutno koristi 45 različitih modela pokretnih ureñaja, a očekuje se i na nekoliko nadolazećih pametnih telefona. Native aplikacije se mogu razvijati u C-u i C++-u, a managed i u Javi.
2.4 iPhone OS
Slika 2.4 iPhone OS
iPhone OS je operacijski sustav kojeg je razvio Apple Inc. za iPhone i iPod Touch. Dobiven je of Mac OS X-a, i temelji se na istom Mach kernelu i Darwin coreu kao i Mac OS X. Ima 3 apstraktna sloja: Core services, Media i Cocoa Touch. Operacijski sustav zauzima manje od pola GB u memoriji ureñaja. Pripada obitelji operacijskih sustava temeljenih na Unixu, izvorni kod je zatvoren, sa nekim otvorenim komponentama, a trenutna verzija je 1.1.4.
25
Nije imao službeno ime sve do službenog izdavanja iPhone SDK-a 6. ožujka 2008. Prije toga, Appleov marketing je jednostavno tvrdio da iPhone koristi Mac OS X. Središnji procesor koji se koristi je ARM, umjesto x86 procesora koji se inače koriste u Appleovim računalima. Aplikacije za Mac OS X se ne mogu direktno instalirati na iPhone OS, već se zahtijevaju izmjene u izvornom kodu. Od 2007., Apple je najavio da će iPhone OS podržavat aplikacije nezavisnih programera, preko web preglednika Safari, nazivajući ih 'web aplikacijama'. One se mogu razvijati u AJAXu. U ožujku 2008. službeno je izdan iPhone SDK. U njemu se mogu razvijati aplikacije za iPhone OS, a dostupan je i iPhone simulator. Meñutim, prenošenje aplikacija na sam ureñaj moguće je jedino preko iTunes storea, i po učlanjenju u Apple Developer Connection koje stoji 99 USD. Nakon toga, tvorci programa mogu sami odrediti cijenu po kojoj će se aplikacija dalje distribuirati, a mogu je i ostaviti besplatnom. Zasada, Apple nije najavljivao omogućavanje Jave na svojoj platformi. Meñutim, Sun je najavio izdavanje Java Virtual Machinea za iPhone OS negdje nakon lipnja 2008., što bi omogućilo Java aplikacije za iPhone.
2.5 Windows Mobile Windows Mobile je vlasnički kompaktni operacijski sustav u kombinaciji s nekoliko osnovnih aplikacija temeljen na Microsoft Win32 API-ju. Ureñaji na kojima se koristi su dlanovnici, pametni telefoni, medijski playeri i ugrañena računala u odreñenim automobilima. Dizajniran je tako da nalikuje desktop verziji Windowsa, kako estetski tako i funkcijski. Takoñer, razvijanje aplikacija je dopušteno i nezavisnim programerima. Nakon što se izvorno pojavio pod imenom Pocket PC 2000, dograñivan je više puta, a trenutno je u verziji Windows Mobile 6, sa sljedećom nadogradnjom u planu za 2010. Standardna svojstva uključuju Today Screen sa datumom, informacijama o vlasniku, e-poštom, zadacima i programima; Office Mobile sa prilagoñenim
26
verzijama Worda, Excela i PowerPointa i ActiveSyncom koji vrši konverziju izmeñu desktop i mobile verzija; Outlook Mobile i Windows Media Player. Takoñer je dozvoljeno razvijanje aplikacija za nezavisne programere. Postoji više mogućnosti koje programeri mogu izabrati pri stvaranju svoje aplikacije. One uključuju pisanje native koda sa Visual C++-om, pisanje managed koda koji radi sa .NET Compact Frameworkom ili Server-side kod koji se može pokrenuti pomoću Internet Explorer Mobilea ili na samom ureñaju klijenta. .NET Compact Framework ja zapravo podskup .NET Frameworka i posjeduje mnoge sličnosti sa razvijanjem aplikacija za desktop računala, aplikacijske i mrežne servere koji koriste .NET Framework. Microsoft obično izdaje Windows Mobile SDK-ove koji rade zajedno sa Visual Studijem. Oni sadrže emulator na kojemu se aplikacije mogu testirati. Microsoft takoñer distribuira Visual Studio 2005 / 2008 Professional Editions i njihove verzije za poslužitelje i baze podataka studentima besplatno preko programa DreamSpark.
Slika 2.6 ureñaj sa Windows Mobile
27
3. Symbian Symbian OS je operacijski sustav dizajniran za mobilne ureñaje, sa bibliotekama, frameworkovima za korisnička sučelja i implementacijama common toolsa, proizveden od tvrtke Symbian Ltd. Nasljednik je Psionovog EPOC-a i radi isključivo na ARM procesorima. Symbian Ltd. je nastao 24. lipnja 1998. kao partnerstvo Ericssona, Motorole, Nokije i Psiona radi istraživanja sve veće konvergencije izmeñu dlanovnika i pametnih telefona. Symbian je trenutačno u vlasništvu
Nokije (47.9%),
Ericssona (15.6%), Sony Ericssona (13.1%), Panasonica (10.5), Siemens AG-a (8.4%) i Samsunga (4.5%). Iako je je BenQ kupio Siemensovu podružnicu za proizvodnju mobilnih telefona, Siemensov udio u Symbianu nije promijenio vlasnika. Symbian OS nije open source softver jer izvorni kod nije javno dostupan ali gotovo potpuna verzija koda je dostupna proizvoñačima mobilnih ureñaja, a API-ji su javno dostupni dopuštajući svima razvoj softvera.
Slika 3.1 Symbian
28
3.1 Dizajn Symbian je dizajniran sljedeći 3 osnovna pravila – cjelovitost i sigurnost korisničkih podataka ja najvažnija, korisničko vrijeme ne smije biti traćeno i svi resursi su ograničeni. To je dovelo do nastavka korištenja poslužitelja; mikrojezgre; 'upit i odgovor' pristupa za sve usluge; apsolutne podjele korisničkih sučelja od sistemskih ili aplikacijskih servisa; otvorenosti i robusnog upravljanja. Operacijski sustav je optimiziran za ureñaje niske snage pogonjene baterijama i sustave bazirane na ROM-u. Aplikacije, kao i sam operacijski sustav, slijede pravila objektno-orijentiranog dizajna. Kasnije se taj pristup mijenjao u skladu sa tržišnim zahtjevima, sa uvoñenjem stvarno-vremenske jezgre i sigurnosnog modela platforme u verzijama 8 i 9. Naglasak se i dalje drži na očuvanju resursa, sa programskim idiomima specifičnim za Symbian, poput deskriptora i cleanup stacka. Nadalje, svo programiranje na Symbianu je event-based, a središnji procesor se gasi kada direktno ne obrañuje dogañaj. To se postiže programskim idiomom zvanim active objects. Symbian podupire zadovoljavajuće brze odgovore u stvarnom vremenu da je, s njime kao temeljem, moguće izgraditi jednojezgreni telefon – to jest ureñaj sa jednom procesorskom jezgrom koja obrañuje i korisničke aplikacije i signalizirajući stog. To svojstvo nije moguće na Linuxu i omogućilo je Symbianu da bude korišten u ureñajima koji su manji, jeftiniji i bolje učinkovitije iskorištavaju energiju.
3.2 Struktura Sustavski model se sastoji sastoji od sljedećih slojeva, od vrha prema dnu: -
UI Framework sloj
-
Sloj aplikacijskih servisa -
-
Java ME
Sloj usluga OS-a -
Generičke usluge Os-a
29
-
Komunikacijske usluge
-
Multimedijske i grafičke usluge
-
Usluge spajanja
-
Sloj osnovnih usluga
-
Usluge jezgre i sučelje sa hardverom
Slika 3.2 Sučelje Symbiana 9.1
Najniži sloj Symbian OS-a je njegova jezgra i korisnička biblioteka koji dopušta korisničkim aplikacijama korištenje jezgre. Symbian OS ima mikrokernel arhitekturu što znači da se najmanje moguće posla odvija unutar jezgre. Jezgra sadrži scheduler koji odreñuje procesorsko vrijeme za svaki proces radi izvoñenja više zadataka u isto vrijeme i memory management. Najniži sloj uključuje još poslužitelj datoteka. Iznad najnižeg sloja nalazi se selekcija System Libraries, a nakon njega softver više nije složen hijerarhijski. Symbian uključuje još i mrežni i komunikacijski podsustav i veliki dio koda korisničkog sučelja kojeg nadograñuju proizvoñači mobilnih telefona. Aplikacijska arhitektura i aplikacijski enginei za popularne aplikacije (kalendar, imenik, itd.) takoñer se isporučuju proizvoñačima kao integralni dio Symbiana.
30
Proizvoñači mobilnih ureñaja takoñer dobivaju primjer korisničkog sučelja (TechView), koji je osnova za nadogradnju na njihova sučelja.
3.3 Povijest 1998. Symbian Ltd. je formiran kao partnerstvo izmeñu Ericssona, Nokije, Motorole i Psiona radi istraživanja približavanja dlanovnika i mobilnih ureñaja. 1999. Symbian OS v5. inačica koristila se na Psion Series 5mx, Series 7, Psion Revo, Psion Netbook, netPad i Ericsson MC218 notebookovima i PDA ureñajima.
Symbian OS je od tada prošao kroz razne inačice:
5.1 prvi mobitel koji je koristio ovu inačicu bio je Ericsson R380 6.0, 6.1 Nokia 9210 7.0, 7.0s iz 2003. Ovo je važna inačica Symbiana koja se pojavila sa svim suvremenim korisničkim sučeljima uključujući UIQ (Sony Ericsson P800, P900, P910, Motorola A925, A1000), Series 80 (Nokia 9300, 9500), Series 90 (Nokia 7710), Series 60 (Nokia 6600, 7310) kao i nekim FOMA mobilnim ureñajima u Japanu. 8.0. iz 2004. koji je imao mogućnost izbora izmeñu dva različita kernela (EKA1 ili EKA2). Ipak EKA2 verzija nije bila podržana do verzije 8.1b. Kerneli se ponašaju manje više jednako gledajući sa strane korisnika, ali su interno vrlo različiti. EKA1 je bio izabran od strane nekih proizvoñača da bi zadržali kompatibilnost sa driverima starijih ureñaja dok je EKA2 nudio prednosti kao što su real-time mogućnosti. 8.1. verzija koja je zapravo bila pročišćena verzija 8.0 verzije. 9.0. verzija koja se koristila za interne Symbian svrhe. Ova verzija je označila kraj puta za EKA1. Verzija 8.1a je zadnja EKA1 verzija Symbian OS-a. 9.1. iz 2005. uključuje mnoga nova sigurnosna svojstva. 9.2. iz 2006. pruža podršku za bluetooth 2.0 tehnologiju. 9.3. iz srpnja 2006. donosi poboljšano upravljanje memorijom i podršku za Wi-Fi 802.11 i HSDPA
31
9.5. najavljena u ožujku 2007. dolazi sa podrškom za DVB-H, ISDB-T, SQL i tvrdi da pokreće aplikacije do 75% brže. 2004. Psion je prodao svoj udio u Symbianu. Takoñer u 2004. se pojavio prvi crv za mobilne telefone koji koriste Symbian OS koji je koristio bluetooth tehnologiju za svoje širenje na susjedne telefone.
3.4 Razvijanje aplikacija Postoji mnogo platformi temeljenih na Symbianu sa pripadajućim SDK-ovima za razvijanje aplikacija, a dvije najčešće korištene su UIQ i S60. Pojedini ureñaji, ili obitelji ureñaja, često imaju SDK-ove ili ekstenzije za SDK-ove koji se mogu preuzeti sa Internet stranica proizvoñača. SDK-ovi sadrže dokumentaciju, header datoteke i biblioteke potrebne za razvijanje Symbian softvera i emulator, najčešće za Windowse ('WINS'). Sve do verzije Symbiana 8, sadržavali su i inačicu GCC kompajlera koji u kasnijim verzijama više nije potreban. Symbian 9 koristi novo aplikacijsko binarno sučelje (ABI) i potreban mu je novi kompajler – postoji više inačica, meñu njima i nova verzija GCC-a. Nažalost, programiranje u C++-u za Symbian ima strmu krivulju učenja, budući da Symbian zahtjeva posebne tehnike poput deskriptora i cleanup stacka. To može učiniti i relativno jednostavne programe teškima za implementaciju u drugim okolinama. Štoviše, upitno je jesu li metode specifične za Symbian, primjerice paradigma upravljanja memorijom uistinu poboljšanje. Moguće je da te metode, razvijene za ograničeniji hardver u 1990-ima, uzrokuju nepotrebnu kompleksnost i kodu; programeri se moraju više koncentrirati na rutine niske razine koje su često sklone bugovima, umjesto na svojstva specifična na aplikaciju. Pomak prema paradigmama više razine i modernijem načinu programiranja je doduše težak, jer je sama platforma tijesno povezana sa već zastarjelim modelima razvijanja softvera za pokretne ureñaje. Programiranje za Symbian u C++-u se obično radi sa IDE-om. Za prijašnje verzije Symbiana, najpopularniji IDE je bio CodeWarrior. Alati CodeWarriora
32
su tokom 2006. zamijenjeni Carbide.c++-om, IDE-om zasnovanom na Eclipseu kojeg je razvila Nokia. Microsoft Visual Studio 2003 i 2005 su takoñer podržani kroz plug-in Carbide.vs. Iako je C++ za Symbian vrlo specijaliziran, za Symbian je takoñer moguće razvijati aplikacije i u OPL-u, Pythonu, Visual Basicu, Simkinu i Perlu – zajedno sa Java ME i PersonalJava okusima Jave. Razvijanje aplikacija u Visual Basicu, VB.NETu i C#-u je donedavno bilo moguće preko Crossfirea, AppForegeovih plug-ina za Microsoft Visual Studio. AppForge je u ožujku 2007. prestao sa radom. Prava na intelektualno vlasništvo je kupio Oracle, ali su najavili prestanak podrške i distribucije za AppForgeove proizvode. Takoñer postoji i Borland IDE za Symbian. Razvijanje aplikacija je takoñer moguće i na Linuxu i Mac OS X-u, koristeći alate razvijene u samim zajednicama koje je omogućio Symbian objavivši potrebne dijelove koda. Dostupan je plug-in za razvijanje aplikacija u Appleovom IDE-u Xcode. Jednom kada su završene, aplikacije moraju naći put i do korisničkih pokretnih ureñaja. Pakirane su u SIS datoteke koje se mogu instalirati overthe-air, spajanjem sa PC-jem, a u nekim slučajevima i preko bluetootha ili memorijskih kartica. Takoñer mogu biti distribuirane u suradnji sa proizvoñačima samih ureñaja ili davateljima usluga u pokretnim mrežama. Put do korisnika za SIS datoteke je mnogo teži u inačicama 9.x, jer bilo koja aplikacija koja želi koristiti mogućnosti osim najosnovnijih mora biti upisana u Symbian Signed program. Aplikacije u Java ME-u se grade koristeći standardne tehnike i alate poput Sun Java Wireless Toolkita (bivši J2ME Wireless Toolkit). Pakiraju se kao JAR ili JAD datoteke. Druge opcije za programere uključuju NetBeans i SuperWabu no u njoj je moguć rad samo za 7.x verzije. Ureñaji iz Nokijine serije S60 mogu pokretati Python skripte ako imaju instaliran prevoditelj, uz prilagoñenu verziju API-ja.
33
3.5 Udio na tržištu pametnih telefona2
Slika 3.3 Udio na tržištu
Symbian OS (Symbian Ltd., 65% udjela na tržištu Q4 2007) Symbian ima najveći tržišni udio gledano globalno, no zaostaje u relativno malo, ali jako značajnom američkom tržištu. Taj trend prati uspjeh Symbianovog najvećeg dioničara, Nokije, na svim osim japanskog tržišta. Nokia sama posjeduje oko 53% tržišta pametnih telefona. Uspjeh u Japanu duguje partnerstvu sa NTT DoCoMom. Symbian koristi većina velikih proizvoñača pokretnih ureñaja, uključujući i BenQ, LG, Motorolu, Samsung i Sony Ericsson. Potencijalnu prijetnju predstavlja pojavljivanje malicioznog softvera (trojanskih konja i crva) namijenjenih Symbian ureñajima.
2
Izvor: Canalys
34
Windows Mobile (Microsoft, 12% udjela na tržištu Q4 2007) Windows CE, zajedno sa Windows Mobile middlewareom su uvelike rašireni na azijskom tržištu. Nove verzije tih operacijskih sustava, Windows Mobile 6 Professional i Windows Mobile 6 Standard su objavljene u veljači 2007. i početkom 2008., respektivno. Popularnost im uvećava lakoća kreiranja aplikacija od strane nezavisnih programera.
BlackBerry OS (RIM, 11% udjela na tržištu Q4 2007) Ovaj operacijski sustav je usmjeren na lakoću korištenja i izvorno je bio namijenjen poslovnim korisnicima. Nedavno je doživio veliki porast u aplikacijama neovisnih programera i poboljšanja u podršci za multimediju.
iPhone OS (Apple, 7% udjela na tržištu Q4 2007) Nove aplikacija korisnici iPhonea mogu nabaviti preko web usluge dostupne preko ugrañenog mrežnog preglednika. Podrška za native aplikacije je najavljena u ožujku 2008. i trenutačno zahtjeva beta verziju OS-a koja je zasad dostupna samo programerima i korporacijama radi testiranja. Nova verzija iPhone OS-a treba biti dostupna i lipnju 2008.
OS bazirani na Linuxu (5% udjela na tržištu Q4 2007) Linux je najpopularniji u Japanu i Kini, gdje ga koristi DoCoMo. Nije jedinstveni operacijski sustav, već skupina različitih distribucija, koje su najčešće meñusobno nekompatibilne. Platforme temeljene na Linuxu uskoro planiraju i Motorola, NEC, Panasonic, Samsung i Vodafone.
35
4.OpenGL ES
Slika 4.1 OpenGL ES
OpenGL ES (OpenGL for Embedded Systems) je podskup OpenGL API-ja za 3D grafiku dizajniran za ureñaje poput mobilnih telefona, dlanovnika (PDA) i igraćih konzola. Definira i promiče ga Khronos Group, konzorcij u industriji grafičkog hardvera i softvera koji se bavi za grafičkim i multimedijskim API-jima otvorenog koda. Za stvaranje OpenGL ES 1.0 uklonjene su mnoge, te dodane pokoje funkcionalnosti izvornom OpenGL API-ju. Dvije najznačajnije promjene su odstranjivanje glBegin–glEnd pozivne semantike za primitivno iscrtavanje (u korist niza vrhova [vertex arrays]) i uvoñenje tipova podataka sa fiksnim brojem decimalnih mjesta za koordinate vrhova i atribute radi veće kompatibilnosti sa procesorima takvih ureñaja, koji često nemaju sklopovlje za aritmetiku sa pomičnim zarezom. U verziji 1.0 su takoñer uklonjene i mnoge druge mogućnosti radi postizanja lakšeg sučelja: naprimjer, iscrtavanja primitiva poligona, texgen, linijski i poligonski stipple, poligonski mod, iscrtavanje poligona s antialiasingom, ARB_Image klasu piksela, bitmape, 3D teksture, crtanje u prednji meñuspremnik, akumulacijski
36
meñuspremnik, kopiranje piksela, procjenjivače, odabir, feedback, pokazne liste, atributi push i pop stanja, dvostrano osvjetljenje i korisnički definirane clip planes.
Slika 4.2 Razvoj OpenGl ES-a
Trenutno postoji više inačica OpenGL ES specifikacija. OpenGL ES 1.0 je rañen prema specifikacijama OpenGL 1.3, OpenGL ES 1.1 prema OpenGL 1.5 i OpenGL ES 2.0 prema OpenGL 2.0. Inačice 1.0 i 1.1 obje imaju profile common i common lite, s jedinom razlikom da profil common lite podržava samo aritmetiku sa odreñenim brojem decimalnih mjesta za razliku od aritmetike s pomičnim zarezom, dok profil common podupire obje. OpenGL ES 1.1 obogaćuje funkcionalnost OpenGL ES 1.0 uvodeći dodatna svojstva poput obavezne podrške za višestruke teksture, bolje podrške za višestruke teksture (sa combinerima i dot product operacijama nad teksturama), automatsko generiranje mipmapa, itd. Profil common za OpenGL ES 2.0, javnosti predstavljen u kolovozu 2005., potpuno uklanja svu API podršku za fiksne funkcije u korist potpuno programabilnog modela, tako da su svojstva poput odreñivanja normala na
37
površine u API-ju za računanje osvjetljenja zamijenjena apstraktnim varijablama, čije ponašanje definira programmer u programu za odreñivanje sjena. Kao posljedica toga, OpenGL ES 2.0 nije kompatibilan sa OpenGL ES-om 1.1. OpenGL ES takoñer definira robusni profil s naglaskom na sigurnost namijenjen testiranju za sigurnosne ugniježñene aplikacije poput zaslona u kokpitima zrakoplova. OpenGL ES je izabran kao službeni grafički API za razvoj igraće platforme PlayStation 3 i kao službeni API za 3D grafiku u Symbian OS-u.
38
5. Razvijanje aplikacije 5.1 Priprema za rad Za razvijanje aplikacije prvenstveno je bilo potrebno instalirati Microsoft Visual Studio .NET 2003. Visual Studio je najpoznatiji paket alata za razvoj svih vrsta Windows, web, database i mobilnih aplikacija. Visual Studio .NET 2003 koristi sve mogućnosti Microsoftove .NET platforme i omogućava izradu distribuiranih XML orijentiranih poslovnih aplikacija, koristeći pritom i ugrañeni Framework 1.1. Za potrebe izrade aplikacije nadalje je bilo potrebni instalirati i ActivePerl 5.6.1.
5.1.2 Perl Perl (eng. Practical Extraction and Report Language) je, prema svojim karakteristikama, objektno orijentirani interpretirani programski jezik opće namjene s naglaskom na funkcionalnost, proširivost te laganu krivulju učenja. Odlikuje ga kvalitetan repozitorij gotovih programskih rješenja (CPAN Comprehensive Perl Archive Network) što mu je ujedno i glavna prednost u odnosu na konkurentne jezike. Perl je bio jezik izbora za razvoj WWW aplikacija sredinom 90-ih godina, a danas postoji i čitav niz korisničkih komercijalnih aplikacija pisanih u Perlu. Izvedbena okolina istovjetna je istoimenom prevoditelju koji ima dvostruku namjenu: prevoñenje izvornog koda u meñuoblik pogodan za neposredno izvoñenje (engl. code compilation) te samo izvoñenje koda (engl. code execution). Obje funkcije dostupne su u svakom trenutku, odnosno Perl izvedbena okolina omogućava tvorenje novih Perl programa, odnosno Perl funkcija u toku samog izvoñenja, što ga čini bliskim funkcionalnim programskim jezicima.
39
Trenutna inačica Perla koja je danas u širokoj uporabi (Perl 5) ipak sadrži previše već ponešto zastarjelih programerskih tehnika, a zbog željene potpune kompatibilnosti sa starijim inačicama iz 80-ih godina pati i od izvjesnih nedostataka. Ovdje je potrebno napomenuti da je današnji stil programiranja u Perlu daleko od stila iz sredine 90-ih. Naglasak je prije svega na korištenju gotovih dobro testiranih korisničkih biblioteka dostupnih preko već spomenute CPAN arhive. Postoje različita različita razvojna okružja za izvoñenje Perl skripti u Windows okružju, poput ActivePerl, IndigoPerl, Strawberry Perl, Vanilla Perl i niz drugih. SDK-u kojeg sam koristio odgovarao je ActivePerl 5.6.1.
Slika 5.1 Instalacija Perla
5.1.3 Carbide Uz Perl bilo je potrebno instalirati Carbide.vs 2.0.1. Carbide je nova generacija alata za razvijanje aplikacija na mobilnim ureñajima iz Nokije, kojim se pokušavaju ujediniti različite dosad korištene alate u zajedničko okruženje.
40
Temeljen na Eclipse okruženju, Carbide može biti proširen i drugim Eclipse plug-inovima i proizvodima. Carbide alati su usmjereni na tri područja razvijanja aplikacija:
Carbide razvoji alati za Java okruženje Carbide.j (prijašnji Nokia Developer's Suite for J2ME) je alat namijenjen razvijanju aplikacija na platformi J2ME.
Carbide razvojni alati za Symbian OS C++ Carbide.c++ je obitelj razvojnih alata namijenjenih korištenju na S60, Series 80, UIQ i MOAP-u. Carbide.vs je plug-in koji dopušta korisnicima Visual Studija razvijanje C++ koda za Symbian OS platforme uključujući Series 60 i Series 80. (Kao plug-in za Visual Studio jedini nije temeljen na Eclipseu).
Slika 5.2 Instalacija Carbidea
Carbide alati za personalizaciju i prilagoñavanje korisničkog sučelja Carbide.ui je obitelj grafičkih WYSIWYG (What You See Is What You Get) alata koji podržavaju prilagoñavanje softvera na mobilnim ureñajima na platformama S60 i Series 40. Prvi proizvod iz ove obitelji je Carbide.ui S60 Theme Edition za Symbian OS.
41
5.1.4 SDK za platformu S60 na Symbianu za C++ Uz Carbide sam htio imati mogućnost provjere aplikacije prije nego ih prenesem na mobilnu platformu. U tome mi je pomogao Nokijin SDK. SDK za platformu S60 na Symbianu za C++ omogućava programerima brzo i učinkovito pokretanje i testiranje aplikacija za ureñaje kompatibilne sa platformom S60. Koristeći IDE sa ugrañenim C++, razvijanje aplikacija uz pomoć SDK-a se u potpunosti obavlja na računalu. SDK sadrži sve alate potrebne za razvijanje i izvoñenje aplikacija, uključujući i emulator S60 mobilnog ureñaja koji dozvoljava pokretanje i testiranje aplikacija. Paket takoñer sadrži C++ API set, dokumentaciju, browser koji omogućuje testiranje sadržaja za mobilni web i nekoliko probnih aplikacija.
5.1.5 UIQ UIQ (prije User Interface Quartz), vlasništvo UIQ Technology, je softverska platforma namijenjena Symbian OS-u. U osnovi, UIQ je sloj grafičkog korisničkog sučelja koji omogućuje dodavanje komponenti jezgri OS-a sa svrhom razvoja aplikacija za mobilne telefone. Jedan od glavnih razloga popularnosti UIQ-a je mogućnost korištenja C++-a, jezika u kojem su napisani i OS i platforma. Takoñer, UIQ podupire i Javu. Inačice 2.0, 2.1 rade samo sa mobilnim telefonima koji imaju ekran osjetljiv na dodir, dok inačica 3.0 uz niz drugih poboljšanja, podupire i unos sa tipkovnice mobilnog ureñaja. Ostala poboljšanja uključuju: jedinstveni model SDK-a koji omogućuje pristup jezgri bilo kojeg mobilnog ureñaja sa UIQ-om. Ekstenzije za posebne funkcije (poput npr. WiFi-ja) su dostupne kod samih proizvoñača mobilnih ureñaja. Podrška za alate sada uključuje DevStudio, Eclipse, Carbide, CodeWarrior i NetBeans. Za potrebe testiranja mobilnih ureñaja sa UIQ-om pomoću Carbidea bilo je potrebno instalirati aplikaciju koja sadrži UIQ Support Package za Carbide. Premda je 3D aplikacija bila razvijana pomoću Nokijinog SDK-a za S60, pokušao smo donekle istražiti mogućnosti prenošenja aplikacija (portinga).
42
Uz instalaciju UIQ-ove podrške za Carbide najavljeno je automatsko prenošenje koda iz S60 u UIQ, ali prema mom istraživanju, ta opcija još uvijek nije funkcionalna.
Svi alati koje sam koristio mogu se besplatno preuzeti sa web stranica njihovih proizvoñača.
5.2 Aplikacija Aplikacija koju sam odlučio napraviti je iscrtani 3D predmet koji se pomiče ovisno o kutu gledanja kamere pokretnog ureñaja. Nakon pokretanja, na ekranu se može vidjeti 3D predmet (obrisi kuće), i pomičući mobilni ureñaj, mijenja se kut iz kojeg se predmet promatra, kao da taj predmet uistinu promatramo kroz kameru. Princip rada jest taj, da primajući informacije o promjeni položaja kamere, aplikacija računa položaj kamere u virtualnoj sceni te iscrtava položaj 3D predmeta. Iznenañujuće,
korištenje
poslužitelja
kamere
nije
dokumentirano
u
Symbianovoj biblioteci za programere (Symbian Developer Liberary v8.1). Zato ću ovdje dati grubu skicu principa komunikacije sa poslužiteljem kamere. Pristup kameri se dobiva pozivanjem metoda poslužitelja kamere koji se zove RCameraServ. Potrebna biblioteka je cameraserver.lib.
#include ... RCameraServ* camera = new (ELeave) RCameraServ; // establish a connection to the camera camera->Connect(); // turn on the camera TRequestStatus status(KErrNone); camera->TurnCameraOn(status); User::WaitForRequest(status);
43
// set lighting conditions (optional) camera->SetLightingConditions(RCameraServ::ELightingNormal); // set image quality (EQualityHigh or EQualityLow) camera->SetImageQuality(RCameraServ::EQualityHigh); // take the picture camera->GetImage(iStatus, *iBmp); User::WaitForRequest(iStatus); // close connection to the camera camera->TurnCameraOff(); camera->Close(); ...
iBmp je pokazivač na bitmap tipa CFbsBitmap. Nadalje, svi pozivi poslužitelju kamere trebaju biti zatvarani sa User::LeaveIfError(...) što sam izostavio radi jednostavnosti. Kako je ureñaj na kojem sam vršio testiranje aplikacije, Nokia N90, dio Nokijine serije S60 2nd Edition sa Symbianom v8.1; aplikacija bi trebala raditi na svim ureñajima sa S60 1st i 2nd Edition. Popis takvih ureñaja donosim u dodatku.
5.3 Generiranje 3D sadržaja korištenje MS Visual Studija .NET, Carbide.vs-a i SDK-a
Slika 5.3 Razvijanje aplikacije
44
Nakon instaliranja svih ranije navedenih alata u izborniku File u MS Visual Studiju pojavit će se opcija Import Symbian Project. Odabirom te opcije u sljedećem prozoru potrebno je kao Project File izabrati .mmp datoteku naše
Slika 5.4 Unošenje projekta
aplikacije, a kao Project Type izabrati classic opciju jer radimo sa SDK-om Nokijine S60. Opcija Symbian 9 koja se pojavljuje služi za UIQ koji radi sa Symbianom inačice 9.
45
Slika 5.5 Podešavanje opcija
Nakon odabira Next potrebno je odabrati SDK koji se koristi i na kojoj će se platformi kod izvoditi. WINSCW se automatski odabire odabirom SDK za S60, no to će omogućiti izradu aplikacije koja će se moći izvoditi samo na emulatoru. Ako želimo našu aplikaciju kasnije prenijeti na kompatibilan mobilni telefon, potrebno je uključiti i ARMI ili THUMB opciju jer su to forme izvršnog koda ARM procesora koje se koriste na mobilnim ureñajima.
46
Slika 5.6 Podešavanje opcija
Nakon učitanog projekta, potrebno je u prozoru Solution Configurations odabrati Rel_S60_23_ARMI te nakon toga izabrati opciju Build →
Build
Solution te eventualno ispraviti greške. Ako je kod ispravno kompajliran potrebno ga je još samo pokrenuti na emulatoru (Debug → Start).
Slika 5.7 Podešavanje opcija
47
Otvorit će se emulator Nokijinog S60 na kojem je potrebno naći našu aplikaciju i pokrenuti je.
Slika 5.8 Stvaranje .sis datoteke
Ako želimo prebaciti našu aplikaciju na kompatibilni mobilni telefon, u Solution Exploreru trebamo pronaći .pkg datoteku i desnim klikom miša u izborniku odabrati Create .sis file, što je izvršna datoteka na mobilnoj platformi. Tu datoteku je samo potrebno prebaciti na mobilni ureñaj.
48
Slika 5.9 Aplikacija na emulatoru
49
Zaključak Daljnjim napretkom tehnologije 3D aplikacije i igre na mobilnim platformama postat će standardna pojava. Otvorenost Symbian OS-a prema zajednici programera (third party developera) pripomoći će u što bržem razvoju i poboljšanju aplikacija. Iako je Symbian napravio veliki korak unatrag uvodeći registraciju svih aplikacija putem programa Symbian Signed uvodeći inačicu 9.x, doduše radi sigurnosti, to ipak nije previše ugrozilo njihov vodeći položaj na tržištu. Konkurentnost proizvoñača mobilnih ureñaja samo dodatno pripomaže tom razvoju. Kompatibilnost aplikacija izmeñu konkurentnih platformi takoñer pripomaže razvoju 3D-a, koliko god se to u prvi trenutak činilo kontradiktorno sa prošlom rečenicom zato jer povećava i objedinjuje zajednicu programera koji uvelike doprinose tom razvoju.
50
Literatura [1]
NVIDIA, 2008. NVIDIA Hadnheld.
http://www.nvidia.com/page/handheld.html [2]
AMD, 2008.Handheld Products.
http://ati.amd.com/Products/handheld.html [3]
TOSHIBA, 2004. Press Releases.
http://www.toshiba.co.jp/about/press/2004_02/pr2301.htm [4]
INTEL, 2008. 2700G Multimedia Accelerator.
http://www.intel.com/design/pca/prodbref/300571.htm [5]
PHILIPS, 2008. PNX4008.
http://www.semiconductors.philips.com/acrobat/literature/9397/75014167.pdf [6]
QUALCOMM, 2008. QCT Platforms.
http://www.cdmatech.com/platforms/index.jsp [7]
IMAGINATION TECHNOLOGIES, 2008. Imagination Technologies Press
Release. http://www.imgtec.com/PowerVR/Products/Graphics/ [8]
TEXAS INSTRUMENTS, 2008. Wireless Solutions – OMAP Platform.
http://focus.ti.com/general/docs/wtbu/wtbugencontent.tsp?templateId=6123& navigationId=11988&contentId=4638 [9]
RENESAS, 2008. Renesas Technology – News Releases.
http://www.renesas.com/print_this_page.jsp?cnt=press_release20040517.ht m&fp=/company_info/news_and_events/press_releases&title=Press%20Rele ases&lid=&nodepath=company_info/news_and_events/press_releases&sysp ath=/ren-web/internet/active/act-en-gl [10]
CANALYS, 2008. Expert Analisys for high-tech industry.
http://www.canalys.com/pr/2008/r2008021.htm [11]
SYMBIAN SOFTWARE LTD, 2008. Symbian OS – The Mobile Operating
System. http://www.symbian.com/ [12]
KHRONOS GROUP, 2008. OpenGL ES Overview.
http://www.khronos.org/opengles/
51
[13]
ACTIVESTATE SOFTWARE INC., 2008. ActiveState - ActivePerl free Perl
open source binary language distribution. http://www.activestate.com/Products/ActivePerl/ [14]
FORUM NOKIA, 2008. Resource information: Carbide.vs 2.0.1.
http://www.forum.nokia.com/info/sw.nokia.com/id/cee0e8a7-ab3c-4dea-80a835e8f7886379/Carbide_vs_201.html [15]
FORUM NOKIA, 2008a. Nokia Tools and SDKs mobile applications
development. http://www.forum.nokia.com/main/resources/tools_and_sdks/index.html [16]
SYMBIAN SOFTWARE LTD, 2008a. UIQ Technology: UIQ Platform.
http://www.uiq.com/uiqplatform.html [17]
SAN DIEGO SUPERCOMPUTER CENTER, 2008. Mobile Data Visualization.
http://mobile.sdsc.edu/devices.html [18]
CMP MEDIA LLC, 2006. EETimes.com - Mobile standards, APIs on
table at graphics show. http://www.eetimes.com/news/design/showArticle.jhtml;jsessionid=3A53KNO UCVMPGQSNDLRSKHSCJUNN2JVN?articleID=166403311 [19]
CMP MEDIA LLC, 2006a. EETimes.com - Handset features still not a
wrap http://www.eetimes.com/issue/fp/showArticle.jhtml;jsessionid=3A53KNOUCV MPGQSNDLRSKHSCJUNN2JVN?articleID=184429905&_requestid=110617 1 [20]
LEJDFORS, C., OHLSSON L., 2006. Implementing an embedded GPU
language by combining translation and generation. http://ict.ewi.tudelft.nl/pub/jun/sac06.pdf [21]
MEDIA KIT, 2005. Embedded 3D Solutions Enhance HMI Display.
http://www.cotsjournalonline.com/home/article.php?id=100274 [22]
UIQ TECHNOLOGY, 2008. UIQ 3 SDK - Release Notes.
http://developer.uiq.com/devtools_1057.html [23]
WIKIPEDIA, 2008. Perl. http://en.wikipedia.org/wiki/Perl
[24]
WIKIPEDIA, 2008a. UIQ. http://en.wikipedia.org/wiki/UIQ
52
[25]
SYMBIANWNATCH.COM, 2008. Symbian Watch.
http://www.symbianwatch.com/ [26]
SYMBIAN SOFTWARE LTD, 2008b. Symbian OS Phones: Available Now.
http://www.symbian.com/phones/index.html [27]
ZEUS COMMUNICATION, MULTIMEDIA & DEVELOPMENT, 2008. Design and
Development Tutorials : OpenGL ES Programming Tutorials. http://www.zeuscmd.com/tutorials/opengles/index.php [28]
OPENGL.ORG, 2008. OpenGL - The Industry Standard for High
Performance Graphics. http://www.opengl.org/ [29]
HAINES, E. 2008. Real-time Redndering Resources.
http://www.realtimerendering.com/#opengl [30]
NEWLC SARL, 2008. Elements Interactive Releases Edge SDK 2.80
Adding Improved Support for Unicode and UIQ 3.0. http://newlc.com/Elements-Interactive-Releases-Edge,1298.html [31]
ALL ABOUT SYMBIAN, 2008. News, Reviews, and Software for Symbian,
Series 60 (S60) and UIQ phones. http://www.allaboutsymbian.com/ [32]
DOTSIS: NOKIA, SYMBIAN, JAVA MOBILE PHONE DISCUSSIONS, 2008.
http://www.dotsis.com
53
Dodatak Popis pokretnih ureñaja kompatibilnih sa aplikacijom dostupnih u Europi
Nokia Nokia N-Gage QD, Nokia 3660, Nokia N-Gage, Nokia 3650, Nokia 7650, Nokia N70, Nokia N90, Nokia 6681, Nokia 6680, Nokia 3230, Nokia 6670, Nokia 6260, Nokia 6630, Nokia 7610, Nokia 6600
Panasonic Panasonic X700
Samsung Samsung SGH-D720, Samsung SGH-D730
Siemens Siemens SX1
54