Java ME
Java Platform, Micro Edition (neboli Java ME, dříve označovaná jako Java 2 Micro Edition nebo J2ME) je jedna z několika základních platforem Javy (spolu s Java SE, Java EE a Java Card). Někteří považují Java Card za podsoučást Java ME. Jedná se o podmnožinu Java platformy SE, s cílem nabídnout sbírku API určenou pro vývoj software pro malá zařízení a zařízení s omezenými prostředky.
Java ME bylo vyvinuto firmou Sun Microsystems a nahrazuje dřívější technologii, tzv. PersonalJava. Bylo vydáno pod licencí GNU General Public License.
Dělení na konfigurace a profily
Java ME je rozdělena podle náročnosti API do dvou základních konfigurací. Konfigurace je specifikace, která definuje softwarové prostředí pro skupinu zařízení.
Každá konfigurace je navržena tak, aby představovala základní platformu pro dané zařízení a není povoleno ji dále rozšiřovat. V současné době jsou definovány dvě konfigurace - CLDC a CDC.
Specifikace konfigurace nevyžaduje po implementaci použití žádného konkrétního virtuálního stroje (VM). Výrobci si mohou vytvořit své vlastní VM splňující specifikaci. Sun poskytuje referenční implementaci pro oba typy konfigurací. Referenční KVM je ve zdrojovém tvaru.
Vztah platforem Java SE a konfigurací Java ME CDC a CLDC
Connected Limited Device Configuration (CLDC)
CLDC je určen především pro mobilní telefony či PDA s malou pamětí. Aplikace v CLDC konfiguraci se nazývají MIDlety (hlavní třída je potomkem abstraktní třídy javax.microedition.midlet.MIDlet). V současné době drtivé množství výrobců mobilních telefonů implementuje CLDC ve svých výrobcích.
Nároky na paměť:
Vyžaduje 160 kB ROM a 32 kB RAM. Specifikace CLDC nevyžaduje po implementaci použití žádného konkrétního virtuálního stroje (VM), nicméně Sun Microsystems poskytuje referenční VM - tzv.
Kilobyte Virtual Machine, s velmi malými paměťovými nároky. CLDC konfigurace 1.0 obsahuje tyto balíčky [1]
- java.io - poskytuje vstupní a výstupní datové proudy
- java.lang - poskytuje třídy nutné pro návrh v programovacím jazyce Java
- java.util - obsahuje framework kolekcí, nástroje pro usnadnění práce s datem a časem, a další různorodé nástroje
- javax.microedition.io - třídy pro správu všeobecného spojení
Základní syntaxe jazyka Java je stejná, jako ve všech ostatních edicích. V podstatě se jedná o Java SE o několik let zpět. Protože CLDC používá redukovaný virtuální stroj KVM, který neobsahuje plnohodnotný verifikátor bytekódu jako Java Virtual Machine, musí být kód preverifikován při kompilaci. Zajímavostí je, že CLDC neuvažuje o vstupu z klávesnice a výstupu na obrazovku, to zařizují až samotné profily. V březnu 2003 vyšla specifikace CLDC 1.1, umožňující větší podporu zařízení s většími zdroji.
Profily spadající pod CLDC
Profily doplňují konfigurace o další třídy, které poskytují specifické vlastnosti pro dané typy zařízení. Oba typy konfigurací mají své profily.
Mobile Information Device Profile (MIDP)
MIDP profil je určen především pro mobilní zařízení (vzhledem k tomu, že náleží k CLDC, tak především pro mobilní telefony). Tento profil přidává k CLDC práci se sítí, uživatelské rozhraní (UI) a lokální úložiště. Profil je zaměřen na zařízení s omezenou funkcionalitou zobrazování a ukládání informací. Z toho důvodu poskytuje relativně jednoduché UI a základní síťovou komunikaci založenou na protokolu HTTP 1.1. MIDP patří mezi nejznámější Java ME profily a tvoří základ technologie Wireless Java.
MIDlety běží v zařízení z bezpečnostních důvodů v tzv. sandboxu, neboli na svém vlastním pískovišti, které nemůže opustit.
Ke knihovnám specifikovaným v CLDC přidává MIDP 1.0 (vydáno říjen 2000) další:
- javax.microedition.rms - správa persistence dat
- javax.microedition.midlet - třída MIDlet, která je základní třídou MIDP profilu
- javax.microedition.io - zejména třída HttpConnection
- javax.microedition.lcdui - třídy pro tvorbu uživatelského rozhraní
MIDP 2.0 (vydáno listopad 2002) rozšiřuje dále funkcionalitu o následující balíky:
- javax.microedition.media - přehrávání multimédií. Jedná se o podmnožinu JSR 135 Java Mobile Media API
- javax.microedition.lcdui.game - herní API zaměřené na jednoduché 2D hry
- javax.microedition.pki - autentizační API pro zabezpečené přípojení
- zavádí možnost práce s desetinnými čísly.
MIDlet
MIDlet je javová aplikace, postavená na základě MIDP profilu. Mohou to být různé aplikace pro mobilní a jiná zařízení, jako např. hry. Hlavní soubor MIDletu je soubor .jar, který obsahuje třídy programu, zdroje (obrázky, atd.) a manifest (soubor určující hlavní třídu a další informace).
Distribuce MIDletů často obsahují také soubor .jad, který obsahuje adresu .jar souboru a další informace o .jar souboru a jeho výrobci. Některé implementace mohou přítomnost .jad souboru vyžadovat, případně na jeho základě odmítnout instalaci MIDletu.
MIDlet musí splňovat následující požadavky, aby běžel na mobilním telefonu:
- MIDlet musí být zabalen do .jar souboru
- hlavní třída musí být potomkem javax.microedition.midlet.MIDlet
- .jar soubor musí být preverifikován použitím preverifikátoru.
- v některých případech musí být .jar soubor podepsán mobilním operátorem
Pokud je v .jad souboru popsáno více MIDletů, tvoří dohromady jeden MIDlet suite. Celá MIDlet suite může pak sdílet společné databáze (použitím tříd balíčku javax.microedition.rms) a společné proměnné, které se ukládají do .jad souboru. MIDlety jsou na rozdíl od appletů limitovány na použití jednoduchého uživatelského rozhraní LCDUI. Existuje také mnoho dalších aspektů, které musí programátoři MIDletů vzít v úvahu.
Životní cyklus MIDletu
Information Module Profile (IMP)
IMP spadá pod CLDC konfiguraci, je to profil pro jednoduchá zařízení buď s jednoduchým displejem nebo bez displeje, s omezenou možností připojení k síti, většinou prodejní automaty nebo jednoduché bezpečnostní systémy.
Profil IMP je úzce spojen s profilem MIDP (jak 1.0, tak i následným 2.0), je to v podstatě jeho podmnožina, okrájená o možnost tvorby uživatelského rozhraní (především o balíček javax.microedition.lcdui).
Connected Device Configuration (CDC)
Tato konfigurace je určena k použití v zařízeních, které potřebují kompletní implementaci Java virtual machine. Konkrétní sada API může (v závislosti na daném profilu) obsahovat celou Java Platformu SE. Typické implementace používají podmnožinu API, v závislosti na podporovaných profilech. [2]
Aplikace se nazývají Xlety. Tato zařízení mohou díky větší paměti a procesorovému výkonu využívat z javového prostředí daleko více. CDC se objevuje u PDA, smartphonů, set-top boxů atd.
Nároky na systémové prostředky:
Vyžaduje 32bitový procesor a alespoň 512 kB ROM a 256 kB RAM. Konfigurace CDC pracuje s profily Foundation Profile, Personal Basis Profile a Personal Profile.
Platforma Java TV
Java TV je nová konfigurace Java ME, určená speciálně pro tvorbu interaktivních televizních služeb. Podle zdrojů z května 2009 implementují tuto
platformu tito výrobci: [3]
- MATSUSHITA ELECTRIC INDUSTRIAL CO., LTD.
- PHILIPS CONSUMER ELECTRONICS
- SONY ELECTRONICS
- LG ELECTRONICS
- HONGKONG TELECOM
- OPENTV
- TOSHIBA
Podle slov výrobce [4] bude moci programovací rozhraní Java TV poskytnout vývojářům vysoký stupeň kontroly nad
vzhledem aplikací a flexibilitu při jejich vytváření, a uživatelům interaktivních televizí poskytne dynamický a podmanivý zážitek. Aplikace jsou stejně jako u aplikací CDC tzv. Xlety, hlavní třídy musí být potomky abstraktní třídy javax.tv.xlet.Xlet.
Související články
- platforma Java
Externí odkazy
- https://web.archive.org/web/20090521222419/http://interval.cz/vyvoj-aplikaci/j2me/
- http://www.oracle.com/technetwork/java/javame
- http://www.billday.com/j2me/
- J2ME device database and multi-device porting framework Archivováno 7. 8. 2020 na Wayback Machine.
- http://www.javagames.com
Java | |||||||
---|---|---|---|---|---|---|---|
Platforma Java | Java (jazyk) • Micro Edition • Standard Edition • Enterprise Edition • Java Card • JavaFX • JDK • Android SDK | ![]() | |||||
Java Virtual Machine | Java Virtual Machine • HotSpot • OpenJDK • Da Vinci Machine • Squawk • Maxine VM • JRockit • Kaffe • Apache Harmony | ||||||
JVM programovací jazyky | BeanShell • Clojure • Groovy • Java Tcl • JRuby • Jython • Rhino • Nashorn • Scala • Fantom • Kotlin | ||||||
Nasazení aplikací | |||||||
Frameworky a knihovny |
| ||||||
Ostatní |