Professional Documents
Culture Documents
J2me 07 1
J2me 07 1
Mng GSM (Global System for Mobile Communication - H thng thng tin di ng ton cu) Kin trc mng GSM v cc th h ca n Kha cnh lin kt sng v tuyn (radio) Kha cnh mng Khi nim IEEE802.11 ( mng cc b) v Bluetooth Cc m hnh OSI Bluetooth v 802.11 dng cc scenario Bluetooth Multiplayer Games Framework (BluetoothMGF) Cc vn khc
2
Gii thiu giao thc WAP Cng WAP WML (Wireless Markup Language)/ WML script Web Service
4. VoiceXML 5. Cc sn phm
6. Cc la chn khc
Lch s J2ME c pht trin t kin trc Java Card, Embeded Java v Personal Java ca phin bn Java 1.1. n s ra i ca Java 2 th Sun quyt nh thay th Personal Java v c gi vi tn mi l Java 2 Micro Edition, hay vit tt l J2ME. ng vi tn gi, J2ME l nn tng cho cc thit b c tnh cht nh, gn. L do chn J2ME Java ban u c thit k dnh cho cc my vi ti nguyn b nh hn ch. Th trng ca J2ME c m rng ra cho nhiu chng loi thit b nh: Cc loi th c nhn nh Java Card My in thoi di ng My PDA (Personal Digital Assistant - thit b tr gip c nhn) Cc hp iu khin dnh cho tivi, thit b gii tr gia dng
nh ngha v Configuration (Cu hnh): l c t nh ngha mt mi trng phn mm cho mt dng cc thit b c phn loi bi tp hp cc c tnh, v d nh: Kiu v s lng b nh Kiu v tc b vi x l Kiu mng kt ni Do y l c t nn cc nh sn xut thit b nh Samsung, Nokia bt buc phi thc thi y cc c t do Sun qui nh cc lp trnh vin c th da vo mi trng lp trnh nht qun v thng qua s nht qun ny, cc ng dng c to ra c th mang tnh c lp thit b cao nht c th. Hin nay Sun a ra 2 dng Configuration:
5
nh ngha: y l Profile c nh ngha dnh ring cho cc thit b di ng v l thnh phn chnh trong J2ME. MIDP cung cp cc chc nng c bn cho hu ht cc dng thit b di ng ph bin nht nh cc my in thoi di ng v cc my PDA. Tuy nhin MIDP khng phi l cy a thn cho mi lp trnh vin v nh chng ta bit, MIDP c thit k cho cc my di ng c cu hnh rt thp. Nhng chc nng MIDP khng thc hin c: Php tnh du phy ng (floating point): Php tnh ny i hi rt nhiu ti nguyn CPU v phn ln cc CPU cho cc thit b di ng khng h tr php tnh ny, do MIDP cng khng c. B np lp (Class Loader). H tr t kha finalize() nh trong J2SE: Vic dn dp ti nguyn trc khi n b xa c y v pha cc lp trnh vin. Khng h tr JNI H tr hn ch thao tc bt li. Phn ln cc th vin API cho Swing v AWT khng th s dng c trong MIDP. Khng h tr cc tnh nng qun l file v th mc: y c th lm bn ngc nhin nhng thc t l cc thit b J2ME khng c h tr cc thit b lu tr thng thng nh cng v.v. Tuy nhin, iu khng c ngha l bn phi mt i mi d liu quan trng mi khi tt my, Sun cung cp mt chc nng khc tng ng gi l Record Management system (RMS) cung cp kh nng lu tr cho cc thit b ny.
Nhng chc nng MIDP cung cp : Cc lp v kiu d liu: cc lp trong gi java.util nh Stack, Vector, Hastable cng nh Enumeration. H tr i tng Display: mt chng trnh MIDP s h tr duy nht mt i tng Display,i tng qun l vic hin th d liu trn mn hnh in thoi. H tr Form v cc giao din ngi dng. H tr Timer v Alert Cung cp tnh nng Record Management System (RMS) cho vic lu tr d liu Thng 11 nm 2003 Sun tung ra MIDP 2.0 vi hng lot tnh nng khc c cung cp thm so vi bn 1.0. Nhng ci tin ni bt so vi MIDP 1.0 Nng cp cc tnh nng bo mt nh: Download qua mng an ton hn qua vic h tr giao thc HTTPS. Kim sot vic kt ni gia my di ng v server
Mt mi trng pht trin tch hp (IDE) nhm ci thin nng sut ca lp trnh vin bng cch cung cp mt tp cc cng c lp trnh tch hp thng qua mt giao din ngi dng ha (GUI) Mt IDE cho J2ME cn phi cung cp cc tin ch sau: Qun l project - Qun l cc tp tin ngun v cc thng s MIDlet Trnh son tho - Son tho m ngun v cc ti nguyn Build (Bin dch)
obfuscate (tu chn): s loi b cc thng tin khng cn thit trong class (nh tn ca cc bin cc b, cc lp, phng thc,..). Ngoi vic bo v m ngun, obfuscate cn gim kch thc ca cc tp tin class, lm cho kch thc ca tp tin JAR cng gim i pre-verify (tin kim tra)
ng gi (package) - ng gi cc MIDlet thnh cc tp tin JAR v JAD Gi lp (emulation) - Thc thi cc MIDlet vi mt trnh gi lp G ri (debugger) - G ri MIDlet
10
Cc J2ME IDE ph bin v ni ting sau: Sun J2ME Wireless Toolkit 2.5 Borland Jbuilder NetBeans IDE IntelliJ IDEA 3089 Eclipse vi EclipseME plug-in Sun J2ME Wireless Toolkit 2.5 (WTK)
WTK l mt b cng c pht trin Java J2ME (Java Development Kit - JDK) cung cp cho cc lp trnh vin mi trng gi lp, cng c, ti liu v cc v d cn thit pht trin cc ng dng MIDP. WTK khng phi l mt IDE hon chnh, v n b cc tnh nng son tho v g ri vn c xem l bt buc phi c trong mt IDE. Nhng KToolbar, c cung cp trong b WTK l mt mi trng pht trin ti thiu cung cp mt GUI dnh cho vic bin dch, ng gi v thc thi cc ng dng MIDP. WTK 2.5 cng cung cp cc b gi lp c ci tin vi cc tnh nng gi lp, monitor v debug mi. C mt c ch c thm vo tin trnh build ca KToolbar cho php vic tch hp v thc thi b obfuscate Java byte code khi ng gi MIDlet suite.
11
Chn "New Project..." to mt project mi. Nhp tn project (tn ca file JAR v tn ca th mc project mi), nhp tn ca MIDlet class (l main class ca ng dng) Th mc : C:\WTK25-Beta2\apps\Vidu2\src, y s l ni cha source ca ng dng. C th dng bt k chng trnh son tho vn bn no son code. Tin hnh build v run chng trnh
12
Nhn vo "Settings..." trn toolbar vo menu cu hnh cho project. ng n trng "MIDlet-Jar-Size" (vi gi tr l "100" bytes), Chng ta s lm cho gi tr t c thit lp ng. Chn MIDlets tab trong ca s dialog cu hnh ca porject. Chn hng duy nht trong bng ("MIDlet-1") lm ni n v chn. Sau nhn vo nt "Edit. Xo trng "Icon" nu khng c tp tin *.PNG t vo tp tin JAR. Chp nhn cc thay i. (1) Project --> Clean: Xo tt c tp tin *.class. (2) Build : Build tt c tp tin *.class v preverify. (3)Project --> Package --> Create Package: Sinh ra tp tin *.JAR v *.JAD. Khi lm 3 bc trn, tp tin *.JAR v *.JAD kt qu c th sn sng c thc thi trong chng trnh m phng, hay a ln WWW site download. Trng kch thc ca *.JAR trong tp tin *.JAD s t ng. ng qun thc hin bc 3 mi khi rebuild
13
14
Vng i ca mt MIDlet
Ging nh dng chng trnh Applet trn J2SE, mt Midlet lun lun k tha javax.microedition.midlet Hm c bn nht trong mi Midlet l startApp(), hm ny s khi to Midlet cng nh vn hnh cc thnh phn hoc i tng khc, Mi Midlet cn c pauseApp() v destroyApp(), mi hm ny s c gi thc thi tng ng khi user chn dng hoc thot chng trnh.
15
import javax.microedition.lcdui Interfaces: Choice, CommandListener, ItemCommandListener, ItemStateListener Classes: Alert, AlertType, Canvas,ChoiceGroup, Command, CustomItem, DateField, Display,Displayble, Font, Form,Gauge, Graphics, Image, ImageItem,Item, List, Screen, StringItem, TextBox, TextField,Ticker.. V d ta c th khai bo: import javax.microedition.lcdui.*; Hoc khai chi tit import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.StringItem; import javax.microedition.lcdui.TextField; //.............. import javax.microedition.midlet Classes: MIDlet Ta c th khai bo: import javax.microedition.midlet.*; Hay : import javax.microedition.midlet.MIDlet;
16
Mt i tng Displayable l mt thnh phn c hin th trn mt thit b. MIDP cha 2 lp con ca lp Displayable l Screen v Canvas. Mt i tng Screen khng phi l mt ci g hin ra trn thit b, lp Screen s c tha k bi cc thnh phn hin th mc cao, chnh cc thnh phn ny s c hin th ra trn mn hnh.
17
To Form
To Form :Form(String title, Item[] items); V d: TaoForm form.append("Tat ca cac ban");
import javax.microedition.lcdui.Display; import javax.microedition.lcdui.Form; import javax.microedition.lcdui.StringItem; import javax.microedition.lcdui.TextField; import javax.microedition.midlet.MIDlet; public class CreateForm extends MIDlet { protected Display display; // Flag indicating first call of startApp protected boolean started; protected void startApp() { if (!started) { display = Display.getDisplay(this); Form form = new Form("Tieu de Form"); form.append("Chao"); form.append("\nChung ta bat dau lam viec nao!\n Mot dong moi\n"); form.append("Day la mot dong rat dai chung ta khong viet chung tren mot dong duoc"); form.append(new TextField("Ho va ten:", "Le Thi Cham Chi", 32, TextField.ANY)); form.append("Dia chi:"); form.append(new TextField(null, null, 32, TextField.ANY)); display.setCurrent(form); started = true; } } protected void pauseApp() {} protected void destroyApp(boolean unconditional) {} }
18
Cc hnh ng
Cc hnh ng (Command) nh: Thot (EXIT), tr li (BACK) v gi mt phng thc ..Cc Type: BACK, EXIT,CANCEL,HELP,ITEM,SCREEN,STOP,OK Command(String label, int commandType, int priority); V d:
private Command cmExit; // khai bo cmExit = new Command("Exit", Command.EXIT, 1); // to hnh ng thot fmMain.addCommand(cmExit); // a hnh ng vo Form fmMain.setCommandListener(this); // Listen for Event public void commandAction(Command c, Displayable s) { // Thc thi n if (c == cmExit){ destroyApp(false); notifyDestroyed(); } }
V d: CacHanhDong
19
20
StringItem v TextField
Mt thnh phn StringItem c dng hin th mt nhn hay chui vn bn. Ngi dng khng th thay i nhn hay chui vn bn khi chng trnh ang chy. StringItem khng nhn ra s kin. Phng thc dng ca lp StringItem StringItem(String label, String text) V d StringItem :chuoi, chuoi2, chuoi3 Mt thnh phn TextField nh bt k cc i tng nhp vn bn tiu biu no. C th ch nh mt nhn, s k t ti a c php nhp, v loi d liu c php nhp. V TextField cn cho php nhp vo mt khu m cc k t nhp vo c che bi cc k t mt n. Phng thc dng ca lp TextField TextField(String label, String text, int maxSize, int constraints) constraints: xc nh loi d liu no c php nhp vo TextField MIDP nh ngha cc tham s rng buc sau cho thnh phn TextField: ANY: nhp bt k k t no EMAILADDR: ch cho php nhp cc a ch email hp l NUMERIC: ch cho php nhp s PHONENUMBER: Ch cho php nhp s in thoi URL: Ch cho php nhp cc k t hp l bn trong URL PASSWORD: che tt c cc k t nhp vo V d TextField : ONhapLieu, TextField1,Login, TextField1,Login
21
DateField , Gauge
Thnh phn DateField: thao tc i tng Date, nh ngha trong java.util.Date. To DateField mt i tng DateField: chnh sa ngy, gi hay c hai. Cc phng thc ca lp DateField gm: DateField(String label, int mode) DateField(String label, int mode, TimeZone timeZone) Cc mode tng ng ca lp DateField gm: DateField.DATE_TIME: cho php thay i ngy gi DateField.TIME: ch cho php thay i gi DateField.DATE: ch cho php thay i ngy V
Thnh phn Gauge: m t mc hon thnh mt cng vic. C 2 loi Gauge l loi Gauge tng tc(thay i Gauge) v khng tng tc(cp nht Gauge).Hm dng ca lp Gauge: Gauge(String label, boolean interactive, int maxValue, int initialValue) private Gauge gaVolume; // iu chnh m lng gaVolume = new Gauge("Sound Level", true, 100, 4); V d: HoanThanh ; Tng hp c hai: bai4 hoc ktra4
22
ChoiceGroup
Thnh phn ChoiceGroup: chn t ChoiceGroup mt danh sch u vo c nh ngha trc. ChoiceGroup(String label, int choiceType, String[] stringElements, Image[] imageElements); ChoiceType c 2 loi: EXCLUSIVE (chn mt mc): nhm ny lin quan n cc radio button MULTIPLE (chn nhiu mc): nhm ny lin quan nhm cc checkbox
V d:chon nhieu muc (CheckBox): NhomChon Chon mot muc (Radio): NhomChonRadio, NhomChonRadio1 Tng hp: ktra5 (multile); ktra6 (exclusive)
private ChoiceGroup radio1; private int defaultIndex; private int RadioGroup; radio1 = new ChoiceGroup(Moi ban chon:", Choice.EXCLUSIVE); radio1.append(Chon 1", null); radio1.append(Chon 2", null); defaultIndex = radio1.append(Chon 3", null); radio1.setSelectedIndex(defaultIndex, true); radioButtonsIndex = form.append(radio1); public void itemStateChanged(Item item){ if (item == radio1){ StringItem msg = new StringItem(Ban da chon: ", radio1.getString(radio1.getSelectedIndex())); form.append(msg); } }
23
Hai lp hin th hnh nh: Image v ImageItem. Image dng to mt i tng hnh nh v gi ImageItem thng tin chiu cao, chiu rng, v d nh c bin i hay khng. Lp ImageItem: tm nh s c hin th, v d tm nh t trung tm, bn tri, bn trn ca mn hnh. MIDP a ra 2 loi hnh nh l loi khng bin i v bin i. Mt nh khng bin i k t lc n c to ra. Loi nh ny c c t mt tp tin. Mt nh bin i c bn l mt vng nh. iu ny ty thuc vo vic bn to ni dung ca tm nh bng cch ghi n ln vng nh. Cc phng thc dng cho lp Image v ImageItem Image createImage(String name) Image createImage(Image source) Image createImage(int width, int height) Image createImage(Image image, int x, int y, int width,int height, int transform)(TOP|LEFT) I mageItem(String label, Image img, int layout, String altText) Form fmMain = new Form("Images"); // Tao mot image Image img = Image.createImage("/terrain1.png"); // Them vao form fmMain.append(new ImageItem(null, img, ImageItem.LAYOUT_CENTER, null)); V d: HinhAnh
24
List khng tng minh uc dng th hin mt thc n cc chn la. List(String title, int listType, String[] stringElements, Image[] imageElements); V d: Danh sch c phn image - DanhSach Danh sch chn kiu checkbox - DanhSachCheckBox chn cc mode (listType) ca danh sch - DanhSach1 TextBox dng cho php nhp nhiu dng. TextBox v TextField c rng buc ging nhau cho php nhp liu. V d ANY, EMAIL, URI Phng thc dng ca mt TextBox: TextBox(String title, String text, int maxSize, int constraints) V d: Vit ra li cho dng TextBox HelloTextBox Nhap du lieu - NhapTextBox
25
Alert, v Ticker
Mt Alert n gin l mt hp thoi rt nh. C 2 loi Alert: Modal: hp thoi thng bo c trnh by n khi ngi dng n nt ng Non-modal: hp thoi thng bo ch c trnh by trong mt s giy nht nh Cc phng thc dng ca Alert: Alert(String title) Alert(String title, String alertText, Image alertImage, AlertType alertType) AlertType s dng m thanh thng bo cho ngi dng bit c mt s kin xy ra. AlertType bao gm 5 loi m thanh nh sn l: thng bo, xc nhn, bo li, thng bo v cnh bo. Cc phng thc dng ca Alert cho bit l Alert c th bao gm 1 tham chiu n mt i tng AlertType. V d: Thng bo c s dng nh ThongBao1 Hai loi thng bo ThongBao2 Cc loi thng bo - HopThoaiBao Ticker th hin mt on chui chy theo chiu ngang. Tham s duy nht ca Ticker l on vn bn c trnh by. Tc v chiu cun c xc nh bi vic ci t trn thit b no. Phng thc dng ca Ticker Ticker(String str) T cy phn cp,ta thy Ticker khng l lp con ca lp Screen m Ticker l mt bin ca lp Screen. Ngha l mt Ticker c th c gn vo bt c lp con ca lp Screen bao gm c Alert. V d: Chy dng ch - ChuoiChay,Ticker1, Ticker1
26