|
HỒ LÔ BIẾN |
|
Lập trình Java
trên điện thoại di động:
Làm quen với Java
MIDP
HOÀNG NGỌC GIAO |
|
Ngày nay dù có "tìm đỏ con mắt"
bạn cũng khó mà thấy được ứng dụng Java nào trên máy
tính để bàn. Tuy nhiên, ứng dụng Java tràn ngập trên
các thiết bị cầm tay (bao gồm điện thoại di động).
Với bản chất trung tính, Java thường không tận dụng
được những thế mạnh đặc thù của từng "mô-đen" nhưng
lại tỏ ra đặc biệt hữu ích cho các ứng dụng "đại
trà" cần chạy được trên nhiều loại máy khác nhau.
Nếu dự định tham gia "cuộc chơi" lập trình Java trên
điện thoại di động, bạn có thể yên tâm rằng mình
chẳng mất chi cả (có "một lô một lốc" công cụ miễn
phí để phát triển ứng dụng) mà lại có nhiều dịp để
thi thố ý tưởng cùng thiên hạ. |
|
Nền tảng Java nhỏ gọn dùng cho
thiết bị cầm tay được gọi là J2ME (Java 2 Micro
Edition). Tuy nhiên, J2ME cũng có "năm bảy đường".
Với điện thoại di động, J2ME chủ yếu gồm 2 cấp: cấp
dưới gọi là CLDC (Connected Limited Device
Configuration), cấp trên gọi là MIDP (Mobile
Information Device Profile). Nếu mới nghe lần đầu,
những tên gọi như vậy dường như... vô nghĩa đối với
bạn, có "diễn nôm" cũng chẳng ích gì. Ta chỉ có thể
hiểu chúng thực sự sau khi "sờ mó" ít nhiều. Người
lập trình ứng dụng Java trên điện thoại di động
chẳng mấy khi thích "lê la" trên cấp thấp CLDC mà
thường khoái "lăn lộn" ở cấp cao MIDP có đầy đủ tiện
nghi. Khi nghe nói "lập trình trên Java MIDP", bạn
hiểu rằng người ta muốn nói đến chuyện viết ứng dụng
Java cho các loại điện thoại di động (cả máy nhắn
tin hai chiều nữa). |
|
Ứng dụng Java MIDP được gọi bằng
cái tên rất "dễ xương" là MIDlet. Nói cho rõ, ứng
dụng của bạn có thể bao gồm vài ba MIDlet, chứ không
chỉ có một. |
|
Bắt đầu
từ đâu? |
|
Trong buổi đầu làm quen, bạn có
thể dùng hai công cụ thô sơ:
- Java 2 SDK, Standard Edition, v.1.4.1
- J2ME Wireless Toolkit 2.0 |
|
Khi đã "nóng máy", bạn sẽ cần đến
những công cụ tinh vi hơn, chẳng hạn như:
- Nokia Developer's Suite for J2ME™, v.2.0
- JBuilder 9
- Sun ONE Studio 4 Mobile Edition |
|
Bạn cần cài đặt trước Java 2 SDK
rồi mới tính đến J2ME Wireless Toolkit (bản thân
công cụ này được viết bằng Java). Khi bạn cài đặt
J2ME Wireless Toolkit, "nó" tự động nhận biết sự
hiện diện của Java 2 SDK để sau này còn "nhờ vả" mỗi
khi biên dịch các MIDlet. Cài đặt xong xuôi, bạn nên
thử tạo ra ngay một ứng dụng đầu tay của mình để lấy
cảm hứng. |
|
MIDlet
đầu tay của bạn |
|
Bạn chọn
Start > Programs > J2ME
Wireless Toolkit 2.0 > KToolbar. Khi cửa sổ
KToolbar xuất hiện, bạn bấm nút
New Project. |
|
 |
|
Theo truyền thống, ứng dụng "vỡ
lòng" bao giờ cũng là "Hello World" nhằm hiển thị
một lời chào (từa tựa việc học ngoại ngữ luôn bắt
đầu bằng chào hỏi). Sau lần bật ra "tiếng nói" đầu
tiên, bạn sẽ tự nhiên thấy có nhiều "chiện" cần "xía
vô". |
|
Trên hộp thoại
New Project, bạn
gõ Hello ở ô
Project Name để đặt tên cho đề án mới,
gõ HelloWorldMIDlet để đặt tên cho lớp chủ chốt (lớp
này bắt buộc phải dẫn xuất từ lớp
MIDlet có sẵn) rồi
bấm vào Create Project. Bạn thấy hiện ra một hộp
thoại khác trình bày một loại quy định chi tiết liên
quan đến đề án mới Hello. |
|
|
|
 |
|
Chân ướt chân ráo đến với MIDlet,
ta chẳng cần "xét nét" chi cho mệt, bạn cứ bấm OK để
"chơi luôn". Thế là KToolbar "hùng hục" chạy để
chuẩn bị mọi thứ cần thiết cho một MIDlet mới. |
|
Bạn hãy dùng công cụ soạn thảo
(như NotePad hoặc công cụ soạn thảo nào đó mà bạn ưa
dùng mỗi khi lập trình) để tạo ra tập tin mã nguồn
HelloWorldMIDlet.java có nội dung như sau và lưu ở
thư mục C:\WTK20\apps\Hello\src: |
|
// HelloWorldMIDlet.java
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class HelloWorldMIDlet extends MIDlet {
public HelloWorldMIDlet() {}
public void startApp() {
Displayable current =
Display.getDisplay(this).getCurrent();
if(current == null) {
HelloScreen helloScreen = new HelloScreen(this, "Xin
ch\u00e0o b\u00e0 con c\u00f4 b\u00e1c!");
Display.getDisplay(this).setCurrent(helloScreen);
}
}
public void pauseApp() {}
public void destroyApp(boolean b) {}
void exitRequested() {
destroyApp(false);
notifyDestroyed();
}
}
class HelloScreen extends TextBox implements
CommandListener {
private final HelloWorldMIDlet midlet;
private final Command exitCommand;
HelloScreen(HelloWorldMIDlet midlet, String string)
{
super("HelloWorldMIDlet", string, 256, 0);
this.midlet = midlet;
exitCommand = new Command("Exit", Command.EXIT, 1);
addCommand(exitCommand);
setCommandListener(this);
}
public void commandAction(Command c, Displayable d)
{
if(c == exitCommand) {
midlet.exitRequested();
}
}
} |
|
Tốt nhất là bạn sao chép đoạn mã
trên và dán vào công cụ soạn thảo của mình. Bạn chú
ý, Java phân biệt ký tự hoa với ký tự thường nên bạn
cần đặt tên tập tin mã nguồn một cách chính xác là
HelloWorldMIDlet.java, đừng khác tí tẹo nào nhé. |
|
Xong xuôi đâu đó, bạn bấm vào nút
Build của KToolbar để biên dịch. Nếu biên dịch suôn
sẻ, bạn bấm nút Run để chạy thử. KToolbar sẽ mô
phỏng điện thoại di động, giúp bạn hình dung MIDlet
của mình trông "đẹp giai" ra sao trên thực tế. Bạn
thấy đó, ta có thể chào hỏi bằng tiếng Việt "đàng
hoàng" (không... lơ lớ) nhờ dùng mã Unicode. |
|
Chiếc "điện thoại di động" chạy
MIDlet đầu tay của bạn chỉ là một kiểu mẫu chung
chung. Muốn thử nghiệm trên các "mô-đen" cụ thể của
hãng Nokia chẳng hạn, bạn vào địa chỉ
www.forum.nokia.com để tải về các bộ mô phỏng
(emulator) tương ứng. Các bộ mô phỏng của Nokia sẽ
được đặt vào thư mục C:\WTK20\wtklib\devices. Kể từ
đó, bạn dễ dàng chọn từng kiểu mẫu điện thoại cụ thể
của Nokia trên ô liệt kê Device của KToolbar. Bạn
thích không? |
|
|