08 J2ME_alapok_v4

Embed Size (px)

Citation preview

  • 8/3/2019 08 J2ME_alapok_v4

    1/51

    BME-AAIT 2010 A Java ME Platform Alapjai 1

    A Java ME Platform Alapjai

    Budapesti Mszaki s Gazdasgtudomnyi Egyetem

    Automatizlsi s Alkalmazott Informatika Tanszk

    Ekler Pter

    [email protected]

    A Java ME Platform

    Alapjai

  • 8/3/2019 08 J2ME_alapok_v4

    2/51

    BME-AAIT 2010 A Java ME Platform Alapjai 2

    GyorskrdsMire szolgl a JSR-75?

  • 8/3/2019 08 J2ME_alapok_v4

    3/51

    BME-AAIT 2010 A Java ME Platform Alapjai 3

    Tartalom

    Bevezets

    A Java ME technolgia ltalnos ttekintse

    Java ME konfigurcik

    CDC CLDC

    Mobile Information Device Profile (MIDP)

    A fbb Java Specification Request (JSR)-ek bemutatsa

    MIDletek

    MIDlet letciklus

    Egyszer MIDlet ksztse

    sszefoglals

    Teszt

  • 8/3/2019 08 J2ME_alapok_v4

    4/51

    BME-AAIT 2010 A Java ME Platform Alapjai 4

    Bevezets A mobilkommunikci szerepe s piaca talakulbanvan:

    Multimdis anyagok (hang s vide) sszelltsa, elkldse,megtekintse

    Adatkommunikcit ignybevev zleti alkalmazsok

    Szrakoztat, mr-mr a kzi jtkkonzolok minsgtmegkzelt jtkok futtatsa

    j technolgik magtl rtetd alkalmazsa

    Mobil opercis rendszerek

    Platformfggetlen megolds mobil kszlkekre: JavaME

  • 8/3/2019 08 J2ME_alapok_v4

    5/51

    BME-AAIT 2010 A Java ME Platform Alapjai 5

    Demo I.

  • 8/3/2019 08 J2ME_alapok_v4

    6/51

    BME-AAIT 2010 A Java ME Platform Alapjai 6

    Platformfggetlen - Java Java ME szorosan kapcsoldik az opercis

    rendszerekhez

    Java alap alkalmazsok alapelve:

    Az opercis rendszerre pl a Java virtulis gp Az alkalmazsok ezen virtulis gpen keresztl rik

    el az opercis rendszer szolgltatsait

    A fentiekbl kvetkezik a platformfggetlensg

  • 8/3/2019 08 J2ME_alapok_v4

    7/51 BME-AAIT 2010 A Java ME Platform Alapjai 7

    A Java virtulis gp elhelyezkedse

  • 8/3/2019 08 J2ME_alapok_v4

    8/51 BME-AAIT 2010 A Java ME Platform Alapjai 8

    Tartalom

    Bevezets

    A Java ME technolgia ltalnos ttekintse

    Java ME konfigurcik

    CDC CLDC

    Mobile Information Device Profile (MIDP)

    A fbb Java Specification Request (JSR)-ek bemutatsa

    MIDletek

    MIDlet letciklus

    Egyszer MIDlet ksztse

    sszefoglals

    Teszt

  • 8/3/2019 08 J2ME_alapok_v4

    9/51 BME-AAIT 2010 A Java ME Platform Alapjai 9

    Java platformok

    Java platformok (cskken sorrendben): J2EE (Java Platform, Enterprise Edition)

    J2SE (Java Platform, Standard Editon)

    Java ME (Java Platform, Micro Editon) A Java ME platformot fknt begyazott

    eszkzkre val fejlesztshez talltk ki, mintpldul a PDA-k, mobil telefonok, stb.

    Java ME is szabvnyostott API (ApplicationProgramming Interface)-val rendelkezik

  • 8/3/2019 08 J2ME_alapok_v4

    10/51 BME-AAIT 2010 A Java ME Platform Alapjai 10

    Java technolgia elnyeiA Java ME platform biztostja a Java

    technolgia elnyeit mobil kszlkeken:

    Rugalmas felhasznli fellet

    Robosztussg

    Hlzati s off-line alkalmazsok tmogatsa

    Hlzati protokollok tmogatsa

  • 8/3/2019 08 J2ME_alapok_v4

    11/51 BME-AAIT 2010 A Java ME Platform Alapjai 11

    Java ME platform cljaLehetv teszi Java alkalmazsok

    futtatst korltozott kpessgkszlkeken:

    Kis kijelz Kevs memria

    Korltozott energiaellts

  • 8/3/2019 08 J2ME_alapok_v4

    12/51 BME-AAIT 2010 A Java ME Platform Alapjai 12

    Java technolgia fbb elemei

    CDC

    JVM JVM JVM

    Java 2 PlatformEnterprise

    Edition (J2EE)

    OptionalPackages

    Java 2 PlatformStandard Edition

    (J2SE)

    OptionalPackages

    FoundationProfile

    Personal Profile

    PersonalBasis Profile

    OptionalPackages

    CLDC

    KVM

    MIDP

    OptionalPackages

    Java Card

    Card VM

    Java 2 Platform Micro Edition

    Szerverek s

    vllalati gpek

    Szerverek s PC-k Fels kategris

    PDA-k, begyazotteszkzk

    Mobil telefonok,egyszerbb PDA-k

    Smart-krtyk

  • 8/3/2019 08 J2ME_alapok_v4

    13/51 BME-AAIT 2010 A Java ME Platform Alapjai 13

    Java platformok

    J2EE: a legbvebb platform mely leginkbbvllalati mret alkalmazsok fejlesztsrehasznlatos

    J2SE: ltalnos, desktop alkalmazsok, valamint

    appletek fejlesztsre hasznljk Java ME:

    Legszkebb API-val rendelkez platform

    Lecskkentette az API ltal biztostott funkcikat,

    hogy a mobil kszlkek legszlesebb skljnalkalmazhat legyen

  • 8/3/2019 08 J2ME_alapok_v4

    14/51 BME-AAIT 2010 A Java ME Platform Alapjai 14

    Java ME technolgiaA technolgia elemei:

    Konfigurcik

    Profilokat

    Opcionlis csomagok

    Ezen elemekbl pl fel a teljes Java

    futtatkrnyezet (JRE, Java RuntimeEdition) a mobil kszlkeken

  • 8/3/2019 08 J2ME_alapok_v4

    15/51 BME-AAIT 2010 A Java ME Platform Alapjai 15

    Tartalom

    Bevezets

    A Java ME technolgia ltalnos ttekintse

    Java ME konfigurcik

    CDC CLDC

    Mobile Information Device Profile (MIDP)

    A fbb Java Specification Request (JSR)-ek bemutatsa

    MIDletek

    MIDlet letciklus

    Egyszer MIDlet ksztse

    sszefoglals

    Teszt

  • 8/3/2019 08 J2ME_alapok_v4

    16/51 BME-AAIT 2010 A Java ME Platform Alapjai 16

    Java ME Konfigurcik Konfigurci:

    Virtulis gp

    Meghatrozott knyvtrhalmaz

    Az azonos konfigurcik biztostjk az egykategriba tatoz eszkzk szmra azalapfunkcionalitsokat: memria kezels, hlzatkezels, stb.

    Jelenleg kt konfigurci ltezik: CDC (Connected Device Configuration)

    CLDC (Connected Limited Device Configuration)

  • 8/3/2019 08 J2ME_alapok_v4

    17/51 BME-AAIT 2010 A Java ME Platform Alapjai 17

    CDC (Connected Device Configuration)

    Kt f szempont: A J2SE-vel val kompatibilits megtartsa

    Korltozott erforrssal rendelkez kszlkek tmogatsa

    Tmogatja a teljes Java virtulis gp specifikcit

    Osztly szinten a CDC a J2SE kevesebb memrivalrendelkez kszlkekre optimalizlt osztlyknyvtrthasznlja

    Flexibilis Java futtatkrnyezet, mely ~2MB RAM-mal s

    ~2MB ROM-mal gazdlkodik

  • 8/3/2019 08 J2ME_alapok_v4

    18/51 BME-AAIT 2010 A Java ME Platform Alapjai 18

    CLDC (Connected Limited Device Configuration) I.

    Telefonok szigor memriakorltaihozigaztottk

    Klnfle megszortsok a virtulis gp s

    az osztlyknyvtrak ternOsztlyknyvtrak sok esetben

    klnbznek a J2SE-tl

  • 8/3/2019 08 J2ME_alapok_v4

    19/51 BME-AAIT 2010 A Java ME Platform Alapjai 19

    CLDC (Connected Limited Device Configuration) II.

    Nincs lebegpontos tmogats Az Object.finalize() metdus hinyzik

    A hibakezels korltozott

    Natv kd nem hasznlhat

    Nincs lehetsg az osztlybetlts befolysolsra

    Vgrehajtsi szlak vannak, de szlcsoportok sdmonok nincsenek

    A gyenge hivatkozsok hinyoznak Az osztlyok ellenrzse eltren van megvalstva

  • 8/3/2019 08 J2ME_alapok_v4

    20/51 BME-AAIT 2010 A Java ME Platform Alapjai 20

    CLDC (Connected Limited Device Configuration) III.

    A J2SE-tl val klnbsgek mrjelentsnek nevezhetk

    Nagyobb tuds s nagyobb memrival

    rendelkez mobil kszlkek szmrakibvtettk a CLDC specifikcit

    1.1-es verziban mr tmogatottak a

    lebegpontos szmtsok, valaminthasznlhatk gyenge referencik

  • 8/3/2019 08 J2ME_alapok_v4

    21/51 BME-AAIT 2010 A Java ME Platform Alapjai 21

    Tartalom

    Bevezets

    A Java ME technolgia ltalnos ttekintse

    Java ME konfigurcik

    CDC CLDC

    Mobile Information Device Profile (MIDP)

    A fbb Java Specification Request (JSR)-ek bemutatsa

    MIDletek

    MIDlet letciklus Egyszer MIDlet ksztse

    sszefoglals

    Teszt

  • 8/3/2019 08 J2ME_alapok_v4

    22/51 BME-AAIT 2010 A Java ME Platform Alapjai 22

    MIDP (Mobile Information Device Profile) I.

    A CLDC-vel egytt nevezzk a Java mobileszkzkre val futtatkrnyezetnek(JRE)

    A MIDP s a CLDC egytt dinamikus sbiztonsgos platformot definil

    Segtsgvel olyan alkalmazsok rhatk,

    melyek a korszer mobil kszlkekrevannak optimalizlva

  • 8/3/2019 08 J2ME_alapok_v4

    23/51 BME-AAIT 2010 A Java ME Platform Alapjai 23

    MIDP (Mobile Information Device Profile) II.

    A grafikus felhasznli felletet a mobilkszlkekhez igaztottk:

    Kis mret kijelz

    Korltozott kpessg beviteli eszkzk

  • 8/3/2019 08 J2ME_alapok_v4

    24/51 BME-AAIT 2010 A Java ME Platform Alapjai 24

    MIDP hardware kvetelmnyek

    A kijelzvel szemben tmasztott minimlis kvetelmnyek: 96x54-esfelbonts, 1 bit-es sznmlysg, kzel ngyzet alak pixel Legalbb egy felhasznli input eszkzk meglte a kvetkezk

    kzl: egykezes billentyzet, ktkezes billentyzet, rintkperny

    256 kB nem felejt memria a MIDP-nek ezenkvl 8 kB memria azalkalmazsoknak

    128 kB felejt memria (heap) Hlzattal szemben tmasztott kvetelmnyek: ktirny rdis

    csatorna, korltozott svszlessg

    Hang kezelssel szemben tmasztott kvetelmnyek: hangoklejtszsra alkalmas HW eszkz vagy valamilye SW algoritmus

  • 8/3/2019 08 J2ME_alapok_v4

    25/51

    BME-AAIT 2010 A Java ME Platform Alapjai 25

    Demo II.

  • 8/3/2019 08 J2ME_alapok_v4

    26/51

    BME-AAIT 2010 A Java ME Platform Alapjai 26

    MIDP software kvetelmnyek I. Eszkzk szoftverei sok esetben igen komolyan

    eltrnek egymstl

    Nhny mobil eszkz teljes opercis

    rendszerrel, multiprocesszing tmogatssal shierarchikus fjlstruktrval rendelkezik, mgms eszkzk kis, szlalap opercisrendszerrel rendelkeznek, fjlrendszer nlkl

  • 8/3/2019 08 J2ME_alapok_v4

    27/51

    BME-AAIT 2010 A Java ME Platform Alapjai 27

    MIDP software kvetelmnyek II.

    Minimlis kernel, amely kezeli a hardvert (megszaktsok, kivtelek,minimlis temezs) A kernel alkalmas legyen legalbb egy virtulis gp futtatsra

    A kszlk szoftvere biztostsa a nem felejt memribl a valolvass, illetve az oda trtn rs lehetsgt

    Olvassi s rsi hozzfrs az eszkz rdis hlzati kapcsolatnkeresztl

    Idkezels

    Minimlis bitmap megjelentsi kpessg a grafikus kijelzn

    Legalbb 1 input eszkz kezelse a korbban felsoroltak kzl

    Az alkalmazs letciklusnak kezelse

  • 8/3/2019 08 J2ME_alapok_v4

    28/51

    BME-AAIT 2010 A Java ME Platform Alapjai 28

    Tartalom

    Bevezets

    A Java ME technolgia ltalnos ttekintse

    Java ME konfigurcik

    CDC CLDC

    Mobile Information Device Profile (MIDP)

    A fbb Java Specification Request (JSR)-ek bemutatsa

    MIDletek

    MIDlet letciklus Egyszer MIDlet ksztse

    sszefoglals

    Teszt

  • 8/3/2019 08 J2ME_alapok_v4

    29/51

    BME-AAIT 2010 A Java ME Platform Alapjai 29

    Optional packages - JSR

    A CLDC s MIDP fltt helyezkednek el a JSR-ek

    A kszlkekben tallhat klnfle funkcikat

    teszik elrhetv a Java virtulis gpen(bluetooth, filerendszer, stb.)

    Az opcionlis csomagokkal kibvtve a Java MEplatform jobban ki tudja hasznlni az adott

    kszlk kpessgeit

  • 8/3/2019 08 J2ME_alapok_v4

    30/51

    BME-AAIT 2010 A Java ME Platform Alapjai 30

    JSR 82 - Bluetooth API

    Szolgltatsok regisztrlsa Kszlkek s szolgltatsok keresse

    Kapcsolat ltrehozsa RFCOMM, L2CAP, sOBEX(Object Exchange) alapokon

    Adatok kldse s fogadsa Kapcsolatok felgyelete

    Biztonsg szavatolsa a fent felsorolt szolgltatsokra

    Bluetooth Control Center(BCC) elklnti azalkalmazsok csatorna-hasznlatt

  • 8/3/2019 08 J2ME_alapok_v4

    31/51

    BME-AAIT 2010 A Java ME Platform Alapjai 31

    JSR 135 - Mobile Media API

    Hangok s zenk (pl.: mp3) lejtszsa,felvtele

    Videk lejtszsa s felvtele

    Kpek megjelentse s mentse akamerrl

  • 8/3/2019 08 J2ME_alapok_v4

    32/51

    BME-AAIT 2010 A Java ME Platform Alapjai 32

    JSR 172 - Web service API

    Webszolgltatsok elrse mobilkszlkekrl

    Fejlesztkrnyezetek ltal tmogatott

    kdgenertor a hlzati kapcsolatelfedsre

    Nem tmogatja a webszolgltatsok

    nyjtst

  • 8/3/2019 08 J2ME_alapok_v4

    33/51

    BME-AAIT 2010 A Java ME Platform Alapjai 33

    JSR 75 - FileConnection API

    Tmogatja a mobil kszlkfjlrendszernek elrst

    Knyvtrak kezelse

    Fjlok ltrehozsa, trlse, rsa solvassa

    Nincs vletlen fjl elrs, a fjlokat csakInput- s OutputStream-eken rhetjk el

  • 8/3/2019 08 J2ME_alapok_v4

    34/51

    BME-AAIT 2010 A Java ME Platform Alapjai 34

    JSR 75 PIM API

    Contactok elrsCalendar elrse

    TODO lista

  • 8/3/2019 08 J2ME_alapok_v4

    35/51

    BME-AAIT 2010 A Java ME Platform Alapjai 35

    JSR 226 - SVG API

    SVG tmogats

  • 8/3/2019 08 J2ME_alapok_v4

    36/51

    BME-AAIT 2010 A Java ME Platform Alapjai 36

    Tartalom

    Bevezets

    A Java ME technolgia ltalnos ttekintse

    Java ME konfigurcik

    CDC CLDC

    Mobile Information Device Profile (MIDP)

    A fbb Java Specification Request (JSR)-ek bemutatsa

    MIDletek

    MIDlet letciklus Egyszer MIDlet ksztse

    sszefoglals

    Teszt

  • 8/3/2019 08 J2ME_alapok_v4

    37/51

    BME-AAIT 2010 A Java ME Platform Alapjai 37

    Telepts

    JDK

    NetBeans 6.8 (mobility pack, Java MESDK 3.0 (emultor))

    3.0 helyett Java ME WTK 2.5.2

    www.netbeans.org

    http://www.netbeans.org/http://www.netbeans.org/http://www.netbeans.org/http://www.netbeans.org/http://www.netbeans.org/
  • 8/3/2019 08 J2ME_alapok_v4

    38/51

    BME-AAIT 2010 A Java ME Platform Alapjai 38

    MIDlet

    A MIDP krnyezetben fut Javaalkalmazsokat MIDleteknek nevezzk

    A MIDleteket egy alkalmazsmanager

    (AMS) kezeli

    Egy MIDletnek hrom llapota van: Active,Paused, Destroyed

  • 8/3/2019 08 J2ME_alapok_v4

    39/51

    BME-AAIT 2010 A Java ME Platform Alapjai 39

    MIDlet letciklus modell

  • 8/3/2019 08 J2ME_alapok_v4

    40/51

    BME-AAIT 2010 A Java ME Platform Alapjai 40

    MIDlet vzimport javax.microedition.midlet.*;

    import javax.microedition.lcdui.*;

    public class HelloMidlet extends MIDlet

    {

    public void startApp() {

    }

    public void pauseApp() {

    }

    public void destroyApp(boolean unconditional) {}

    }

  • 8/3/2019 08 J2ME_alapok_v4

    41/51

    BME-AAIT 2010 A Java ME Platform Alapjai 41

    Egyszer MIDlet kszts I. Els lpsknt a packag-ek importolsaszksges:import javax.microedition.midlet.*;

    import javax.microedition.lcdui.*;

    Szrmazs a MIDleta CommandListenerinterfsz implementlsa, mely a felhasznlltal kiadott parancsok kezelsrt felels:

    public class HelloMidlet extends MIDlet implementsCommandListener

  • 8/3/2019 08 J2ME_alapok_v4

    42/51

    BME-AAIT 2010 A Java ME Platform Alapjai 42

    Egyszer MIDlet kszts II. Ezt kveti a szksges vltozk konstruktorbantrtn inicializlsa:private Form form;

    private Display display;

    private Command exitCommand;

    public HelloMidlet()

    {

    form = new Form("Hello");

    display = Display.getDisplay(this);

    exitCommand = new Command("Exit", Command.SCREEN,1);

    }

  • 8/3/2019 08 J2ME_alapok_v4

    43/51

    BME-AAIT 2010 A Java ME Platform Alapjai 43

    Egyszer MIDlet kszts III.

    Az alkalmazs astartApp()

    metdus meghvsval indul, melybenhozzadjuk a megjelentst megvalsto Form-hoz azesemnykezelt s egy szvegelemet, illetve megjelentjk akijelzn a Form-ot:

    public void startApp()

    {

    form.addCommand(exitCommand);

    form.setCommandListener((CommandListener)this);

    form.append(new StringItem("Hello", "HelloWorld!"));

    display.setCurrent(form);}

  • 8/3/2019 08 J2ME_alapok_v4

    44/51

    BME-AAIT 2010 A Java ME Platform Alapjai 44

    Egyszer MIDlet kszts IV. Vgl szksgnk van mg a felhasznl ltal kldtt parancsok

    (menk) feldolgozst vgz fggvnyre, mely esetnkben csupn akilps menpont megvalstsrt felels:

    public void commandAction(Command command,Displayable screen)

    {

    if ( command == exitCommand ){

    destroyApp(true);

    notifyDestroyed();

    }

    }

  • 8/3/2019 08 J2ME_alapok_v4

    45/51

    BME-AAIT 2010 A Java ME Platform Alapjai 45

    Az elkszlt MIDlet

  • 8/3/2019 08 J2ME_alapok_v4

    46/51

    Szlkezels Java ME platformon

    Blokkold mveletek (hlzatkezels, filekezels, stb.) mindig a UI-tl klnbzszlban fussanak!

    class MyJob extends Thread {

    public void run()

    {

    // feladat vgrehajtsa akr ciklusban

    }

    }

    // meghvs kvlrl

    new MyJob(/*esetleges paramterek*/).start();

    BME-AAIT 2010 A Java ME Platform Alapjai 46

  • 8/3/2019 08 J2ME_alapok_v4

    47/51

    BME-AAIT 2010 A Java ME Platform Alapjai 47

    Tartalom

    Bevezets

    A Java ME technolgia ltalnos ttekintse

    Java ME konfigurcik

    CDC CLDC

    Mobile Information Device Profile (MIDP)

    A fbb Java Specification Request (JSR)-ek bemutatsa

    MIDletek

    MIDlet letciklus Egyszer MIDlet ksztse

    sszefoglals

    Teszt

  • 8/3/2019 08 J2ME_alapok_v4

    48/51

    BME-AAIT 2010 A Java ME Platform Alapjai 48

    sszefoglals

    Java ME technolgia: Konfigurcik (CDC/CLDC)

    Profilok (MIDP)

    Kiegsztsek (JSR)MIDlet: A MIDP krnyezetben fut Java

    alkalmazs

    MIDlet letciklus: Active, Paused,Destroyed

  • 8/3/2019 08 J2ME_alapok_v4

    49/51

    BME-AAIT 2010 A Java ME Platform Alapjai 49

    Tartalom

    Bevezets

    A Java ME technolgia ltalnos ttekintse

    Java ME konfigurcik

    CDC CLDC

    Mobile Information Device Profile (MIDP)

    A fbb Java Specification Request (JSR)-ek bemutatsa

    MIDletek

    MIDlet letciklus Egyszer MIDlet ksztse

    sszefoglals

    Teszt

  • 8/3/2019 08 J2ME_alapok_v4

    50/51

    BME-AAIT 2010 A Java ME Platform Alapjai 50

    Teszt

    1. Mi a Java platformfggetlensg alapja?2. Milyen Java platformok lteznek?

    3. Mit neveznk MIDletnek?

    4. Rajzolja fel a MIDlet letciklus modellt!

  • 8/3/2019 08 J2ME_alapok_v4

    51/51

    Krdsek