Tài liệu lập trình trên thiết bị di động - Pdf 92

1
P TRÌNH TRÊN THIT BI DI NG
1. Gii thiu Java và ng dng lp trình trên thit b di ng
1.1 Gii thiu v Java
Vào nhng nm 1990, Java c ra i t d án xanh và ban u c xây dng  kiim
sóat các thí b dân dng và mt s thit b cm tay. Java c xây dng ch yu da trong b
công c phát trin (Java Development Kit – JDK) nh là th vin chun trong ó cha trình
biên dch, trình thông dch,… ây chính là nn tng cho vic phát trin ng dng Java. Hin
nay các nhà phát trin ã xây dng nhiu nhánh mi cho Java nh:
J2EE ( Java 2 Platform Enterprise Edition): Phiên bn dành cho máy ch ln vi sc
nh x lý và dung lng b nh ln.
J2SE ( Java 2 Platform Standard Edition): Phiên bn chun chy trên các máy PC và
laptop.
J2ME ( Java 2 Platform Micro Edition): là phiên bn rút gn ca Java cho các thit di
ng gii hn v b nh và b x lý.
1.2 ng dng lp trình trên thit b di ng bng J2ME
c tiêu ca ca J2ME là cho phép ngi lp trình vit các chng trình ng dng ng lp
i thit b di ng, không cn quan tâm n phn cng. J2ME c xây dng bng các tng
khác nhau  giu i vic thc hin phn cng khi nhà phát trin. Sau ây là các tng ca
j2ME c xây dng trên CLDC:
ng phn cng thit b: ây là thit b di ng vi cu hình phn cng ca nó nh b nh,
c  x lý. Các thit b di ng khác nhau có th có các b x lý khác nhau vi các mã lnh khác
nhau. Mc tiêu ca J2ME là cung cp mt chun cho tt c các lai thit b di ng khác nhau.
ng máy o Java: Khi mã ngun Java c biên dch nó c chuyn i thành mã
bytecode. Mã bytecode này sau ó c chuyn thành mã ngôn ng máy ca thit b di ng. Tng
máy o java bao gm KVM ( K virtual Machine) là b biên dch mã bytecode có nhim v chuyn
mã bytecode ca chng trình Java thành ngôn ng máy  chy trên thit b di ng. tng này cung
p mt s chun hóa cho các thit b di ng ng dng J2ME sau khi ã biên dch có th hat
ng trên bt k thit b di ng nào có J2ME KVM.
Phn cng thit b
Máy o Java

p java m rng ca lp tru tng javax.microedition.midlet.MIDlet và thc thi các phng thc
startApp(), pauseApp(), và destroyApp().
an chng trình ti thiu ca MIDlet:
import javax.microedition.midlet.*;
public class exMIDlet extend MIDlet {
public exMIDlet( ) { }
public void startApp( ) { }
public void pauseApp( ) { }
public void destroyApp( boolean unconditional ) { }
}
Trong ó :
o Phng thc exMIDlet là hàm constructor .
o Phng thc startApp( ) : c gi bi b qun lý ng dng khi MIDlet c
khi to hay khi MIDlet tr v trng thái tm dng.
o Phng thc pauseApp( ) : c gi bi b qun lý ng dng mi khi ng dng
n c tm dng.
o Phng thc destroyApp( ): c gi khi thoat khi MIDlet.
3.  ha trong J2ME
Các lp MIDP cung cp hai mc  ha:  ha mc thp và  ha mc cao.  ha mc
cao dùng cho vn bn hay form.  ha mc thp dùng cho các ng dng games.
3
3.1  ha mc cao
 ha mc cao là lp con ca lp Screen. Nó cung cp các thành phn nh text box, form,
list và alert.
3.1.1 TextBox
p Textbox cho phép ngi dùng nhp và san tho vn bn. Ngi lp trình có th
nh ngha s ký t ti a, gii hn d liu nhp ( s, mt khu, imail,…) và hiu chnh
i dung ca textbox.
package Edu.TextBox;
import javax.microedition.lcdui.*;

}
}
}
3.1.2 Form
Form là lp hu dng nht ca các lp Sreen bi vì nó cho phép cha nhiu item trên
cùng mt màn hình. Các item có th là datafield, TextField, ImageItem.
4
package Edu.Form;
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import
javax.microedition.midlet.MIDletStateChangeExceptio
n;
public class FormMIDlet extends MIDlet implements
CommandListener {
private Display display;
private Form fr;
private Command themCommand;
private Command quitCommand;
public FormMIDlet() {
}
public void destroyApp(boolean unconditional)
{
}
protected void pauseApp() {
}
protected void startApp() throws
MIDletStateChangeException {
display = Display.getDisplay(this);
quitCommand = new

on;
public class listbox extends MIDlet implements
CommandListener {
private Display display;
private List ls;
private Command chonCommand;
private Command quitCommand;
public listbox() {
}
public void destroyApp(boolean
unconditional) {
}
protected void pauseApp() {
}
protected void startApp() throws
MIDletStateChangeException {
display = Display.getDisplay(this);
quitCommand = new
Command("Thóat",Command.SCREEN,1);
chonCommand = new
Command("Chon",Command.BACK,1);
ls=new List(null, Choice.IMPLICIT, new
String[]{ "Muc chon 1", "Muc chon 2", "Muc chon 3"
}, new Image[]{null, null, null });
ls.addCommand(quitCommand);
ls.addCommand(chonCommand);
ls.setCommandListener(this);
display.setCurrent(ls);
}
public void commandAction(Command choice,

cung cp các i tng  v.
3.2.1 Lp Canvas
p Canvas là mt lp tru tng, ta phi to các canvas ca riêng  v trên lp m rng
này và lp Canvas cung cp phng thc:
- paint (Graphics g)  thc hin v lên canvas.
- repaint()  thc hin v li các hình ã hin th trên màn hình.
Mi lp canvas tng nhn s kin ca phím bng cách s dng các phng thc:
- void keyPressed (int keyCode): c gi khi mt phím c nhn
- void keyReleased( int keyCode): c gi khi mt phím c th.
- void keyRepeated( int keyCode): c gi khi mt phím b gi.
- int getKeyCode(int gameAction): Ly mt mã phím phn hi li hành ng game xác nh
trên thit b
- String getKeyName (int keyCode): Ly tên ca phím có giá tr mã phím là keyCode
- int getGameAction(int keyCode): Ly mt hành ng game liên quan n mã phím c
nhn.
- void pointerDragged( int x, int y): c gi khi rê chut n ta  x, y mi.
- void pointerPressed ( int x, int y) : c gi khi nhn chut ti ta  x, y
- void pointerReleased ( int x, int y): c gi khi th chut ti ta  x, y.
3.2.2 Lp Graphics
 i tng Graphics có thc s dng  v: hình vuông, hình ch nht, cung tròn,
ng thng, ký t, nh, vn bn trên i tng Canvas.
Các phng thc:
- void setColor(int red, int green, int blue)
- void drawArc(…): v cung tròn.
- void drawRect(…): v hình ch nht
- void drawString(…): V chui.
- void drawImage(…): vnh.
7
package Edu.KeyCodes;
import

}
}
class KeyCodeCanvas extends Canvas implements
CommandListener{
private Command quitCommand;
private KeyCodes midlet;
private int x=getWidth()/2,
y=getHeight()/2;
public KeyCodeCanvas(KeyCodes midlet)
{
this.midlet= midlet;
quitCommand = new
Command("Thóat", Command.SCREEN, 1);
addCommand(quitCommand);
setCommandListener(this);
}
protected void paint (Graphics g){
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(),
getHeight());
g.setColor(0, 0, 0);
g.drawArc(x, y,30, 30, 0, 360);
}
public void commandAction (Command c,
Displayable d) {
if (c== quitCommand){
midlet.exitMIDlet();
}
}
protected void keyPressed(int

các phng thc truyn thông nói trên.
t ng dng bluetooth bao gm hai phn: server dùng  to dch v bluetooth và phn client
t ni n server và thc hin truyn thông.
Phn server:
Mi mt thit b bluetooth bao gm mt i tng thit b cc b mà nó giúp cho vic truyn
thông gia các thit b. Trong JSR82 phng thc LocalDevice.getLocalDevice() tr vi tng
này.
 mc kt ni bluetooth phi s dng chui URL bng phng thc Connector.open(URL)
và phng thc này tr v lung chuyn d liu StreamConnectionNotifier.
 dng hai phng thc openOutputStream() hoc openInputStream()  gi hoc nhn d
liu.
URL c xác nh: URL = "btspp://localhost:" + UUID +
";name=rfcommtest;authorize=true";
Trong ó UUID có th là : OBEX, L2CAP, RFCOMM
m_strUrl= "btspp://localhost:" + RFCOMM_UUID + ";
name=rfcommtest;authorize=true";
// m_StrmConn = BTFACADE.waitForClient(SERVICE_NBR);
try
{
m_LclDevice = LocalDevice.getLocalDevice();
m_LclDevice.setDiscoverable(DiscoveryAgent.GIAC);
m_StrmNotf = (StreamConnectionNotifier)Connector.open(m_strUrl);
//Now it will start waiting for the client connection
m_StrmConn = m_StrmNotf.acceptAndOpen();
m_bInitServer = true;
m_Output = m_StrmConn.openOutputStream();
m_Input = m_StrmConn.openInputStream();
}
catch (BluetoothStateException e)
{


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status