Co vás zajímá o J2ME, ale báli jste se zeptat

14. října 2002

Slovo java je dnes skloňováno v osmi pádech v souvislosti s mobilními telefony. Javu podporují téměř všechny telefony, které nově přicházejí na trh. Je tedy nejvyšší čas naučit se, jak si aplikaci, která vám na vašem mobilu chybí, doprogramovat. K tomu by vám měl pomoci seriál, jehož úvodní díl právě čtete.

Co ty zkratky znamenají?

J2me (Java 2 microedition) je nejmenší ze tří základních edic javy (zbylé dvě jsou J2SE a J2EE), jak už název napovídá. Mikroedice vznikla s cílem sjednotit různé odnože javy pro malá zařízení, která nezvládnou standardní edici. Tato zařízení zahrnují přístroje s různými vlastnostmi, proto není mikroedice jedna specifikace jako standardní edice, ale člení se na různé konfigurace a profily. Konfigurace určuje základní sadu knihoven a vlastnosti přístroje, které profil už jen upřesňuje.


Základní členění J2ME

CLDC (Connected Limited Device Configuration)

Tato konfigurace je zaměřena na malá zařízení. Co se týká hardwaru, specifikuje pouze minimální nároky na paměť, a to 160 kB stálé paměti (např. ROM, při vypnutí zařízení zůstávají data zachována) a 32 kB „nestálé“ paměti, která je k dispozici při běhu virtuálního stroje například na zásobník. Z důvodu zmenšení velikosti virtuálního stroje byly některé funkce omezeny nebo odstraněny. Ověřování korektnosti bajtkódu, tzv. verifikaci, kterou obvykle provádí virtuální stroj, bylo rozděleno na dvě fáze. V první fázi (preverifikace), která se provede po překladu zdrojového kódu, je do každé třídy připsán atribut StackMap, který pak použije virtuální stroj ke zjednodušení verifikace.

Základní syntaxe jazyka je stejná, jako ve všech ostatních edicích. Knihovny obsahují velmi omezenou podmnožinu standardní edice, a to vybrané a trochu upravené třídy z násludujících knihoven:

  • java.lang
  • java.io
  • java.util

A navíc novou knihovnu pro I/O operace, s třídami u nichž nebylo možno zachovat podobnost se standardní edicí:

  • javax.microedition.io

MIDP (Mobile Information Device Profile)

MIDP je profil, který upřesňuje CLDC konfiguraci pro použití na nejmenších zařízeních, jako jsou obyčejné mobilní telefony. Právě tato platforma se těší největší pozornosti, protože se týká hromadně rozšířených zařízení. K hardwarové specifikaci přidává požadavek na minimální velikost displeje 96 x 54 (přesně tuto velikost mají například telefony Nokia 3410 nebo 6310i) a na možnost ovládat zařízení klávesami nebo dotykem obrazovky. Také navíc vyžaduje aspoň 8 kB stálé paměti pro ukládání dat aplikací.

Ke knihovnám specifikovaným v CLDC přidává další:

  • javax.microedition.rms – správa trvalých dat
  • javax.microedition.midlet – obsahuje třídu MIDlet, která je základní třídou MIDP profilu.
  • javax.microedition.io – k CLDC přidává třídu HttpConnection
  • javax.microedition.lcdui – třídy pro tvorbu uživatelského rozhraní

Ve verzi MIDP-2.0, jejíž specifikace je již k dispozici, přibude další důležitá funkčnost, jako např. připojení pomocí soketů nebo ovládání zvuku.

Skoro všechny mobilní telefony spadají do kategorie MIDP. Výjimkou jsou některé komunikátory se silnějším procesorem a větší pamětí (např. Nokia 9210). Aplikacím pro tuto kategorii se říká midlet podle základní třídy profilu MIDP.

PDAP

Profil rozšiřující CLDC konfiguraci, který je, jak už jeho název napovídá, určen pro PDA zařízení s větším displejem. Zatím je teprve ve vývoji.

CDC (Connected Device Configuration)

CDC je konfigurace cílená na zařízení s 32bitovým procesorem a alespoň 512 kB ROM a 256 kB RAM. Virtuální stroj musí zvládat prakticky stejnou funkčnost jako ve standardní edici.

Knihovny CDC konfigurace tvoří nadmnožinu knihoven CLDC konfigurace. Navíc obsahují knihovny

  • java.net
  • java.text
  • java.security

Většina následujících specifikací je teprve ve vývoji, proto vám možná bude připadat následující popis profilů poněkud zkratkovitý.

Foundation profil

Přidává většinu základních tříd, které CDC chybí oproti standardní edici. Neobsahuje žádné uživatelské rozhraní a také neobsahuje knihovny java.beans, java.rmi ani java.sql Tvoří základ pro další rozšiřující profily. Vyžaduje 1 MB ROM a 512 kB RAM.

Personal Basis profil

Přidává základní uživatelské rozhraní, které je omezené na použití pouze jednoho okna.

Personal profil

Sem se přesunuje edice Personal java, která je již rozšířená na spoustě zařízení, jako jsou PDA nebo komunikátory (Nokia 9210). Je skoro stejná, jako stará verze javy před vznikem grafické knihovny javax.swing, na kreslení uživatelského rozhraní se používá knihovna java.awt. Vyžaduje 2,5MB ROM a 1MB RAM.

RMI profile

Přidává k foundation profilu vzdálené volání metod kompatibilní s rozhraním standardní edice (knihovna java.rmi)

Game profil

Ke konečné verzi specifikace má ještě hodně daleko. Měl by být určen speciálně k vývoji her.

Midlety a jejich omezení

Při běhu se množství paměti, která je k dispozici, pohybuje kolem několika set kilobajtů. Velikost aplikace je na různých zařízeních omezena různě. Pro telefon Nokia 6310 se musí vejít do 30 kB, pro telefon Nokia 7210 do 64 kB, do Nokia 7650 se vejde i 1MB aplikace. Tato čísla jsou tak malá, že je nutné při vývoji věnovat zvláštní pozornost úspornému psaní a neplýtvat pamětí.

J2ME je relativně mladá technologie, což s sebou nese spoustu nedostatků. Přestože vznikla proto, aby sjednotila specifikaci jazyka, je velmi obtížné napsat midlet, který by beze změn běžel na různých telefonech. Pro každý telefon implementuje jeho výrobce J2ME podle téže specifikace. Při pokusu o ověření přenositelnosti aplikace ale autor zjistí, že se implementace i přesto v některých nuancích liší.

Dalším problémem je, že specifikace se některými věcmi nezabývá vůbec – např. ovládáním zvuku, přístupem k SMS, MMS. Tuto funkčnost dodávají výrobci telefonů navíc. Jakmile však vývojář použije rozšiřující třídy, stává se aplikace nepřenositelnou. Dobrou zprávou je, že specifikace MIDP 2.0, jejíž první implementace můžeme čekat v polovině příštího roku, už nejzásadnější nedostatky první verze specifikace odstranila.

Na závěr nějaké klady

Jestliže potřebujete mít nějakou aplikaci neustále s sebou, je ideální umístit ji na mobilní telefon. J2ME je pak nejjednodušši možností (a často jedinou), jak to udělat. Vzhledem k  masivní podpoře javy výrobci mobilních telefonů jako Nokia, Siemens ci Motorola, se budou její možnosti výrazně zlepšovat. Ve spojení s GPRS je použití javovské aplikace pro přístup k serverovým datům cenově únosné a umožní vám být neustále „on-line“.

V příštím díle se můžete těšit na návod k napsání vašeho prvního midletu.

Prameny a literatura

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *