S Qtopio na mobilne naprave

Objavljeno: 31.3.2005 08:41 | Avtor: Gorazd Golob | Kategorija: Programer | Revija: September 2004

Qtopia je podlaga za grafične uporabniške programe na ročnih računalnikih in mobilnih telefonih, temelječih na GNU/Linuxu. Je izdelek znanega razvijalca knjižnice QT, podjetja TrollTech. Knjižnica Qt je znana predvsem zato, ker je temelj odprtokodnega namiznega okolja KDE.

Qtopia je narejena s pomočjo knjižnice Qt/Embedded, ki je poenostavljena oblika Qt za mobilne naprave in je v bistvu druga različica Qt (aktualna različica za namizje je 3, pripravljajo pa že četrto). Kot posledica tehničnih izboljšav mobilnih telefonov se je pokazala potreba po zahtevnejši programski opremi in skupni platformi. Tako so dobili telefoni operacijski sistem s praktičnim in uporabnim grafičnim okoljem, kot ga poznamo na osebnih računalnikih, še posebej ročnih računalnikih, in omogoča zagon programov, ki jih naložimo prek raznih vmesnikov. Uporabnost teh naprav se danes delno prekriva s funkcionalnostjo ročnih računalnikov, v prihodnosti pa bomo verjetno priča enemu trgu z mobilnimi napravami novega rodu.

Qt Designer s poskusnim uporabniškim programom za Qtopio

Specifikacije strojne oprema za pametne telefone so zelo specifične. Imajo zaslone nizkih ločljivosti s približno petdeset tisoč točkami in znajo opisati barve z več kot šestnajst biti. Uporabljajo procesorje, ki niso vsem znani procesorji x86, temveč prevladujejo na trgu osebnih računalnikov neznane arhitekture. Zadnji čas smo priča vzponu Intelovih procesorjev Xscale z delovnim taktom do 400 MHz in več. Procesorje Xscale odlikuje arhitektura RISC in majhna poraba električne energije. Pametni telefoni imajo tudi razširjen delovni pomnilnik nad 8 MB, izmenljivi pomnilniški moduli pa dosegajo do 512 MB. Vse te značilnosti nas malo spominjajo na razmere v osebnem računalništvu kar nekaj let nazaj. Za opisane lastnosti potrebujemo platformi prilagojen in optimiziran operacijski sistem, ki je odziven, ima značilnosti današnjih operacijskih sistemov in podobnost z današnjimi grafičnimi vmesniki, zna uporabljati protokole in standarde, kot so GSM, UMTS, bluetooth, serijski protokol RS232, in višje protokole, kot so TCP/IP, WAP. Ponuditi mora vso funkcionalnost prek omejenega uporabniškega vmesnika. V ta namen nekateri uporabljajo zaslon na dotik, drugje nas še vedno omejuje številčnica. Grafični vmesnik mora biti odziven in telefon lahko hrani slike, video posnetke, zvočni zapis in seveda tekstovne podatke. Uporabniški programi, ki jih dobimo z operacijskim sistemom, ponujajo univerzalni poštni odjemalec za SMS, MMS in klasično elektronsko pošto. Pomemben je tudi koledar, ki omogoča sinhronizacijo s kakšno različico koledarja na PCju. Obvezen je tudi brskalnik za splet, ki zna prikazati tako WML kot tudi klasične dokumente HTML in s tem ponuja mobilnemu operaterju ter drugim ponudnikom popolnoma nove spletne storitve za svoje naročnike. Te storitve so se začele pojavljati, je pa vseeno očitno, da mobilni operaterji še zdaleč niso bili pripravljeni na morebitni razmah novih storitev in to velja še danes, vsaj pri nas. Tudi v "razviti" Evropi ni videti kakega posebnega napredka v ponudbi dodatnih storitev, kot jih poznajo na Daljnem vzhodu. Prodaja melodij za zvonjenje, sličic za ozadja, predlog za večpredstavna sporočila, uporabnih programov in iger še zdaleč ni vse, kar ponujajo te naprave. Najbrž bomo zares morali počakati na tretji rod mobilne telefonije.

Na slovenskem trgu pametnih telefonov so trenutno zastopani Symbian OS, Microsoftov PocketPC in PalmOS na Palmovi liniji Treo. Glavni delež ima seveda Symbian, ki teče na Nokijini seriji S60 in Sony-Ericsonovi seriji P. Uporabljen je še v modelih Motorole, Samsunga in deluje tudi na telefonih izdelovalca FOMA, ki so namenjeni uporabi v mobilnih omrežjih 3G. Platforma z velikim deležem na tem področju pa prinaša še lažji in hitrejši razvoj programov, kar je dokazal Symbian. Z velikim tržnim deležem operacijskega sistema različice 6.1 se je za to platformo pojavilo veliko programja, ki pokriva velik del potreb uporabnikov. Prav tako Symbian ponuja veliko prostih programov za razvijalce na tej platformi, ki lahko uporabljajo klasična C++ razvojna okolja in prevajalnike.

Linux v mobilnih napravah

Operacijski sistem GNU/Linux je zmerom bolj navzoč v vgrajenih sistemih. Zaradi načina licenciranja postaja GNU/Linux priljubljena izbira na trgu ročnih računalnikov in mobilnih telefonov. Prvi je s prodorom začel Sharp s svojim ročnim računalnikom Zaurus. Ročni računalnik ima naložen GNU/Linux in okolje Qtopia. Je bolj nenavadne oblike in se razlikuje od klasičnih ročnih računalnikov po tipkovnici "qwerty" in klasičnem razmerju zaslona 4 : 3. Slediti so mu začeli izdelovalci z Daljnega vzhoda, predvsem Japonske in Koreje. Izdelovalci strojne opreme vedno bolj ugotavljajo, da lahko izdelek prodajajo ceneje in z večjim zaslužkom, če jim ni treba plačevati licenčnine za vsak izvod naloženega komercialnega operacijskega sistema. Na trgu je že kar nekaj izdelkov, ki temeljijo na operacijskem sistemu Linux. Nekateri od njih niso pretirano uspešni, predvsem zaradi slabšega vmesnika, slabe združljivosti z drugimi izdelki in slabe povezljivosti z osebnim računalnikom ter uporabniškimi programi v operacijskem sistemu Windows. Med te sodi tudi bolj znan ročni računalnik Agenda R3 in nekaj manj znanih ročnih računalnikov, razvitih v Evropi in na Daljnem vzhodu.

Danes smo priča vedno več podjetjem, ki razmišljajo ali že imajo konkretne izdelke, ki temeljijo na odprtokodnem operacijskem sistemu. Na Kitajskem uporabljajo celo vrsto pametnih mobilnih telefonov z GNU/Linuxom, izdelovalcev Motorola, Samsung in šanghajskega podjetja E28. Večinoma imajo naložene prirejene različice ameriškega podjetja MontaVista in korejskega MIZI Research. MIZI Linux uporablja prirejeno namizje KDE in knjižnico Qt. Njihova distribucija je namenjena celi paleti vgrajenih naprav, ki ponujajo uporabniku tako vizualno kot tudi splošno uporabniško izkušnjo. Sem sodijo ročni računalniki, mobilni telefoni, potovalni računalniki in razne naprave, ki dopolnjuje televizijo, kot so osebni snemalci videa (PVR) ter drugi set-top boxi in drugi video predvajalniki.

Motorola je za svoja telefona z Linuxom A760 in A768 izbrala MontaVista Linux in grafično okolje Qtopia, ki do takrat še ni bilo na voljo za mobilne telefone. Spomladi je Trolltech uradno izdal Qtopio za mobilne telefone, saj se je na področju ročnih računalnikov kar nekako prijela. Podjetje Trolltech ponuja knjižnico Qt za programiranje s programskim jezikom C++ na vseh mogočih platformah kot komercialni izdelek, za uporabo na operacijskem sistemu Linux in MacOSX pa jo ponuja pod licenco GPL. Zato je zelo priljubljena pri razvoju odprotokodnih namiznih uporabniških programov. Knjižnica je tudi priljubljena v operacijskih sistemih Windows, čeprav je dosegljiva samo s komercialno licenco. Vsekakor pa je uporaba skoraj iste razvojne knjižnice na telefonih velika prednost za razvijalce in tudi prodajalce telefonov. Na voljo je zelo velika zbirka programov, spomnimo se samo vseh pripadajočih programov pri namizju KDE!

Podjetje Trolltech ima sedež na Norveškem, vendar ima poslovalnice tudi v Avstraliji in ZDA. Njihov trg je globalen, z največ naročniki v ZDA. Prihodke imajo od prodaje in tudi podpore svojih izdelkov. Njihov model poslovanja je nekoliko podoben švedskemu podjetju MySQL AB. Qtopia in Qt/Embedded mu že prinašata dvajset odstotkov vsega prometa. Trolltech trenutno ne želi izdati, kdo je vse interesent in kupec njihove platforme za mobilne telefone. Večina te programske opreme je pod licenco GPL, tudi Qt/Embedded in del Qtopie.

Na delo!

Izdelek Qtopia za mobilne telefone nam ponuja dober uporabniški vmesnik, ki smo ga vajeni tudi pri konkurenci - temelji na ikonah in menujih in je seveda visoko prilagodljiv. Zraven ponujajo cel spekter že pripravljenih klasičnih uporabniških programov za to okolje, kot so imeniki, koledar, večpredstavni predvajalnik, igre in sporočilni sistem z vsemi znanimi oblikami sporočil. Za svoje uporabniške programe omogoča tudi sinhronizacijo z namiznim računalnikom, ki zaganja okolje Windows in podpira Microsoftov Outlook. Prav tako ponujajo brezplačen namizni program Qtopia desktop, ki deluje v GNU/Linux, MacOSX in operacijskem sistemu Windows. Služi predvsem kot program za upravljanje naprav s Qtopio.

Poznamo dve različici razvojnega okolja za Qtopio. Prva je popolnoma komercialna in njeno ceno lahko sami preverite na Trolltechovi spletni strani. Zanima nas seveda tista druga, ki je izdana pod licenco GPL. Razlika med obema je samo v licenci. Prva nam dovoljuje razvoj komercialnih uporabniških programov, druga pa samo programov pod licenco GPL. Razvojno okolje je na voljo samo za operacijski sistem Linux, kar je logična posledica, saj je tudi končni izdelek namenjen delovanju v tem operacijskem sistemu.

Za začetek si bomo morali priskrbeti eno izmed ponujenih datotek na spletni strani. Na voljo imamo binarne pakete rpm za sisteme Redhat in Suse Linux ter paket z izvirno kodo. Če si želimo Qtopio sami prevesti v svoj sistem, potrebujemo še različico Qt/Embedded in tmake. Tu bi želel opozoriti tiste, ki ne uporabljajo zgoraj omenjenih distribucij, naj kljub temu snamejo paket rpm in ga pretvorijo v paket, primeren za svojo distribucijo (alien, rpm2tgz). Prevajanje Qtopie zna biti zelo zamudno in uspeh je pogojen tudi z malo sreče in potrpežljivosti. Najprej je treba prevesti Qt/Embedded, potem tmake (če še ga nimate v sistemu), za konec pa poslastica - Qtopia.

Če nam je uspelo prevesti ali če smo obupali in namestili binarni paket, smo pripravljeni na preizkus okolja Qtopia, v katerem bomo preskušali dane in druge uporabniške programe. Ker knjižnica Qt/Embedded ne zna prikazovati vsebine na strežniku X11, moramo še prej zagnati posnemovalnik načina framebuffer. Nastavimo vse potrebne spremenljivke za zagon (QTDIR, QPEDIR, PATH in LD_LIBRARY_PATH), kot je opisano v priloženi literaturi, in zaženemo posnemovalnik framebuffer za strežnik X11 - qvfb. Sledi zagon okolja Qtopia z ukazom qpe.

Preseneti nas okolje Qtopia s poskusnimi uporabniškimi programi, ki so namenjeni predvsem rabi v ročnih računalnikih. Manjkajo razna orodja za mobilne telefone, vendar naj to ne ovira naše produktivnosti.

Sliki zaslonov Qtopie za mobilne telefone

Zglede kode najdemo v podmapi /opt/Qtopia/examples. Najenostavnejši zgled je v podmapi application, kjer lahko prevedemo enostaven uporabniški rpogram example, ki prikaže prazno okno s tekstom in gumbom. Prevedemo jo z uporabo programčka tmake, ki ga dobimo priloženega pri Qtopia SDK. Pri prevajanju moramo paziti na pravilno nastavljene spremenljivke v lupini. Poleg prej omenjenih QTDIR, QPEDIR, PATH in LD_LIBRARY_PATH je treba nastaviti še spremenljivko TMAKEPATH, da izbere pravilen prevajalnik za C++. Glede na dokumentacijo jo je treba nastaviti na /opt/Qtopia/tmake/lib/qws/linux-generic-g++. V mapi najdemo datoteko example.pro, ki predstavlja projektno datoteko za razvojno okolje Qt/designer, ki je prav tako dodano razvojnemu paketu Qtopije. Tistim, ki ste se že prej seznanili s knjižnico Qt, razvoj s Qtopio ne bo povzročal posebnih preglavic, saj je uporaba enaka. Z ukazom:

tmake -o Makefile example.pro

naredimo navodila (makefile), ki jih bo prepoznal pripomoček gnu/make. Zaženemo še ukaz make in uporabniški program se bo prevedel. Če imamo zagnano posnemanje grafičnega načina framebuffer in okolja Qtopia, lahko program zaženemo. Za program skrbi poseben strežnik, ki se zažene z okoljem Qtopia in skrbi za medprocesno komunikacijo med okenskim upravljalcem (window manager), in sam uporabniški program.

Za hiter zgled se lahko lotimo predelave programčka z orodjem Qt/designer, s katerim lahko spremenimo grafični vmesnik ali pišemo kodo v C++. Pri uporabi vseh orodij, ki jih uporabljamo, je dobro preveriti, ali uporabljamo res tista iz mape bin Qtopije. Upoštevati je treba, da so ta orodja danes sestavni del vsake distribucije in jih dobimo skupaj s knjižnico Qt. Zaradi novejše različice ta orodja niso združljiva in nas lahko rahlo zmotijo.

Naš programček vstavimo v okolje Qtopia tako, da prekopiramo zagonsko datoteko example v mapo /opt/Qtopia/bin, opisno datoteko example.desktop v mapo s programi /opt/Qtopia/apps/Applications in ikono Example.png in druge uporabljene slike v mapo /opt/Qtopia/pics. Tako bomo na menuju Applications našli tudi naš programček z opisom, kot je določen v example.desktop.

V paketu je zelo veliko dokumentacije za uporabo knjižnice Qt/Embedded in dodatnih Qtopiinih knjižnic libqpe, libqtopia1 ter QPEPIM. Pot je odprta tudi vsakomur, ki še ni uporabljal knjižnice Qt in je vešč programiranja v C++.

Za konec

Uporaba istega operacijskega sistema in podobnih razvojnih knjižnic olajša razvoj programov prav za vse uporabniške platforme, od mobilnih telefonov do osebnih računalnikov in, ne nazadnje, velikih strežniških sistemov ter superračunalnikov. Podobno strategijo je ubral tudi Microsoft. Vprašanje trga, razvijalcev programske opreme in naprav pa je, katera platforma bo prevladala.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!
Prijava

ph

Komentirajo lahko le prijavljeni uporabniki