SERVIS<>
032010<><>

Programiranje mobilnih telefona (3): Windows Mobile

Hello Windows

Prosto je nemoguće zamisliti bilo kakav prenosni uređaj pametniji od digitrona bez Microsoftovih prozora, pa nije ni čudo što su oni našli svoju primenu i na mobilnim uređajima

Windows Mobile je naziv operativnog sistema koji je prilagođen za mobilne uređaje. Baziran je na Windows CE (Windows Embedded Compact ili Windows Embedded CE) operativnom sistemu, koji je Microsoft razvio za potrebe embedovanih uređaja i kompjutera sa vrlo malom količinom resursa. Kompatibilan je sa Intel x86, MIPS i ARM procesorima koji su najčešće zastupljeni u mobilnim uređajima, pri čemu se ovde ne misli samo na pametne telefone već i na PDA (Personal digital assistant) uređaje, koji su bili popularni još pre pomenutih telefona.

Malo istorije

Prva verzija ovog operativnog sistema pojavila se u aprilu 2000. godine pod nazivom PocketPC 2000, zatim je krajem sledeće godine usledila verzija PocketPC 2002. Oba sistema bila su kamen temeljac za naredne verzije i nadalje nije bilo velikih odstupanja po pitanju arhitekture, a znamo da se mobilni uređaji razvijaju nenormalnom brzinom baš kao i računari. Iako su u početku podržavali uzan spektar uređaja skromnih mogućnosti, čiji su ekrani bili uglavnom zakucani na rezoluciji 240 x 320 (QVGA), još tada su nastali programi koji se i dan-danas isporučuju uz svaku verziju Windows Mobile sistema: Pocket Office (koji sadrži Word, Excel i Outlook), Pocket Internet Explorer, Windows Media Player i MSN Messenger.

Naredne verzije pod nazivom Windows Mobile 2003 i njegova SE (Second Edition) varijanta, pored toga što su prvi put u imenu imale reči Windows Mobile, takođe su podržavale i VGA ekrane, kao i portrait/landscape orijentaciju. Mnogi pametni telefoni koji nisu imali ekran osetljiv na dodir u to vreme su koristili baš ove verzije sistema i bili su veliki konkurent tadašnjim verzijama Symbiana S60.

 
Tek kasnije, sredinom 2005. godine, u Las Vegasu je predstavljen Windows Mobile 5, koji izgledom najviše podseća na sadašnje najnovije verzije. To je dokaz da je petica bila velika prekretnica u istoriji ovog operativnog sistema. Microsoft je tada počeo i na mobilne uređaje da „gura” svoje .NET okruženje (koje se u mobilnoj varijanti zove .NET Compact Framework) i DirectShow tehnologiju koja je zadužena za multimediju i koja se nalazi u okviru paketa DirectX. Koliko je Microsoft od tog trenutka u mobilnoj industriji želeo parče kolača, zajedno sa šlagom i trešnjom na vrhu, pokazuje i to što je uz svoje Visual Studio 2005 okruženje isporučivao SDK i svu prateću dokumentaciju sa primerima za programiranje mobilnih uređaja zajedno sa konfigurisanim emulatorima „na tacni”.

Naredna verzija po imenu Windows Mobile 6 prevashodno pokazuje da brojka u naslovu nema veze sa godinom izlaska, jer je svetlost dana ugledao tek u februaru 2007. godine. Zatim su u naredne dve godine usledile verzije 6.1 i neplanirana 6.5, da korisnicima „zamaže oči” do konačne pojave verzije 7 krajem 2010. godine. Nijedna od njih ne donosi nikakve spektakularne izmene na bazi samog operativnog sistema već sadrži apdejte postojećih aplikacija, postojećih Microsoft frejmvorkova i podršku za nove softverske i hardverske servise koji su karakteristični za novije high-end telefone.

Priprema, p(r)ozor, sad...

Dakle, šta nam je sve potrebno od alata da bismo napravili najobičniju Windows Mobile aplikaciju i pohvalili se komšiji koji nije jeo dva meseca kako bi imao para da kupi telefon najnovije generacije sa ovom platformom? Kao što je već rečeno, Microsoft je sve lepo upakovao u svoje Visual Studio okruženje (počev od verzije 2005), za koje se svi programeri kunu da je bogomdano za razvoj aplikacija za Windows. Međutim, s obzirom na to da je danas 2010. godina, a vi želite da ispadnete kul pred komšijom, nije na odmet da instalirate verziju 2008 sa adrese http://www.microsoft.com/visualstudio, jer je ta verzija, koja u naslovu ima tekuću godinu, još u beta fazi. Takođe, treba napomenuti to da u Express verzijama ovog alata nema podrške za Windows Mobile. Pri instalaciji od ponuđenih programskih jezika možete izabrati C++, C# ili oba, zavisno od toga šta vam više leži. Kroz neke najosnovije razlike proći ćemo malo kasnije u tekstu. Visual Studio ni dan-danas nema u sebi Windows Mobile 6 SDK, pa zato morate naknadno da ga instalirate sa adrese http://msdn.microsoft.com/en-us/windowsmobile/default.aspx. Svaki od ovih paketa, koji su inače besplatni, eventualno će zaurlati da mu nedostaje neka određena verzija .NET frejmvorka, te ne postoji mogućnost da zaobiđete i njihovo instaliranje. Na kraju, ukoliko posedujete Windows Mobile uređaj, sigurno ste do sada već skinuli program za sinhronizaciju sa računarom. Ukoliko koristite Windows XP ili neki stariji operativni sistem, potrebno je da instalirate poslednju verziju programa ActiveSync. U slučaju da ste Vista ili Windows 7 korisnik, potrebno je da instalirate Windows Mobile Device Center. Oba programa možete naći na adresi http://www.microsoft.com/windowsmobile/en-us/help/synchronize/.

Kada se sve slegne na vaš računar poželjan je restart, iako Windows ne daje nikakve znakove da ima potrebe za tim. Treba pohvaliti brzu i glatku instalaciju naknadnih paketa, jer iz iskustva znamo da je pre nekoliko godina priprema računara i instalacija svih paketa trajala satima, a update sa WM5 na verziju 6 trajao je otprilike jednu Zemljinu rotaciju oko svoje ose.

Hello Windows, ovaj... World

Došlo je vreme da napravimo i našu prvu aplikaciju, stoga pokrenite Visual Studio. Prvo ćemo se pozabaviti jednim prostim C++ primerom. Izaberite File: New Project i iz liste tipova projekata izaberite Visual C++: Smart Device (kako je predstavljen mobilni uređaj). Čarobnjak nas dalje pita za koju verziju platforme radimo projekat i koji se .NET frejmvork koristi. Ako je u instalaciji sve prošlo kako treba, trebalo bi da se u listi pojavi SDK za WM verzije 5 i 6. Izaberimo za početak verziju 5 kako bismo bili sigurni u to da će aplikacija raditi i na starijim uređajima, mada je moguće projekat kasnije kompajlirati i za ostale platforme dodavanjem novih targeta. Na kraju kliknite na Finish i otvoriće vam se prepoznatljivi layout u kojem se s leve strane nalazi Solution Explorer, u sredini su fajlovi otvoreni u editoru i s desne strane su tabovi Toolbox i Properties.

Svako ko je barem jednom programirao za Windows koristeći Win32 API primetiće da je glavna klasa (entry point aplikacije) identično organizovana. Kada se startuje aplikacija, prvo se izvršava funkcija WinMain koja pokupi command parametre (ukoliko postoje) i inicijalizuje glavni prozor. S obzirom na to da se komunikacija između prozora i eventâ unutar njih obavlja u Windowsu preko poruka, normalno je da se kreira i funkcija WndProc callback koja presreće i obrađuje te poruke. Takođe, automatski se kreira i glavni meni aplikacije, koji se na Windows Mobile uređajima nalazi pri dnu ekrana. Ako otvorite resurs fajl, primetićete da je kreiran i dijalog AboutBox, i to dve verzije. Jedna je za portrait orijentaciju ekrana, a druga za landscape. Ono na šta treba obratiti pažnju kada se programira za mobilni uređaj jeste rezolucija ekrana koja varira od uređaja do uređaja, takođe na orijentaciju u kojoj se uređaj trenutno nalazi, pa i na to da li mu je trenutno aktivna virtuelna tastatura ili ne. Treba što manje koristiti fiksne (hardkodirane) pozicije kontrola na ekranu, da ne kažemo, izbeći ih totalno. Pri kompajliranju aplikacije, u slučaju da vam uređaj nije prikačen na računar automatski će se podići emulator (u zavisnosti od toga koji ste SDK izabrali kao target) i aplikacija će se startovati. Naravno, postoji mogućnost debagovanja u emulatoru i na pravom uređaju. Da biste debagovali na uređaju, potrebno je da on bude prikačen na računar, a potom treba izabrati Debug: Attach to Process. Za Transport izaberite Smart Device i onda pronađite vaš uređaj u listi procesa.

 
Ako više volite C#, uočićete takođe mnoge sličnosti sa regularnim Windowsom. Projekat za Windows Mobile kreira se na isti način, samo što na početku birate Visual C# kao tip. Kada završite sa čarobnjakom, u centralnom delu ekrana videćete početnu formu aplikacije, koja je već upakovana u skin odgovarajućeg emulatora (kako biste se što više uživeli u WM programiranje). Sve je isto kao i kod programiranja za PC – kontrole se prevlače na formu i duplim klikom na njih otvara se kôd klase trenutne forme u kojoj se nalazi kontrola sa funkcijom koja se izvršava kada se na nju klikne. Sva pravila .NET programiranja važe i na mobilnim sistemima. Kontrole se mogu grupisati u posebne klase, mogu se naslediti i menjati do mile volje dok se ne postigne željeni rezultat.

Kakve mogućnosti pruža Windows Mobile

Pre nego što neko sedne da napravi bilo kakvu aplikaciju za ovu platformu, sigurno će se pre mogućnosti sistema zapitati koji programski jezik da koristi. Koji je bolji? Koji je brži? Koji se lakše uči? Svaki jezik ima svoju primenu. U zavisnosti od toga šta aplikacija treba da radi bira se i odgovarajući jezik. Tim pitanjima nećemo se baviti u ovom tekstu, a najbolje bi bilo kada biste savladali oba jezika. Dobro mesto za početak listanja dokumentacije jeste Microsoft Developer Network na adresi http://msdn.microsoft.com/. Postoji čak i tema o tome gde je poželjno primenjivati native jezik, a gde managed. Dalje, MSDN nam nudi pregršt drugih informacija. Kada se pojavi nova verzija nekog operativnog sistema, treba prvo započeti od tema koje se bave promenama u odnosu na prethodnu verziju. Ima mnogo uputstava kako programirati i usput se truditi da kôd koji pišete bude maksimalno kompatibilan za buduće sisteme, kako dizajnirati UI, kako baratati memorijom i ostalim skromnim resursima i tako dalje.

Nije na odmet da se navedu neke najosnovije stvari koje su karakteristične za ovaj operativni sistem. Pored raznoraznih API-ja za kontrolu delova hardvera koji su specifični samo za neke uređaje kao, na primer, GPS modul, senzori, multitouch podrška (koja se očekuje u verziji 7), postoje i funkcionalnosti koje su podržane u većini uređaja još od Windowsa Mobile verzije 5. Na primer, porukama i emailovima na uređaju možete prići koristeći MAPI (Messaging API). Ukoliko želite da pristupite kontaktima ili kalendaru u Pocket Outlooku koji sadrži sve taskove i sastanke, koristićete POOM API (Pocket Outlook Object Model API). Ako vam je potreban rad sa grafikom, za 2D prikaz stoje vam na raspolaganju već pomenuti DirectX i GAPI (Game API). Međutim, GAPI se odavno ne koristi za grafiku, već se koriste samo njegove funkcije za ulaz. Na vama je da odlučite hoćete li ga podržati kako biste zadržali kompatibilnost sa nekim starijim uređajima. Za 3D prikaz tu je, naravno, Direct3d Mobile koji, nažalost, ima jednu veliku manu, a to je da ne možete u isto vreme startovati dve aplikacije koje koriste ovaj način prikaza. Postoji tačan spisak funkcija u okviru ove biblioteke i ekstenzija koje su podržane na mobilnim uređajima i on je znatno osakaćen u odnosu na onaj koji znamo sa PC-a. Ako ste vični eksperimentisanju, postoji wrapper koji vam omogućava da na Windows Mobile uređaju „poterate” i OpenGL ES (samo potražite biblioteku pod nazivom Net Compact Framework Wrapper). Rad sa bazama podataka omogućiće vam Microsoft SQL Server 2005 Compact Edition, koji se nalazi u ROM-u Windows Mobile 6 uređaja. Korisnici ranijih sistema moraće naknadno da ga instaliraju na svoj telefon. Omogućena vam je i upotreba raznih kontrola nekih drugih programa kao, na primer, HTML ili AJAX kontrola iz Pocket Internet Explorera ili Windows Media Player kontrole kako biste puštali zvuk ili video. Sve detalje u vezi korišćenja ovih i drugih API-ja sa gomilom primera imate na već pomenutom MSDN-u.

Završna reč

Za Windows Mobile postoji mnoštvo aplikacija. Morate imati na umu to da ako želite da distribuirate svoju aplikaciju, veće mogućnosti za to imaćete ako je budete digitalno potpisali. Ako ste pretresli neke od pomenutih linkova, sigurno ste naišli i na informacije o tome kako ući u Microsoft Partner program ili kako se registrovati na VeriSign, koji vam otvara mogućnost za plasiranje vaše aplikacije na Microsoft Mobile2Market.

Windows Mobile je već dugo na sceni, tako da je preležao sve dečje boljke. Omogućava razvoj aplikacija u jednom od najmoćnijih IDE alata u jednom od najpopularnijih programskih jezika. Podržava multitasking i omogućava korisniku skoro potpunu kontrolu nad uređajem, za razliku od nekih novijih sandbox orijentisanih operativnih sistema. Apsolutna kontrola nad uređajem zapravo i jeste suština pametnih telefona; ako je ta kontrola moguća još i putem desktop računara (pod uslovom da imate instaliran Windows XP ili svežiju verziju ovog popularnog brenda), igri nema kraja.

Nažalost, ovaj operativni sistem može da bude prevelik zalogaj za neke uređaje – na njima će se ponašati tromo, pogotovu ako imate više pokrenutih procesa u pozadini. Veliko usporenje primećuje se kod masovnog iscrtavanja UI kontrola, što se može videti kada startujete nekoliko aplikacija jednu za drugom. Tako, jedan od poslednjih saveta u ovom tekstu jeste da pažljivo baratate kontrolama i da ne pretrpavate aplikaciju njima. Ovo se posebno odnosi na ljubitelje managed jezika kao što je C#. Intenzivno korišćenje kontrola putem .NET-a i te kako umanjuje performanse aplikacije. Imajte na umu i to da koristite mobilni uređaj i da odnosi brzina između različitih jezika nisu isti kao na personalnim računarima.

Vladimir IGNJATIJEVIĆ

 
 AKCIJE
Zaštita dece na Internetu: akcija „Klikni bezbedno”

 AKTUELNOSTI
Tržište mobilnih operativnih sistema
„Šetnja sa dinosaurusima – spektakl u areni”

 PRIMENA
MapSoft 3DPhoto i PhotoSoft Viewer

 NA LICU MESTA
Kingston konferencija
Asus konferencija
Ostali događaji, ukratko

 KOMPJUTERI I FILM
„Alisa u zemlji čuda”

 SERVIS
Dijagnostika računara
Programiranje mobilnih telefona (3): Windows Mobile
Šta mislite o ovom tekstu?
Home / Novi brojArhiva • Opšte temeInternetTest driveTest runPD kutakCeDetekaWWW vodič • Svet igara
Svet kompjutera Copyright © 1984-2018. Politika a.d. • RedakcijaKontaktSaradnjaOglasiPretplata • Help • English
SKWeb 3.22
Opšte teme
Internet
Test Drive
Test Run
PD kutak
CeDeteka
WWW vodič
Svet igara



Naslovna stranaPrethodni brojeviOpšte informacijeKontaktOglašavanjePomoćInfo in English

Svet kompjutera