Co vás zajímá o J2ME, ale báli jste se zeptat
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říduMIDlet
, která je základní třídou MIDP profilu. -
javax.microedition.io
– k CLDC přidává tříduHttpConnection
-
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
- Úvod od firmy Sun – Introduction to Wireless Java[tm] Technology – (z těchto stránek si je možné stáhnout také veškeré specifikace)
- Connected Device Configuration and the Foundation Profile – dobré místo, kde začít, zajímá-li vás více CDC. Je tu i ukázka aplikace.
- Šeda, Jan: Co umožňuje Java v mobilních telefonech?
- MIDP-2.0 – co nás čeká a nemine
- Topley, Kim: J2me in a nutshell, O’Reilly, 2002
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Nové AI modely od Open AI a Google
22. května 2024 -
Jak nainstalovat šablonu ve WordPressu
23. července 2024 -
AI v programování: Jak používat GitHub Copilot (část 1)
12. února 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024