A J2ME architektúrája Léczfalvy Ádám
[email protected]
A Java család A J2ME architektúrája ◦ Konfigurációk ◦ Profilok ◦ Opcionális csomagok
2
3
Lehetővé tegye a Java alkalmazások futtatását hordozható eszközökön, figyelembe véve azok korlátozó tényezőit: ◦ ◦ ◦ ◦
Korlátozott kijelző méret Memória Teljesítmény Akkumulátor
Kompatibilitás a Java SE-vel
4
Különböző képességű eszközök memória, feldolgozási idő, hardver, megjelenítés szempontjából Konfigurációk:
Profilok:
Opcionális csomagok:
◦ meghatározzák egy készülékcsoport legalapvetőbb közös tulajdonságait
◦ magasabb szintű csoportosítást tesznek lehetővé a konfigurációkon felül ◦ a készülékek egyedi, speciális funkciói számára
5
Profil
Vertikális eszközcsoport (pl. telefonok)
Konfiguráció Horizontális eszközcsoport, hasonló teljesítménybeli tulajdonságok, megszorítások
6
7
Meghatározza azokat a minimális JVM funkciókat és osztálykönyvtárakat, amelyek elérhetők egy bizonyos eszköz kategória számára A felhasználók által kevésbé láthatók A „legkisebb közös nevező” a Java platform szolgáltatásaira és osztályaira nézve A profil fejlesztők a konfigurációra építenek
9
Egy konfiguráció komponensei: Virtuális gép ◦ Teljes JVM, vagy annak egy része
Alapvető osztálykönyvtárak gyűjteménye
◦ Biztosítják az egy kategóriába tartozó eszközök számára az alapfunkcionalitásokat (pl. memóriakezelés, hálózati kapcsolat)
10
CDC és CLDC esetén többnyire a J2SE API részhalmazai, J2ME bővítményekkel A konfigurációk nagyon alacsony szintű API-t biztosítanak Nincs UI elérés Az alkalmazások életciklusát (betöltés, aktiválás) nem felügyelik
11
CLDC(Connected Limited Device Configuration) ◦ Kis és középkategóriás PDA-k, mobiltelefonok, személyhívók, stb. számára ◦ Szigorú memória korlátok ◦ Erősen megcsonkított virtuális gép és osztálykönyvtár
CDC(Connected Device Configuration)
◦ „High end” PDA-k és telefonok, beltéri egységek, egyéb beágyazott rendszerek számára ◦ Teljes JVM specifikáció támogatása ◦ A Java SE kevesebb memóriával rendelkező készülékekre optimalizált változata
12
13
14
Szigorú memóriakorlátokhoz való igazodás A virtuális gép és az osztálykönyvtárak terén megszorítások (KVM virtuális gép, megszüntetett jellemzők) Szabványosítja a Java alkalmazások fejlesztését a korlátozott erőforrásokkal rendelkező eszközökön „Small Footprint” Alkalmazások fejlesztésére fókuszál Alkalmazások dinamikus letöltésének biztosítása
15
Kilo(byte) Virtual Machine: Tipikusan 16-32bites processzorok számára Minimális memóriaigény Erősen csonkított JVM Célja: „Minél gyorsabb, minél egyszerűbb, minél kisebb”
16
A CLDC biztosítja: Virtuális gép Java alapkönyvtárak (java.lang.*, java.util.*) Input / Output Hálózat elérés Biztonság Nemzetközi funkciók biztosítása
17
A CLDC NEM biztosítja: Alkalmzás életciklus menedzselése (telepítés, betöltés, törlés) Felhasználói felület Eseménykezelés High-level application model (the interaction between the user and the application) Ezeket a PROFILOK biztosítják!
18
Alacsonyszintű (VM) biztonság class-file verification segítségével ◦ Minden metódus ellenőrzésre kerül, pl. egy szerveren a készülékre töltés előtt ◦ Stack map attribútummal látja el az osztály metódusait, ez kb. 5% többlet méretet eredményez
Alkalmazás szintű biztonság
◦ „sandbox” modell ◦ Rendszer osztályok védelme ◦ Dynamic class loading korlátozás (csak a saját jar fájlból) 19
Lebegőpontos számábrázolás (float double) Reflexió Felhasználó által definiált osztálybetöltő Thread csoportok, daemon-threadek Finalization metódus Aszinkron kivételkezelés Szűkített Error osztálykészlet
20
Minimális hardver követelmények: Minimum 192k memória Min. 160k nem felejtő memória: KVM, CLDC library-k Min. 32k felejtő memória: KVM 16, vagy 32 bites processzor Alacsony energiafogyasztás (akkumulátor) Hálózati kapcsolat
21
Lebegőpontos támogatás ◦ Float, double
Újratervezett osztályok
◦ Calendar, Date, TimeZone
Hibajavítások Weakreference osztályok 160 kb => 192 kb
22
A konfigurációknál magasabb szintű API A konfigurációkra épülnek, azokat bővítik Alkalmazás életciklus modell Felhasználói interfész Tárolók támogatása Hálózati technológia támogatása Stb. A profilok egymásra rétegezhetők A profil(ok) a konfigurációval együttesen alkotja(ák) a J2ME futtató környezetet (JRE) 24
Mobile Information Device Profile (MIDP) ◦ Hálózat, UI, Local Storage ◦ A legnépszerűbb profil ◦ Wireless Java alapja
PDA Profile (PDAP)
◦ PDA-k számára készített profil
25
Foundation Profile
◦ Java 2 1.3 kiterjesztése a CDC számára ◦ Más profilokhoz alapként használható
Personal Basis Profile
◦ Alapvető UI funkciókkal való bővítés ◦ A Personal Profile nem biztosítja a több ablakos, komplex UI elemeket
Personal Profile
◦ Komplex, egyedi UI-k számára
RMI Profile Game profile
26
Minimális hardver követelmények: Megjelenítés ◦ 96x54, ff, 1:1 arányú pixelméret
•Adatbevitel
•Memória
Hálózat
Hang lejátszása
◦ Egy-vagy kétkezes billentyűzet, touchscreen ◦ 256k nem felejtő(a CLDC-n felül) ◦ 8k nem felejtő az alkalmazások számára ◦ 128k felejtő memória a Java runtime számára (heap) ◦ Kétirányú, vezeték nélküli, korlátozott sávszélesség
27
Minimális szoftver követelmények: Minimális kernel támogatás
◦ Megszakítások kezelése, ütemezés ◦ Nem felejtő memória elérése (Record Management System API) ◦ Hálózati funkciók (Networking API) ◦ Időmérés (Timer API)
Képernyőelérése Input eszköz elérése MIDlet életciklus támogatása
28
Secure Networking
Multimédia
Game API
◦ HTTPS, SSL
– Hang visszajátszás, hang képzés (Mobile Media API részhalmaza) ◦ Layer-ek, Sprite-ok
RGB Jogosultságok kezelése
◦ Trusted/untrustedcode, codesigning, certificateek 29
További bővítések a futtatókörnyezet számára, különféle igényeket elégítenek ki, pl.: ◦ Adatbázis kapcsolat ◦ Grafika ◦ Kommunikációs technológiák
Lehet konfiguráció független (CDC és CLDC támogatás is) vagy konfiguráció függő
31
Mobile Media API (MMAPI) (JSR-135) Location API for J2ME (JSR-179) SIP API forJ2ME (JSR-180) Wireless Messaging API (WMA) (JSR-120, JSR-205) Securityand Trust Services API for J2ME (JSR-177) Mobile 3D Graphics API for J2ME (JSR-184) Java API for Bluetooth (JSR-82) J2ME Web Services (JSR-172)
32
33