130 likes | 358 Views
Learning Wirelesss Java, O'REILLY, Qusay H.Mahmoud. Wireless - bevielė Bevielių technologijų apžvalga J2ME apžvalga The Connected Limited Device Configuration (CLDC) The Mobile Information Device Profile (MIDP) MIDlet-ų kūrimas. Bevielis Internetas WAN/LAN. JAV. ES. Japonija.
E N D
Learning Wirelesss Java, • O'REILLY, Qusay H.Mahmoud • Wireless - bevielė • Bevielių technologijų apžvalga • J2ME apžvalga • The Connected Limited • Device Configuration (CLDC) • The Mobile Information • Device Profile (MIDP) • MIDlet-ų kūrimas
Bevielis Internetas WAN/LAN JAV ES Japonija CDPD, Mobitex, DataTAC, WAP WAP i-mode (PDC-P) PROTOCOL visur PRESENTATION HDML & WMLHandheld Dynamic Markup Language WMLWireless Markup Language cHTML Compact Hypertext Markup Language J2ME MIDlet GUI Components
Kokie protokolai ir kur naudojami? • imode: 60% pasaulio bevielio Interneto vartotojų • WAP: 39% pasaulio bevielio Interneto vartotojų • PALM: 1% pasaulio bevielio Interneto vartotojų • WAP gamintojų inicijuotas standartizuoti • informacijos bevieliui perdavimui • WML iniciatorius - Phone.com’s, pasiūlė HDML • HDML nei XML nei HTML analogas, • bet turi paklausą JAV • WML XML klasės kalba, • reikalauja atitikimo standartui; • turi DTD struktūrą • WAP turi savo skriptų kalbą, saugumo mechanizmą. • Optimizuotas nepralaidžiam ryšio kanalui • WAP JAV & Europoje savo galimybėmis yra • silpnesnis nei Japonijoje • i-mode inkorporuoja ir protokolą ir prezentaciją • Iš įrenginių reikalauja: • garantuoti 16 simbolių [8 2xbaitų], 6 eilutes • GIF failų formatus [87, 87a, 89a; 94 x 72 taškelių] • suderinamumą su HTML 2.0
Profailai Konfigūracijos Java Virtualiosios Mašinos Operacinė Sistema • Mobilios įrangos imitatoriai • i-mode: www.pixo.com • WAP: Nokia.com, Phone.com, Yospace.com • J2ME: java.sun.com/j2me, www.idendev.com • Kalbų specifikacijos • cHTML - http://www.nttdocomo.com/i/tag/ • lineup.html • WML – http://www.wapforum.org/ • J2ME – java.sun.com/j2me • Jaunėlė sesuo: • J2ME (1999) -> J2SE -> J2EE J2ME praginos architektūra:
RMI Personal M IDP PDA Foundation Peigeris Faksas CLDC CDC Mobilus telefonas Telefonas KVM CVM Host Operating System CLDC CDC Mikro Java 2 (J2ME) J2ME panaudojimo architektūra: J2ME technologijos
Pirmieji žingsniai: • http://java.sun.com/j2me/ “download” • sutvarkykite savo PC: • Windows atveju: • SET PATH=%PATH%;C:\j2mewtk\bin • SET J2MEWTK_HOME=C:\j2mewtk • SET MIDPAPI=%J2MEWTK_HOME%\lib\midpapi.zip • SET J2MECLASSPATH=%J2MEWTK_HOME% • \wtklib\kenv.zip;%J2MEWTK_HOME% • \wtklib\kvem.jar;%J2MEWTK_HOME%\wtklib\lime.jar • UNIX atveju: • export PATH=$PATH:install_directory/j2mewtk/bin • export J2MEWTK_HOME=/home/qmahmoud/j2mewtk • export MIDPAPI=$J2MEWTK_HOME/lib/midpapi.zip • export J2MECLASSPATH=$J2MEWTK_HOME/ • wtklib/kenv.zip:$J2MEWTK_HOME/wtklib/ • kvem.jar:$J2MEWTK_HOME/wtklib/lime.jar • Su mėgstamu teksto redaktoriumi surinkite • “Sveika.java” failą:
import javax.microedition.midlet.*; import javax.microedition.lcdui.*; public class Sveikas extends MIDlet{ private Display display; TextBox box = null; public HelloMidlet() { } public void startApp() { display = Display.getDisplay(this); box=new TextBox("1-a","Sveikas!",9,0); display.setCurrent(box); } public void pauseApp() { } public void destroyApp (boolean unconditional) { } } C:\midlets> javac -g:none -d tmpclasses -bootclasspath %MIDPAPI% -classpath %J2MECLASSPATH% Sveikas.java > preverify -classpath $MIDPAPI:tmpclasses -d classes tmpclasses > jar cvf Sveikas.jar Sveikas.class
Sukurkite Sveikas.jad failą: • MIDlet-1: Hello,,Sveikas • MIDlet-Name: Sveikas • MIDlet-Version: 1.0 • MIDlet-Vendor: ORA • MIDlet-Jar-URL: Sveikas.jar • MIDlet-Jar-Size: 649 • Pagaliau: • > emulator -Xdescriptor:Sveikas.jad • Rezultatas: • Programos paruošimo ciklas • Kompiliuojame • Verifikuojame • Pakuojame • Kuriame aprašomąjį .jad failą • Emuliuojame
CLDC konfigūracijos reikalavimai • 160 KB - 512 KB atminties • 16 arba 32-bitų >25 Mhz procesor. • Pajungimas tinkle • Ekonomiška energetika • CLDC pateikia: • Java kabos ir JVM poaibį • java.lang,java.util, java.io • paketų klasių poaibį • javax.microedition.io paketą • Saugumo tikrinimą • JVM ypatumai: • Nėra slankaus kablelio aritmetikos • Nėra finalize() metodo • Ribotas klaidų apdorojimas, dažniausiai • klaidos atveju perkraunama • Kita Verifikacija Saugumas
Malonu dirbti tinkle! Prisijungimas HTTP protokolu: Connector.open ("http://www.ora.com:port"); interneto jungties protokolu:Connector. open("socket://www.ora.com:port"); PC jungties protokolu: Connector.open("comm:0;baudrate=9600"); Bloga žinia: public class CLDCTest { float f; public static void main(String[] args) { System.out.println("Hello CLDC!"); } } Klaidos neras net preverify.exe ! Sprendimas - instaliuoti KVM ir leisti su ja. Tuomet gausite klaidos pranešimą: ALERT: Bad field signature Ateities CLDC sieks mažinti Java kalbos apribojimus, klaidų tikrinimo apribojimus, sukurti minimalų saugumo valdymą.
Midlet gyvavimo ciklas startApp() kviečiama ne 1-ą kartą! Jar manifestas, Midlet rinkinys: MIDlet-Name: ShopOnLine MIDlet-Version: 1.0 MIDlet-Vendor: SELKOM MIDlet-Description: a shopping MIDlet MIDlet-Info-URL: http://www.selkom.com/shop MIDlet-Data-Size: 500 MIDlet-1: BuyMIDlet, /icons/buy.png, com.selkom.BuyMIDlet MIDlet-2: PayMIDlet, /icons/sell.png, com.selkom.Sell MIDlet MicroEdition-Profile: MIDP-1.0 MicroEdition-Configuration: CLDC-1.0
Gairės programavimui: • Naudokite lokalius kintamuosius. • Laukų naudojimas lėtina spartą. • Minimizuokite metodų kvietimą. • Pvz. Neprotinga cikle naudoti length() • Venkite eilučių apjungimo. • Apjungimas provokuoja poreikį • atlaisvinti atmintį. • Minimizuokite objektų kūrimą. • Perkraunant seną klasės kintamąjį • nauju objektu kviečiamas senojo • destruktorius, tai brangu. • Pvz. Tikrinkite ar objektas yra ne null • ir atnaujinkite jums reikiamus • laukus. Naudokite objektą formalių • parametrų sąraše, o ne return konstrukcijoje. • Venkite sinchronizacijos. Jei procesas trunka • sekundės dalį - išskirkite jam atskirą giją.
Midletų kūrimą ir derinimą labai palengvina J2ME Wireless Toolkit 2.0 Jo meniu: