Lessons XVIII : Làm quen J2ME cho điện thoại di động Nokia

Làm quen J2ME cho điện thoại di động Nokia

Thứ ba, 19 Tháng 8 2008 05:52 Anh Vũ Hướng dẫn lập trình Java
Email In

Đầu tiên điện thoại di động ra đời với mục đích để thông tin liên lạc, nhưng với nhu cầu giải trí ngày nay, các nhà sản xuất đã thêm vào nó các tính năng khác như trò chơi, gửi tin nhắn bằng chữ (SMS). Và sau này với điện thoại di động màn hình màu (4096 màu, 65536 màu), bạn có thể gửi tin nhắn chữ kèm theo hình và âm thanh (MMS), hay chụp ảnh và thậm chí có thể xem ti vi trực tuyến,… Nhưng chúng ta không phải ai cũng có điều kiện để “kè kè” bên mình một cái di động, nhất là những người mới tốt nghiệp như tôi với đồng lương “bạc cắc”. Thật gai mắt khi thấy thằng bạn dí mắt vào cái màn hình màu nhỏ xíu, chơi games rất say mê, hay lâu lâu nó cười phá lên khi nhận được một tấm ảnh “độc đáo” từ cô bồ. Tức không chịu được!!!
Nếu ai có cùng cảnh ngộ trên, xin được giới thiệu cùng bạn cách sử dụng các loại máy điện thoại Nokia (các loại rất hiện đại do Nokia cung cấp) trên “cục cưng” PC. Tuy các máy Nokia “giả lập” này sử dụng hơi khó khăn nhưng nó cung cấp khá đầy đủ các chức năng có trên điện thoại di động “thật” cùng loại (trừ việc gọi điện thoại, >_<). Bạn sẽ chơi được hầu hết các game Java mới nhất, tạo và gửi thử tin nhắn MMS, SMS, hay truy xuất và hiển thị các trang wml thông qua WAP (mà các trình duyệt thông thường không hiển thị được). Không những thế, nếu bạn có khả năng lập trình, bạn có thể tự mình viết ứng dụng chạy trên nó. Dĩ nhiên, sau khi bạn đã tạo ra ứng dụng bạn có thể nạp ứng dụng vào máy di động “thật”, chạy hẳn hoi (không chỉ nạp được cho máy Nokia, còn có thể nạp cho các loại máy di động khác như Samsung, Motorola nếu nó hỗ trợ). Trong tương lai không xa, các ứng dụng viết trên điện thoại di động có thể thay thế các ứng dụng chạy được trên máy Palm hay PC Pocket, thậm chí cả PC đấy !!!
Các phần mềm cần có
· Windows XP SP1.
· JDK 1.4.1 trở về sau. Java 2 Platform, Micro Edition
(J2ME) Wireless Toolkit. Các bạn có thể tìm thấy dễ dàng tại: http://www.java.sun.com
· Các phần mềm liên quan đến Nokia:

+ Nokia Developer’s Suite 2.0 for J2ME(TM).
+ Nokia Internet Tool Kit 4.0 Server Pack.
+ Các máy Nokia giả lập (Nokia 3300, 3410,…), Series 40 Devices (Nokia 3300, 7210,…) hay Series 60 Devices (Nokia 3650, 6600, …), Series 90 Devices (Nokia 7700).
+ Các game demo. Có thể tìm thấy tại: http://www.forum.nokia.com
Nếu cần các ứng dụng và các trò chơi, bạn có thể mua ở cửa hàng CD, hay có thể liên lạc với tòa soạn để nhận được chỉ dẫn. Cài đặt và cách dùng các ứng dụng
Cài đặt Nokia Developer’s Suite 2.0 for J2ME (TM)…
Khi cài đặt sẽ có thông báo yêu cầu nhập về số Username, Serial Number. Muốn tải được các công cụ, bạn cần đăng ký một account. Tên của account là Username. Số Serial nhận được từ trang Request Serial Number (bạn sẽ thấy khi download phần mềm nào đó), bạn nên click chọn tất cả các công cụ. Sau đó, bạn vào email đã đăng kí trong account để nhận được số Serial cho từng công cụ đã yêu cầu.

Chú ý: khi tải về mỗi software trên http:// forum.nokia.com, phải tải về kèm số Product Serial Number kèm với phần mềm đó. Sau khi nhập Username và Serial Number, cửa số sau đây sẽ xuất hiện:

Tại đây bạn có thể chọn Standalone (chạy độc lập), Integration with Borland Jbuilder (Tích hợp với Jbuilder), hay Intergeration with Sun(TM) ONE Studio (Tích hợp với Sun One). Nếu bạn chỉ muốn chạy thử các trò chơi hay ứng dụng thì nên cài Standalone. Bạn nên chọn Integration with Borland Jbuilder nếu đã cài đặt Jbuilder để có thể tìm hiểu và viết ứng dụng mà mình thích.
Và chơi game.
Bây giờ, chúng ta hãy thư giãn một chút, cùng chơi game nhé !!!

Chạy Nokia Deverloper Suite: Start menu > Program > Nokia Developer Tools > Nokia Developer’s Suite 2.0 for J2ME(TM) > Run as a Standalone.
Chọn biểu tượng Start Emulator > Click chọn nút … > Open > :/Nokia/Tools/Nokia _Developers_Suite_ for_J2ME/midp_1_0_examples/BlockGame/ BlockGame.jad
Click chọn Emulate ở bên dưới. Một điện thoại Nokia 7210 sẽ xuất hiện (xem hình trang sau). Bây giờ bạn có thể chơi game, bạn có thể nhấn nút lên xuống để tránh các khối vuông rơi xuống, hay bắn phá hủy các khối vuông ở nút có biểu tượng điện thoại màu xanh bên trái. Ngoài ra, bạn còn có thể thiết lập lại các game, hay có thể tìm hiểu về điện thoại Nokia 7210 rồi đấy.
Bạn cũng có thể khám phá các điện thoại khác khi tải chúng về và cài đặt trên máy PC của mình.

Click chọn Emulate ở bên dưới. Một điện thoại Nokia 7210 sẽ xuất hiện (xem hình trang sau). Bây giờ bạn có thể chơi game, bạn có thể nhấn nút lên xuống để tránh các khối vuông rơi xuống, hay bắn phá hủy các khối vuông ở nút có biểu tượng điện thoại màu xanh bên trái. Ngoài ra, bạn còn có thể thiết lập lại các game, hay có thể tìm hiểu về điện thoại Nokia 7210 rồi đấy.
Bạn cũng có thể khám phá các điện thoại khác khi tải chúng về và cài đặt trên máy PC của mình.

Nokia Internet Tool Kit (NITK) Starter Pack 4.0
Dùng để tạo và hiển thị tin nhắn MMS, tạo và hiển thị trang WAP… Khi cài đặt NITK Starter Pack ngoài NITK (dùng để tạo file wml, mms,…) sẽ bao gồm luôn cả Mobile Browser Simulator (hiển thị các tin nhắn MMS, trang wml,…) và WAP Getway Simulator.

NITK có thể tạo tin nhắn MMS nhưng chúng ta hãy mở một tin nhắn sẵn có và gửi thử…nhưng trước khi gửi phải có máy để nhận. Bạn khởi động máy nhận bằng cách vào Tool > SDK Control Panel > chọn một máy nhận tin nhắn. Ở đây, chúng ta chọn máy 3300 SDK (dĩ nhiên trước đó đã được cài đặt thêm vào) hay chọn Nokia Mobile Browser (mặc định khi cài NITK) hay bạn có thể chọn cả hai bằng cách nhấn vào nút xanh bên cạnh tên của của chúng. Các máy ảo sẽ lần lượt xuất hiện.

Tin nhắn MMS (ngoài các ký tự còn có hình ảnh và âm thanh), một tính năng không thể thiếu trong các máy di động hiện đại. Bây giờ, chúng ta cùng gửi thử một tin nhắn MMS, xem nó hiển thị trên điện thoại di động như thế nào? Hãy chọn NITK > Open > chọn samples > MMS > World Cup > chọn worldcupupdate_ nosmil.mms. Cửa sổ mới sẽ xuất hiện, bạn click vào nút Push. Lúc này, Nokia giả lập nhận được tin nhắn sẽ báo rung giống như điện thoại thật, và bạn hãy từ từ khám phá tiếp nhé…

Điện thoại di động còn có tính năng truy cập Internet thông qua WAP, để truy xuất và hiển thị các trang wml (wireless markup language). Điều này tương tự như các máy tính thông thường truy xuất các trang html. Để hiển thị được trang wml (không thể hiển thị trên các trình duyệt thông thường như IE, Nestcape,…). Bạn khởi động Nokia Mobile Brower (còn có nhiều trình duyệt hiển thị được các trang này như WinWAP). Kế tiếp bạn chọn File > Open URL> C:\Nokia\Tools\Nokia_Mobile_Internet_Toolkit\sam ples\WML\Weather\weather.wml chúng sẽ được hiển thị trên thiết bị này như sau:

Bạn có thể tự xây dựng một trang wml dựa vào NITK. Ngoài ra, còn có thể cấu hình WAP Getway Simulator như một server chạy trên localhost cho phép một trình duyệt hỗ trợ WAP (WinWAP), Nokia Mobile Browser truy xuất các trang wml. Bạn hãy tự tìm hiểu nếu muốn xây dựng ứng dụng dùng công nghệ WAP.

Cách xây dựng một ứng dụng trên điện thoại di động J2ME là gì?
Java 2, Micro Edition (J2ME) là tập các công nghệ và đặc tả được phát triển riêng cho các thiết bị nhỏ với tài nguyên rất hạn chế, đặc trưng là điện thoại di động. Khi so sánh nó với Java 2 Platform, Standard Edition (J2SE™), một công nghệ Java dành cho desktop và Java 2 Platform, Enterprise Edition (J2EE™), công nghệ Java dành cho Server, thì J2ME khá “lép vế”. Nhưng nó vẫn là một công nghệ phức tạp và đang được mong đợi hơn hết.
J2ME được phát triển chủ yếu trên các thiết bị nhỏ bị giới hạn khả năng của bộ xử lý, bộ nhớ ít, nên rất khó để tạo ra một môi trường chung đáp ứng yêu cầu của tất cả các thiết bị (one-size-fits-all environment). Do đó, Sun định nghĩa các cấu hình (configuration) bên trong J2ME, xác định loại máy ảo Java cần dùng hay các thư viện cơ bản cần cho việc thực thi phù hợp với từng loại thiết bị. Với mỗi cấu hình, Sun định nghĩa tiếp các mô tả (profile), định nghĩa thêm các thư viện chuyên biệt cần có để xây dựng các ứng dụng đặc trưng cho từng loại thiết bị.
Vậy, môi trường thực thi của J2ME là sự kết hợp của một cấu hình và một mô tả cho cấu hình đó. Ví dụ: với điện thoại di động dùng cấu hình CLDC (Connected Limited Device Configuration – Cấu hình thiết bị giới hạn kết nối) được dùng chuyên biệt với máy ảo K (K Virtual Machine — KVM). Và mô tả cho cấu hình này là MIDP (Mobile Information Device Profile – Mô tả thiết bị thông tin di động).

Hiện tại có 2 loại cấu hình là CLDC và CDC (Connected Device Configuration – Cấu hình thiết bị kết nối). Cấu hình CLDC có các mô tả là Mobile Information Device Profile và Personal Digital Assistant (PDA) Profile. Trên cấu hình CDC có các mô tả là Foundation Profile, Personal Profile, Personal Basis Profile. Xin được giới thiệu chi tiết về cấu hình CLDC, KVM và MIDP .

CLDC
CLDC 1.0 được thiết kế cho thiết bị kết nối mạng không thường xuyên với băng thông thấp, bộ xử lý chậm với bộ nhớ rất hạn chế và giao diện dành cho người sử dụng đơn giản, như điện thoại di động và một số loại PDA. Các thiết bị này có bộ xử lý là 16 hay 32 bit và bộ nhớ khoảng từ 128-512KB dành cho cả môi trường thực thi và ứng dụng.

KVM
Máy ảo K là tập con của máy ảo Java. Với thời gian thực thi được cải thiện cho việc dùng trên các thiết bị có không gian bộ nhớ cần để thực thi chương trình nhỏ. Chữ “K” ám chỉ số KBytes máy ảo K sử dụng để làm việc trên tổng không gian bộ nhớ thường ít hơn 128 KB ở hầu hết các thiết bị.

Mobile Information Device Profile
Mobile Information Device Profile (MIDP) được thiết kế cho điện thoại di động, một số loại PDA. Nó cung cấp các chức năng lõi cho các ứng dụng bao gồm: giao diện dành cho người sử dụng, việc kết nối mạng, lưu trữ dữ liệu cục bộ, và trình quản lý ứng dụng. Mô tả này kết hợp với cấu hình CLDC hình thành nên một môi trường thực thi ứng dụng Java hoàn chỉnh làm đòn bẩy cho việc tối ưu hóa bộ nhớ và việc tiêu thụ điện năng.

MIDlet là gì ?

MIDlet là một ứng dụng của MIDP, là các trò chơi hay các ứng dụng trên hầu hết các máy điện thoại di động hiện nay. Thiết bị thực thi ứng dụng cần có khả năng khởi động và dừng nó, hay để nó chạy một khoảng thời gian nhất định. Thực tế, các MIDlet được tạo ra dựa trên của tập các lớp MIDlet cơ bản nên nó được điều khiển bởi trình quản lý ứng dụng của MIDP.
Các trạng thái của MIDlet:
– Tích cực (Active): ứng dụng được cho phép chiếm giữ tài nguyên. Tạm ngừng (Paused): ứng dụng phải giải phóng các tài nguyên dùng chung và ngừng hẳn mọi hoạt động. Đây cũng chính là trạng thái của ứng dụng khi nó được khởi tạo lúc đầu và chưa thực thi phương thức startApp().
– Hủy (Detroyed): ứng dụng giải phóng tất cả các tài nguyên và lưu lại (save) các dữ liệu cần thiết (persistent)

Các phương thức của một MIDlet
Một Midlet phải cài đặt ít nhất 3 phương thức cơ bản sau để quản lý sự thay đổi các trạng thái.

void startApp()
Phương thức này được gọi để yêu cầu ứng dụng chuyển đến trạng thái tích cực. Nó chỉ được gọi khi ứng dụng đang ở trạng thái tạm ngừng. Nếu xảy ra lỗi hay MIDlet không thể chuyển trạng thái, nó sẽ gọi phương thức notifyDetroyed() để kết thúc MIDlet.

void pauseApp()
Phương thức này là dấu hiệu cho thấy MIDlet chuyển đến trạng thái tạm ngừng. MIDlet phải giải phóng các tài nguyên dùng chung và ngừng hẳn mọi hoạt động. Phương thức này được gọi khi MIDlet đang trong trạng thái tích cực. Nếu xảy ra lỗi trong pauseApp(), MIDlet sẽ bị hủy ngay lập tức. Trong trường hợp này phương thức destroyApp() sẽ được gọi để thu dọn (clean up) MIDlet.

void destroyApp(boolean unconditional)

Phương thức này là dấu hiệu cho thấy MIDlet đã kết thúc và chuyển đến trạng thái hủy. Ở trạng thái hủy, ứng dụng sẽ giải phóng tất cả các tài nguyên và lưu lại các dữ liệu cần thiết. Phương thức này được gọi khi MIDlet ở trạng thái tạm ngừng hay tích cực. Bây giờ chúng ta hãy bắt đầu với một MIDlet đơn giản HelloMIDlet in ra màn hình thiết bị dòng chữ “Hello World, Have a good day!!!” (lại là Hello World!!!). Đây là một MIDlet đơn giản sử dụng đầy đủ các phương thức nêu trên: File HelloMIDlet.java

 import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
public class HelloMIDlet
extends MIDlet
implements CommandListener {
private Form mMainForm;
public HelloMIDlet() {
mMainForm = new Form("HelloMIDlet");
mMainForm.append(new StringItem(null,
"Hello World, Have a good day!!!"));
mMainForm.addCommand(new Command("Exit",
Command.EXIT, 0));
mMainForm.setCommandListener(this);
}
public void startApp() {
Display.getDisplay(this).setCurrent(mMainForm);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
public void commandAction(Command c,
Displayable s) {
notifyDestroyed();
}
}

Làm sao để hiển thị trên thiết bị (hay cách để deploy một MIDlet)
MIDlet được biên dịch thông qua Java SDK chuẩn. Tuy nhiên, có nhiều công cụ hỗ trợ cho các nhà phát triển như KToolBar của the J2ME Wireless Toolkit hay Nokia Developer’s Suite(NDS), tuy không bao gồm trình biên dịch nhưng NDS cung cấp nhiều chức năng hữu ích cho việc tạo các lớp mới hay deploy các ứng dụng MIDlet lên các thiết bị giả lập sẵn có và nhiều chức năng khác…Bây giờ, chúng ta cùng deploy HelloMIDlet bên trên với KToolBar của JWTK, (còn với NDS xin để cho bạn tự mò mẫm nhỉ, ^_^)
Sau khi cài đặt JWTK, bạn khởi động KToolBar > File > New Project, hộp thoại xuất hiện yêu cầu bạn nhập vào tên Project(Project Name), và tên MIDlet (MIDlet Class Name). Hãy điền vào HelloWorld và HelloMIDlet như hình:

Tiếp theo, chương trình sẽ hiển thị thông báo liệt kê vị trí các thư mục đã tạo ra. Dựa vào thông báo đó bạn hãy chép file “HelloMIDlet.java” ở trên vào thư mục “C:\WTK21\apps\HelloWorld\src” Cuối cùng, nhấn nút Build trên KToolBar để biên dịch project. Nếu có lỗi xảy ra, bạn sẽ nhận được các thông báo. Hãy cố gắng sửa lỗi cho đến khi biên dịch thành công. Hiện tại, mọi thứ đã sẵn sàng cho bạn chạy trên di động giả lập. Click nút Run, bạn sẽ thấy một điện thoại di động xuất hiện. Bây giờ hãy Launch ứng dụng và dòng chữ “Hello World, Have a good day!!!” được hiển thị trên màn hình thiết bị. Chúc thành công!!!

Anh Vũ (Theo: Báo Học Lập Trình)
Nguồn: tincntt.com

  1. Leave a comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: