Java a Príbuzné Platformy Na
Total Page:16
File Type:pdf, Size:1020Kb
MASARYKOVA UNIVERZITA F}w¡¢£¤¥¦§¨ AKULTA INFORMATIKY !"#$%&'()+,-./012345<yA| Java a pˇríbuznéplatformy na PDA BAKALÁRSKÁˇ PRÁCE Tomáš Gazárek Brno, jaro 2008 Prohlášení Prohlašuji, že tato bakaláˇrskápráce je mým p ˚uvodnímautorským dílem, které jsem vypra- coval samostatnˇe.Všechny zdroje, prameny a literaturu, které jsem pˇrivypracování použí- val nebo z nich ˇcerpal,v práci ˇrádnˇecituji s uvedením úplného odkazu na pˇríslušnýzdroj. Vedoucí práce: Mgr. Tomáš Gregar ii Podˇekování Na tomto místˇebych rád podˇekovalMgr. Tomáši Gregarovi za vedení mé bakaláˇrsképráce a jeho cenné rady a pˇripomínky. iii Shrnutí V první ˇcástitéto práce byla zmapována situace na poli programovacích platforem v jazyce Java, které byly vytvoˇreny pro vývoj aplikací pro mobilní telefony, osobní digitální asistenty a podobné zaˇrízenís omezenou kapacitou pamˇeti,zdrojem energie a procesním výkonem. Hlavní cíl bakaláˇrsképráce spoˇcíváv prostudování platformy SuperWaba, jejích virtuálních stroj ˚u,vytvoˇreníukázkových aplikací a porovnání této platformy s Java ME. iv Klíˇcováslova JAVA, Java Platform, Micro Edition, API, JVM, PDA (Personal Digital Assistant), Smart- Phone, Eve, WebSphere Everyplace Micro Environment, NSIcom CrEme, SuperWaba v Pˇredmluva Již nˇekoliklet m ˚užemeve svˇetˇeinformaˇcníchtechnologií pozorovat trend neustálého zmen- šování vˇetšinyzaˇrízení.D ˚ukazemtoho m ˚užebýt vývoj mikroˇcip˚u,které jsou spolu s pa- mˇet’mi souˇcástítémˇeˇrvšech zaˇrízení,která nás obklopují. V souvislosti s tím roste i obliba mobilních zaˇrízení,jejichž procesní výkony a kapacita pamˇetíse neustále zvyšuje. Mobilní telefony s „otevˇreným“operaˇcnímsystémem (tzv. chytré telefony neboli smartphones) dnes již nejsou žádnou novinkou. Tento segment zaˇrízeníby tedy nemˇelbýt opomíjen u vývo- jáˇr˚usoftwaru. U programovacího jazyka Java není situace v této oblasti zrovna ideální. Co se týˇcemobilních telefon ˚ubez operaˇcníhosystému, má zde Java silné postavení. Pro vývo- jáˇreje v této oblasti primárnˇeurˇcenaJava ME platforma a její CLDC konfigurace (viz 2.1.2). V pˇrípadˇesmartphon ˚ua PDA je k dispozici rozsáhlejší konfigurace než CLDC, a to CDC (viz 2.1.1). Bohužel se Sun Microsystems pˇrestalo tuto oblast zajímat a nevytvoˇrilvirtuální stroje pro operaˇcnísystémy jako Windows Mobile, Palm ˇciSymbian. Pomoc proto musíme hledat u jiných platforem, založených na Javˇe.Vˇetšinaz nich vychází bud’ z CDC konfigu- race nebo z platformy Waba, jejíž vývoj byl v roce 2002 zastaven. Waba slouží jako základ napˇríkladpro platformu SuperWaba (viz 3), Java ME a CDC konfigurace pak pro platformy Eve (viz 2.2), IBM WebSphere Everyplace Micro Environment (viz 2.3), ˇciNSIcom CrEme (viz 2.4). SuperWaba je velmi povedená platforma, která nabízí mnoho možností pro vývoj software. Bohužel je rozdˇelenana dvˇeverze, z nichž jedna je placená a druhá ne. V pˇrípadˇe neplacené verze je klientská podpora od autor ˚umenší a taky nem ˚užemevyužívat všechny knihovny platformy. I pˇresto je tato platforma dobˇrevyužitelná k vývoji aplikací. Vytvoˇril jsem zde dvˇeukázkové aplikace. Jedna se jmenuje English Practise a druhá Screen Sam- ple. English Practise je slovník, který kromˇepˇrekladuumí i testovat uživatele z vložených slovíˇcek.Druhá aplikace jménem Screen Sample je velmi jednoduchá aplikace umožˇnující ovládat objekt po obrazovce pomocí stylusu a dotykové obrazovky. Bakaláˇrskápráce je rozdˇelenana pˇetkapitol. První kapitola se zabývá firmou Sun a jejím postavením na trhu s mobilními zaˇrízeními.Dále jsou zde struˇcnˇevysvˇetlenypojmy, jako virtuální stroj nebo API. V druhé kapitole popisuji ˇctyˇriplatformy založené na jazyce Java. Jako první se zabývám Java Platform, Micro Edition, potom Eve, WebSphere Everyplace Micro Environment a NSIcom CrEme. Ve tˇretíkapitole popisuji platformu SuperWaba. Zmi- ˇnujizde její p ˚uvod, instalaci, postup pˇritvorbˇeprogram ˚u,API a nakonec uvádím i ukázkové aplikace, které jsem vytvoˇril. Ctvrtᡠkapitola obsahuje struˇcnéporovnání platforem Super- waba a Java ME. Souˇcástítéto kapitoly je testování výše zmínˇenýchplatforem pomocí vlast- ního benchmarku, který poˇcítáhodnotu pí. V páté kapitole se vˇenujizávˇeru v nˇemžshrnuji bakaláˇrskoupráci. vi Obsah 1 Úvod ............................................. 1 1.1 JVM (Java Virtual Machine) ............................. 1 1.2 API ........................................... 2 2 Java platformy pro mobilní zaˇrízení ........................... 3 2.1 Java Platform, Micro Edition (Java ME) ...................... 3 2.1.1 CDC (Connected Device Configuration) . 4 2.1.1.1 Foundation Profile . 4 2.1.1.2 Personal Basis Profile . 4 2.1.1.3 Personal Profile . 4 2.1.1.4 CDC HotSpot Implementation Virtual Machine . 5 2.1.2 CLDC (Connected Limited Device Configuration) . 5 2.1.2.1 MIDP (Mobil Information Device Profile) . 5 2.1.2.2 IMP (Information Module Profile) . 5 2.1.2.3 CLDC HotSpot Implementation Virtual Machine . 6 2.1.3 Volitelné knihovny . 6 2.2 Eve ........................................... 8 2.2.1 Ewe (Eve) VM . 8 2.2.2 Eve API a podporované OS . 8 2.3 WebSphere Everyplace Micro Environment .................... 10 2.3.1 IBM J9 virtual machine . 10 2.3.2 API a podporované OS . 10 2.4 NSIcom CrEme .................................... 11 2.4.1 NSIcom CrEme Virtual Machine . 12 2.4.2 API a podporované OS . 12 3 SuperWaba ......................................... 14 3.1 (Super)Waba ...................................... 14 3.2 Vývoj SuperWaba programu ............................. 14 3.3 Instalace a SuperWaba VM .............................. 15 3.4 Podporované OS a licence .............................. 16 3.4.1 Verze a licence . 16 3.4.2 Podporované OS . 18 3.5 Warp, Exegen a Wxgn ................................ 18 3.5.1 Použití Warp . 19 3.5.2 Použití Exegen . 19 3.5.3 Použití Wxgn . 20 3.6 Struktura SuperWaba programu .......................... 20 3.7 API ........................................... 21 3.7.1 Knihovna Waba . 22 3.7.1.1 Tvorba GUI . 22 3.7.1.2 API pro vstup/výstup . 23 vii 3.7.2 Knihovna SuperWaba . 23 3.8 Unicode podpora ................................... 25 3.9 Ukázkové programy ................................. 26 3.9.1 English Practise . 26 3.9.2 Screen Sample . 28 4 Porovnání platforem .................................... 30 4.1 SuperWaba a Java Platform, Micro Edition .................... 30 4.2 Porovnání virtuálních stroj ˚u ............................. 31 4.2.1 Implementace algoritmu . 31 4.2.2 Výsledky benchmarku . 32 5 Závˇer ............................................. 35 Literatura . 37 A Manuální instalace SuperWaby ............................. 38 A.1 Palm OS ........................................ 38 A.2 Windows CE ...................................... 38 A.3 Symbian OS ...................................... 39 A.4 Windows 98 a vyšší .................................. 39 A.5 GNU/Linux ...................................... 40 B Komponenty GUI ..................................... 41 B.1 waba.ui.PushButtonGroup .............................. 41 B.2 waba.ui.Grid ...................................... 41 C Obrázky z ukázkových program ˚u ............................ 42 C.1 English Practise a Screen Sample .......................... 42 D Obsah pˇriloženéhoCD .................................. 47 viii Kapitola 1 Úvod Firma Sun Microsystems, Inc.1, která vznikla v roce 1982, se ve svˇetˇestala známou pˇrede- vším díky programovacímu jazyku Java. Bylo jen otázkou ˇcasu,kdy firma zoptimalizuje svoji platformu i pro nejmenší zaˇrízeníjako jsou mobilní telefony nebo PDA. V ˇcervnu1999 bylo na konferenci JavaOne pˇredstavenoprostˇredíJava Micro Edition (JME, dˇríveozna- ˇcovánojako J2ME). Od této doby se zaˇcínáo Javˇepˇremýšleti jako o úˇcinnémnástroji ke tvorbˇeaplikací pro mobilní zaˇrízení,který s sebou nese mnoho pozitivních vlastností, jako je pˇrenositelnost,bezpeˇcnost,robustnost apod. Vše tehdy vypadalo nadˇejnˇe,dnes je bohu- žel situace taková, že se firma Sun o PDA moc nezajímá, a proto nenajdeme v jejím podání virtuální stroje (viz 1.1) pro operaˇcnísystémy, jako jsou Windows Mobile nebo Palm OS. PDA založené na tˇechtooperaˇcníchsystémech tvoˇrívelkou ˇcásttrhu. Komunita uživatel ˚u u firmy Sun mnohokrát lobovala, aby vytvoˇrilavirtuální stroj pro Pocket PC. Bohužel se dodnes v tomto smˇeru nic nezmˇenilo. Rešeníˇ musíme hledat u jiných platforem, které jsou založené na jazyce Java. Naštˇestínˇekoliktakových existuje a já se pokusím nˇekteréz nich popsat. Nejprve si ale musíme ˇríctnˇekolikzákladních informací týkajících se Java platformy. Javová platforma se skládá z Java Virtual Machine, API, pˇrekladaˇcea dalších nástroj ˚u. Zde se zmíníme jen o prvních dvou. 1.1 JVM (Java Virtual Machine) Jedna z nejd ˚uležitˇejšívlastností Javy je její nezávislost na architektuˇre,respektive na operaˇc- ním systému. To zajišt’ují tzv. virtuální stroje, neboli Java Virtual Machine (JVM). Ve vˇetšinˇe programovacích jazyk ˚use kód programu pˇrikompilaci pˇreloží pˇrímodo strojového kódu procesoru, v Javˇeje tomu však jinak. Kód programu se nejprve pˇreložído tzv. mezikódu neboli byte-kódu, který je ještˇenezávislý na architektuˇre,ale ˇcasovˇenároˇcnéfáze kompilace jsou již provedeny. O pˇrevodmezikódu do strojového kódu procesoru se stará právˇeJVM. V praxi to tedy vypadá tak, že nám pro spuštˇeníprogramu staˇcípouze byte-kód programu a virtuální stroj Javy urˇcenýpro náš operaˇcnísystém. 1. <http://www.sun.com> 1 1.2. API 1.2 API API (Application Programming Interface) neboli rozhraní pro programování aplikací je sada knihoven, které obsahují r ˚uznétˇrídya rozhraní.