1 / 45

Java i nosivo računarstvo

SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA. Java i nosivo računarstvo. Dipl.ing. Marko Horvat. Predavanje u sklopu predmeta “Mikroračunala”. Nosivo računarstvo. “Java i prožimajuće računarstvo” ali zbog fokusa na SW sadržaj za mobitele ipak “...nosivo...”

niles
Download Presentation

Java i nosivo računarstvo

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Java i nosivo računarstvo Dipl.ing. Marko Horvat Predavanje u sklopu predmeta “Mikroračunala”

  2. Nosivo računarstvo • “Java i prožimajuće računarstvo” • ali zbog fokusa na SW sadržaj za mobitele ipak “...nosivo...” • Dva srodna termina: • Wearable computing = nosivo računarstvo • Pervasive computing, Ubiquitous computing = prožimajuće računarstvo • Nosiva računala... • uvijek rade, tj. uvijek su spremna za interakciju sa korisnikom • korisnik ih ne koristi direktno, ona povećavaju njegovu inteligenciju ili mogućnosti osjetila • enkapsuliraju korisnika (bolje od laptopova, PDA uređaja) • Sinergija čovjeka i računala • 6 svojstava nosivog računala: • ne limitiraju korisnika, ne preuzimaju njegovo vrijeme, podaci sa njih su jasno vidljivi, korisnik im lako upravlja, komuniciraju sa okolinom, komuniciraju sa drugim sustavima/korisnicima

  3. Prožimajuće računarstvo • 2 karakteristike sistema prožimajućeg računarstva: • fizička integracija • u pametnoj sobi sa zastanke: pametna šalica za kavu (Javu?) zna tko je njezin vlasnik, može pružiti određene servise; pametne stolice, stol, ploča (whiteboard) opremljene senzorima, moguće ih je umrežiti sa PDAovima sudionika sastanka – automatski prenos sadržaja ploče u PDA • spontana interoperacija • u dinamičnoj okolini koja se mijenja sustavi se međusobno spontano udružuju u mreže, omogućuju prenos i korištenje različitih podataka • otac prožimajućeg računarstva • Mark Weiser, chief technology officer u Xeroxovim laboratorijima (Paolo Alto) – mjesto odakle je potekao osobno računalo, GUI, intranet • ideje (a i realizaciju) njihovih proizvode kopirao je Steve Jobs (Mac), a kasnije njega je kopirao Bill Gates (Microsoft)

  4. Nosivo računarstvonekada…

  5. Danas Digitalni ručni satovi Ručna računala, dlanovnici, PDA (Personal Digital Assistans), Palm, Visor – PalmOS, Windows CE

  6. Danas (2) Siemens SL45i – Java ME, MP3, 128 MB RAM, ... Nokia 9xxx Communicator – Symbian OS, Personal Java, Java ME, mobitel i ručno računalo, ... Nosivo računalo u upotrebi u američkoj vojsci na nosačima aviona – brz pregled nacrta, planova, TODO lista, ... Transmeta Wearable Computer – nosi se oko pojasa

  7. Nosivo računarstvo sutra? • kao i općenito u računalstvu: • dimenzije uređaja će biti još manje, a mogućnosti još veće • ali prag omjera dimenzija i mogućnosti prenosnih računala već je prijeđen • npr. ručna računala (Palm, Visor), napredni mobiteli – “više klase” • kako će cijene padati, i potražnja tržišta rasti, u skoroj budućnosti vidjeti ćemo sve više “jakih” i korisnih nosivih računalnih uređaja • taj trend je već sada vidljiv... • za taj povećani broj mobilnih uređaja potrebno je napraviti kvalitetni softwarski sadržaj • potrebni su napredni programski jezici u kojima se može što brže napraviti što kvalitetniji SW proizvod!

  8. Zašto Java i nosivo računarstvo? • Java je veoma dobar (najbolji?) odabir za sustave nosivog računarstva • Jer Java je... • prenosiv jezik - radi na mnogim platformama • stvara male izvršne datoteke - od nekoliko kB naviše • raširen je i visoko korišten • jednostavan za upotrebu i programiranje • A također je i... • objektan - jednostavno je skalirati, proširivati programe • distribuiran - korištenje mrežnih protokola je ugrađeno u Javu • robustan - potpora za hvatanje i obradu grešaka i iznimaka • siguran, višenitan (višedretven), dinamičan, ... • Najbitnije je da proizvođači uređaja podrže Javu • bez toga nije važno koliko je Java dobra, ili ne... • broj mobitela koji podržavaju Javu u zadnje vrijeme rapidno raste

  9. Programski jezik Java

  10. Uvod • Programski jezik Java je proizvod američke računalne tvrtke Sun • Tvrtka i dan danas ima isključivo pravo na izmjene jezika i njegove arhitekture • dobiven spor sa Microsoftom i njegovom verzijom Jave kao još jednog jezika za programiranje Windowsa • Razvoj jezika pokrenut je 1991., a završen 1995. • Danas aktuelna verzija Jave nastala je 1997. i od tada se razvija dalje

  11. Uvod (2) • Osnova misao vodilja: multiplatformski programski jezik • jednostavan i visokih mogućnosti • Osnovno: Java programski kod se komapajlira u byte-code (međukod) i interpretira na Java Virtual Machine (JVM, Javin virtualni stroj) • .java datoteke • datoteke sa izvornim kodom • .class datoteke • datoteke sa kompajliranim izvornim kodom • Javine “izvršne” datoteke • interpteriraju se, “izvršavaju” na Javinom virtuelnom stroju • Slično je napravljena Microsoftova .NET platforma  Hello World aplikacija

  12. Arhitektura Java bajt kod (neovisan o platformi) Java izvorni kod Java interpreter (Windows) Java kompilator (Windows) Java interpreter (Mac) Java kompilator (Mac) Java kompilator (Solaris) Java interpreter (Solaris)

  13. Javine verzije i tehnologije • 3 osnovne verzije: • J2EE (Java 2 Enterprise Edition) • J2SE (Java 2 Standard Edition) • J2ME (Java 2 Micro Edition) • I veliki, veliki broj tehnologija… • Za J2EE: Enterprise JavaBeansTM Architecture, JavaServer PagesTM, JavaTM Servlet, Java Naming and Directory InterfaceTM (JNDI), JavaTM IDL, JDBCTM, JavaTM Message Service (JMS), JavaTM Transaction (JTA), JavaTM Transaction Service (JTS), JavaMail, RMI-IIOP • Za J2SE: JavaBeansTM Development Kit (BDK), Java HotSpotTM Server Virtual Machine, Collections Framework, JavaTM Foundation Classes (JFC), Swing Components, Pluggable Look & Feel, Accessibility, Drag and Drop, Security, JavaTM IDL, JDBCTM, JavaBeansTM, Remote Method Invocation (RMI), Java 2DTM, JavaTM Platform Debugger Architecture (JPDA) • Consumer & Embedded Technologies & Products: Java 2 Platform, Micro Edition (J2METM technology), Connected Device Configuration (CDC), Connected Limited Device Configuration (CLDC), C Virtual Machine (CVM), K Virtual Machine (KVM), PersonalJavaTM, EmbeddedJavaTM, Java CardTM, JavaPhoneTM API, Java TVTM API, JiniTM Network Technology, Mobile Information Device Profile (MIDP) • I druge… • Da li je moguće sve znati?

  14. Povijesni razvoj • Razvoj pokrenut na zasebnoj lokaciji početkom 1991. • U sklopu razvoja projekata za komercijalnu elektroniku • Za programiranje mikroprocesora televizora, video-uređaja, glazbenih linija, mikrovalnih pećnica, tostera, strojeva za pranje rublja, ... • Tražio se jedinstveni računalni jezik koji će se izvršavati na različitim tipovima mikroprocesora • Projekt Green i programski jezik Oak (hrast) • James Gosling – nakon neuspješnog prilagođavanja C++ zbog prevelike složenosti odlučio napraviti novi jezik • Uzeti osnove C-a i prilagoditi za elektroničke uređaje • “C++ minus minus” • započevši rad na kompajleru otvarao je novi direktorij, nije znao kako da ga nazove, pogledao je van kroz prozor i vidio hrast...

  15. Povijesni razvoj (2) • U Oaku su pisane aplikacije za PDA uređaj * 7 (“star seven”) • *7 je redosljed tipaka na telefonu koje se treba pritisnuti da se u Sunovom sjedištu preuzme poziv sa drugog telefona • *7 je koristio operativni sustav GreenOS koji je imao animirano grafičko sučelje • Duke (Javina maskota) • sve što je ostalo od *7 ... Primjer: Duke MIDlet • Za Demonstraciju mogućnosti Oaka na World Wide Webu Sun je razvio aplikaciju WebRunner • kasnije pretraživač HotJava • Program napisan u Javi koji je mogao pokretati druge programe napisane u Javi • Uvelike popularizirao Javu

  16. Povijesni razvoj (3) • Debut 23. svibnja 1995. na sajmu SunWorld ’95 • 4 godine nakon početka razvijanja projekta • Verzija 1.0 - siječanj 1996. • Konačna verzija Jave • Sve klase moguće je sažeti u jednu ili više ZIP datoteka (JAR – Java Archive). Time se ubrzava dohvaćanje Java programa i appleta sa Interneta. • Verzija 1.0.2 – svibanj 1996. • Otklonjeni neki sigurnosni problemi • Verzija 1.1 – siječanj 1997. • Uvedene Listener klase za registriranje događaja • Još uvijek aktualna u najnovijim verzijama važnijih Internet browsera: IE i NC

  17. Povijesni razvoj (4) • Verzija 1.2 • Swing klase –za izradu naprednih grafičkih korisničkih sučelja • Nazvana (kao i sve kasnije verzije) “Java 2” • Verzija 1.3 • Verzija 1.4 • Razvoj se nastavlja...

  18. Mogućnosti i svojstva • “Java je jednostavan, objektno-orijentiran, distribuiran, interpretiran, robustan, siguran, prenosiv, visokoučinkovit, višenitan i dinamički programski jezik” – Sunova službena dokumentacija • Jednostavnost • Jednostavna sintaksa, Java je laka za učenje, “pojednostavljeni C” • nema pokazivača (pointera) • nije moguće direktno čitati, ili pisati po memoriji • upravljanje memorijom je automatsko • Garbage collector čisti memoriju umjesto dekonstruktora klasa • goto ključna riječ, ali zabranjena uporaba • Objektna orijentiranost • Osnovni element građenja programa u Javi je klasa • Samo neki najjednostavniji tipovi podataka (int, char, boolean) nisu objekti • Distribuiranost • Jednostavna uporaba mrežnih protokola (TCP/IP, FTP, HTTP)

  19. Mogućnosti i svojstva (2) • Prenosivost i interpretiranje – izvorni kod se kompajlira, prevodi u byte-code i interpetira na Javinom virtuelnom stroju • JVM (Java Virtual Machine) – osnovni dio arhitekture • Robusnost – ugrađena potpora za hvatanje i obradu iznimaka • try...catch...finally blokovi • Sigurnost – koristi Java Sandbox – zabranjen direktni pristup memoriji, pokušaji kršenja prava pristupa datotekama na disku, nepravilnih pretvaranja među tipovima podataka, ... • Višenitnost (višedretven, multi-threaded) – korištenje dretvi je ugrađeno u Javu • Dinamičnost – programi pisani u Javi ponašaju se dinamički • jednostavno dodavanje novih objekata, dijelova postojećim Java programima

  20. Pozitivne strane Jave • Što Java daje programeru? • Dosta pozitivnih stvari, nekoliko negativnih! • Pozitivne: • dosad nabrojana mogućnosti i svojstva • brza i jednostavna realizacija (kodiranje) • široko tržište • Java je široko korištena na serverskoj strani (servleti i JSP – Java Server Pages) • široke mogućnosti primjene • multiplatformnost, raznolikost, velike mogućnosti objektno orjentiranog jezika • dobra mogućnost unovčavanja znanja programera...

  21. Negativne strane Jave • Negativne: • sporost u nekim primjenama • prvenstveno GUI i desktop aplikacije • fleksibilni programi širih mogućnosti zahtjevaju upotrebu (znanje) mnogih Javinih tehnologija • JNI (Java Native Interface) za sistemske pozive OS-a • JavaComm za rad sa serijskim i paralelnim izlazima računala • ograničena rasprostranjenost • operativni sustav, mobilni telefon, uređaj mora imati potporu za JVM • ograničene mogućnosti • zbog sigurnosti i specifikacije uređaja na kojima se izvode

  22. Primjeri •  Primjeri: Java •  Hello World aplikacija •  Hello Worldapplet •  Hello World aplikacija sa objektima •  Prikaz mrežne komunikacije •  Primjeri: Java 2 i Swing •  Frame applet •  JFileChooser applet •  JTree applet •  BasicTextEditor •  MDI primjeri

  23. J2ME

  24. Uvod • Java 2 Micro Edition = “Mikro verzija” Jave • Java namijenjena malim i mobilnim uređajima • poseban skup funkcija (Java API) i JVM isključivo za upotrebu na uređajima sa malim procesorkim i memorijskim kapacitetima • Ima sva svojstva jezika Java • sintaksa, jednostavnost, objektnost, distribuiranost, višedretvenost, robusnost, sigurnost, ... • Trenutno idealna solucija za implementaciju nosivog računarstva!

  25. J2ME konfiguracije • Konfiguracija = skup pravila koja određuju grupu uređaja za koje je namijenjen određeni Java virtualni stroj • Postoje dvije J2ME konfiguracije: • CLDC • CDC

  26. CLDC konfiguracija • CLDC = Connected Limited Device Configuration • izvršava se na K-virtuelnom stroju (K Virtual Machine, KVM) • podržava ograničen skupa Java 2 funkcija • namijenjen malim uređajima sa ograničenim resursima • mobilni telefoni • PDA (Personal Digital Assistants) • bankomati, ... • ograničenja: • 16/32 bitni mikroprocesor/kontroler • 160 KB ukupne memorije, 128 KB ROM, 32 KB RAM • 9600 bps bandwidth • koristi se na uređajima (mobitelima) sa podrškom za J2ME!

  27. CDC konfiguracija • CDC = Connected Device Configuration • izvršava se na C-virtualnom stroju (C Virtual Machine, CVM) • podržava cjelokupnu Javu 2 • namijenjen široj paleti uređaja, potrošačke elektronike • smart communicators (napredni mobilni telefoni) • pageri • PDA • uređaji za digitalnu televiziju, ... • ograničenja: • 32 bitni mikroprocesor/kontroler • preko 2 MB ukupne memorije • ne koristi se! (još) • još je u fazi nacrta/prijedloga • CLDC je jedina u praksi implementirana J2ME konfiguracija • mobiteli koji podržavaju J2ME implementiraju isključivo CLDC konfiguraciju

  28. Java verzije i konfiguracije

  29. MIDP • MID = Mobile Information Device • MIDP = MID Profile • Profil = skup pravila i uvjeta koji dodatno (strože) definiraju pravila iz J2ME konfiguracije • MID profil je baziran isključivo na CLDC konfiguraciji

  30. Sun J2ME software paket • http://java.sun.com/j2me/ • SW paket namijenjen programerima (developerima) za razvoj J2ME aplikacija, tj. MIDleta • sadrži J2ME klase, kompilator, J2ME JVM, sustav pomoći, J2ME emulatore (simulatore mobilnih telefona sa podrškom za J2ME) i ostale alate potrebne za razvoj J2ME koda • može se integrirati sa nekim razvojnim alatima: Sun Forte, Borland JBuilder • Aktuelna verzija J2ME 1.0.3

  31. J2ME emulator • “J2ME simulator” • Izvodi J2ME program i simulira njegovo ponašanje na pravom uređaju (npr. mobilnom telefonu) • Podržava (simulacijom) sve funkcije pravog mobilnog uređaja (mobitela) • Nalazi se u Sunovom J2ME software paketu, ili se isporučuje od proizvođača mobilnih telefona sa podrškom za J2ME (npr. Siemens, Nokia)

  32. Primjeri J2ME emulatora

  33. Mobilni uređaji sa podrškom za J2ME • Mobiteli: • Siemens: SL45i, SL45 (sa nadogradnjom SW), M50 • Nokia: 3410, 6310i, 7210, 7650, 9210 i 9290 (MIDP i PersonalJava) • Motorola: i85s, i50sx, Accompli 008/6288, i55sr, i80s, i90c • Samsung: SCH-X130, SCH-x350, SPH-I300 • Casio: CdmaOne C452CA • LG: p510, p520 • Hitachi: CdmaOne C451H • J-Phone, Kyrocera, Sendo, Danger, DoCoMo (preko 10 modela) • PDA: • PalmOS, Windows CE 2.11, EPOC (netBook), Psion 5mx, SAVAJE XE, BlackBerry, Symbian • Dobre vijesti: podugačak popis koji se sve više proširuje...

  34. MIDlet • MIDlet • “Mobile Information Device Application” • “applet za MID” • MIDlet je J2ME aplikacija/program • Svi MIDleti koriste sužen skup Java 2 funkcija • CLDC konfiguracija i MID profil • Dostavlja se: • u JAR (Java Archive) datoteci i sa JAD (Java Definition) datotekom • Samo JAD datoteka, a JAR se kasnije downloadira sa Interneta • JAR sadrži sve izvršne .class datoteke i ostalo (slike, konfig. datoteke, ...) • JAD opisuje gdje se JAR nalazi, koliko je velik, kako se MIDlet zove, ... • ako imamo samo JAD datoteku JAR datoteka će se prije izvođenja MIDleta automatski skinuti sa interneta  Primjer: MIDlet pozdrav

  35. Razvojni ciklus MIDleta • Termini i postupci specifični za J2ME: • predprovjera (preverifying) • JAD datoteke (Java Definition File) • emulator • Nakon kompajliranja .class datoteke se predprovjeravaju • Traže se reference na klase koje MIDP ne podržava • KVM ne mora provjeravati klase i može biti manji i kompaktniji • Nakon predprovjere .class datoteke se pakiraju u jednu JAR datoteku (JAR datoteke su ZIP formata –> WinZip, WinRAR) • Korak nije obavezan

  36. Razvojni ciklus MIDleta (2) • JAD datoteka mora se napraviti ručno, ili iz J2ME SW paketa (KToolbar aplikacija) • Sadrži aplikacije koje opisuju JAR, njegov naziv i veličinu u bajtovima; naziv i lokaciju MIDleta (Internet, hard disk); koliko je MIDleta u JARu; koja je verzija MIDleta, tko isporučuje MIDlet • JAD datoteka je tekstualna datoteka • Za kompajliranje i pakiranje se koristi Java 2 kompajler i aplikacija za pakiranje (javac.exe, jar.exe) • Za preprovjeru i emulaciju koriste se J2ME aplikacije (preverify.exe, emulator.exe)  Primjer 1: JAD, JAR i manifest (MF) datoteke  Primjer 2: kompajliranje, predprovjera, emulacija

  37. Prikaz • Ovisi o veličini ekrana, rezolucijama i mogućnosti prikaza boja • J2ME omogućuje zadovoljavajući mehanizam prikaza grafike i tekstualnih poruka • ovisno o potrebi moguće je poboljšati prikaza vlastitim klasama • Važnije J2ME klase za prikaz: Display Displayable Canvas Screen Alert Form List TextBox  Primjer: MIDletCanvas pozdrav

  38. Grafika • Grafičke mogućnosti naravno variraju od modela do modela • Grafika u boji (256 boja) ili crno-bijela (2 boje); crno-žuta (SL45i) • Rezolucija... • Procesorske mogućnosti ograničavanju veće grafičke (3D) proračune • treba obratiti pažnju na kvalitetu animacije (broj slika u sekundi; fps) • Mogu se koristiti slike, ali isključivo u PNG formatu • paziti na bandwidth i download time • Klasa Graphics • sadrži metode za ispis teksta, crtanje točke, linije, pravokutnika, dijela kružnice, za popunjavanje istih bojom, za manipulacijom bojama (RGB komponentama), itd. • sužen skup mogućnosti i metoda u usporedbi sa Java2 klasom Graphics • Primjer: Graphics, Amark, TravelingGecko

  39. Korisničko sučelje (UI) • Dozvoljeno je korištenje gumbi, labela, polja za unos teksta (lozinki, brojki, email adrese, URL adrese, telefonskog broja), lista (grupa lista, check boxova, radio buttona) progress barova, modalnih i nemodalnih poruka, kontrola kalendara i sata, slika i pomičnog teksta (Ticker) • Mogućnosti su prilično velike • Relevantne klase i sučelja: Alert, AlertType, Choice, ChoiceGroup, Command, DateField, Gauge, ImageItem, List, StringItem, TextBox, TextField, Ticker  Primjer: UIDemo

  40. Rad sa datotekama i mrežom • Jedno od najvećih prednosti J2ME i MIDleta je lak i jednostavan rad sa mrežom, mrežnim protokolima i resursima • i npr. sa ugrađenim modemom, serijskim portom, Bluetooth uređajem • Od početka (J2ME 1.0.1) podržan je HTTP protokol • J2ME 1.0.3 podržava i druge načine mrežnog prijenosa podataka: socket, datagram, file, port • http://www.j2me.com/ • socket://www.j2me.com:1800 • datagram://1800 • file:/j2me.txt • comm:0;baudrate=9600 • mobiteli još ne podržavaju J2ME 1.0.3

  41. Rad sa datotekama i mrežom (2) • Kako komunicirati sa serverom? Kako server može komunicirati sa mobitelom? • pomoću “najobičnijeg” HTTP GET http://www.j2me.com/cgi?a=1&b=1 http://www.j2me.com/servlet?a=1&b=1 • Relevantne klase i sučelja: Connector, Connection, Datagram, DatagramConnection, DataInput,DataOutput, DataInputStream, ...  Primjer: Fortune

  42. OEM-ekstenzije • OEM-ekstenzije su dodatan skup J2ME klasa, sučelja i pripadajućih metoda koje se naslanjaju na CLDC konfiguraciju, MID profil i proširuju njihove mogućnosti  Primjer: Siemens J2ME API Help • Siemensove OEM-ekstenzije omogućuju slanje SMS-a (uz potvrdu korisnika), uspostavljanje poziva, korištenje vibre, upotrebu dijela phonebooka (zbog sigurnosti), slanje i primanje podataka (SMS, IrDA, serijska veza, modem), komponiranje i sviranje melodija, lakši rad sa grafikom i animacijama • Svoje OEM-ekstenzije nude i drugi proizvođači, npr. Motorola • tako se omogućuje korištenje posebnih funkcija mobitela: Bluetooth sučelja, serijskog porta, IrDa sučelja, vibre, SMS funkcije, itd.

  43. MIDP Record Managment System (RMS) • RMS je skup J2ME klasa i sučelja koje omogućuju pohranu podataka u jednostavnu bazu podataka na uređaju na kojemu se izvodi MIDlet • Pomoću RMSa podaci se mogu trajno pohraniti na mobilnom uređaju i jednostavno dohvatiti kada su potrebni • Poput spremanje konfiguracijskih datoteka, ili sistema Windows Registry • Osnovna klasa: RecordStore • Sučelja: RecordEnumeration, RecordComparator, RecordFilter, RecordListener  Primjer: Contacts

  44. Budućnost J2ME • Broj uređaja koji podržavaju J2ME svakodnevno raste • J2ME mobiteli više nisu rijetki, niti skupi • povećava se potreba za J2ME softwareom i sadržajima koje mobilni uređaji mogu ponuditi • tržište traži korisne aplikacije i napredak se nastavlja dalje... • jedino J2ME daje mogućnost pokretanja aplikacija na mobitelima! • Očekuje se implementacija CDC konfiguracije u praksi • snažniji uređaji koji će imati na raspolaganju sve mogućnosti Jave 2 • Konvergencija J2ME i drugih (Java) tehnologija • nova rješenja sjedinjuju prenosivo i ne-prenosivo računarstvo • Sve više praktičnih primjena mobilnog računarstva • obavljanje novčanih transakcija preko mobitela • korištenje različitih web servisa (najbliži restoran, kino, rezervacija ulaznica za kazalište, cijena raznih proizvoda, ...) • chat, igre, zabava...

  45. Relevantni alati i internet adrese • http://java.sun.com/j2me/ • http://www.midlet.org/ • http://www.microjava.com/ • http://www.midletcentral.com/ • http://www.corej2me.com/ • http://wireless.java.sun.com/ • http://www.devicetop.com/ • http://yozone.yospace.com/ • http://www.jguru.com/ • http://wwws.sun.com/software/communitysource/j2me/ • I mnoge druge adrese... • Na Internetu se nalazi puno materijala za J2ME

More Related