330 likes | 431 Views
Mobil Rendszerek Programozása. Léczfalvy Ádám leczfalvy.adam@nik.bmf.hu. A J2ME architektúrája. Tartalom. A Java család A J2ME architektúrája Konfigurációk Profilok Opcionális csomagok. A Java család. A Java ME célja.
E N D
Mobil Rendszerek Programozása Léczfalvy Ádám leczfalvy.adam@nik.bmf.hu A J2ME architektúrája
Tartalom • A Java család • A J2ME architektúrája • Konfigurációk • Profilok • Opcionális csomagok
A Java ME célja • 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
J2ME komponensei • 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: • meghatározzák egy készülékcsoport legalapvetőbb közös tulajdonságait • Profilok: • magasabb szintű csoportosítást tesznek lehetővé a konfigurációkon felül • Opcionális csomagok: • a készülékek egyedi, speciális funkciói számára
J2ME Profil Vertikális eszközcsoport (pl. telefonok) Konfiguráció Horizontális eszközcsoport, hasonló teljesítménybeli tulajdonságok, megszorítások
Konfigurációk • 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
Konfigurációk 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)
Konfigurációk • 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
J2ME konfigurációk alap jellemzői • CLDC(Connected Limited DeviceConfiguration) • 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(ConnectedDeviceConfiguration) • „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
A CLDC konfiguráció • 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 • „SmallFootprint” • Alkalmazások fejlesztésére fókuszál • Alkalmazások dinamikus letöltésének biztosítása
A CLDC konfiguráció 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”
A CLDC konfiguráció 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
A CLDC konfiguráció 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!
CLDC biztonság • 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)
A CLDC-ben megszüntetett JVM jellemzők • 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
CLDC 1.0 konfiguráció 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
CLDC 1.1 újításai • Lebegőpontos támogatás • Float, double • Újratervezett osztályok • Calendar, Date, TimeZone • Hibajavítások • Weakreference osztályok • 160 kb => 192 kb
Profilok alap jellemzői • 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)
Profilok - CLDC • 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
Profilok - CDC • 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
MIDP Minimális hardver követelmények: • Megjelenítés • 96x54, ff, 1:1 arányú pixelméret • •Adatbevitel • Egy-vagy kétkezes billentyűzet, touchscreen • •Memória • 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) • Hálózat • Kétirányú, vezeték nélküli, korlátozott sávszélesség • Hang lejátszása
MIDP 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
MIDP 2.0 újdonságai • SecureNetworking • HTTPS, SSL • Multimédia – Hang visszajátszás, hang képzés (Mobile Media API részhalmaza) • Game API • Layer-ek, Sprite-ok • RGB • Jogosultságok kezelése • Trusted/untrustedcode, codesigning, certificate-ek
Opcionális csomagok • 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ő
Néhány opcionális csomag • 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)