Cài đặt và test các thành phần để viết ứng dụng J2ME

Chắc hẳn có nhiều người trong chúng ta đã nghe nói về J2ME, hoặc cũng đã lập trình trong J2ME hoặc cao hơn là làm việc về nó. Trong loạt bài viết này, tui sẽ cố gắng giúp các bạn đang muốn tìm hiểu hoặc làm quen với J2ME, một trong 3 nền tảng của công nghệ Java. Chúng ta sẽ đáo qua một chút về các nền (hay phiên bản )này: đó là J2SE, J2EE, và J2ME.

  • J2SE (Java 2 Standart Edition) : nền cơ bản của Java , chứa các lớp chuẩn cơ bản nhất dùng để viết các ứng dụng Java như Applet, truy xuất CSDL, …

  • J2EE (Java 2 Enterprise Edition): cung cấp thư viện và bộ khung cho các ứng dụng quy mô lớn, các ứng dụng phân tán trên Internet,.. đồng thời cung cấp nhiều dịch vụ như JMS, SOAP, JSB, Web Server,…

  • J2ME (Java 2 Micro Edition): phiên bản dành cho các thiết bị cầm tay như PDA, điện thoại, các thiết bị điều khiển, thẻ cá nhân,…


Tạm thời bỏ qua việc nghiên cứu vào từng phiên bản cũng như sự giống và khác nhau giữa chúng, qua vài đặc điểm trên chúng ta cũng có thể nhận thấy lĩnh vực ứng dụng của J2ME là rất to lớn và có triển vọng. Theo thiển ý của tui thì hiện nay tại Việt Nam đang bị trống khá nhiều trong mảng lập trình J2ME, nhưng điều đó không phải là do chúng ta không có các lập trình viên J2ME mà là do nhu cầu hiện nay tại VN chưa cao. Tất nhiên, bất kỳ ai cũng có thể bỏ qua J2ME khi thấy nó chưa được phổ biến rộng rãi, không sao, “ao thưa béo cá” mà. Tôi không mong rằng qua loạt bài viết của mình tại fotech này, trường công nghệ sẽ có thêm các LTV J2ME, điều này là không thể, mà tôi chỉ mong rằng, qua những bài viết của mình, các bạn có thể hiểu thêm về J2ME và lập trình trên thiết bị di động, và sẽ cảm thấy có những lúc thú vị khi thấy trên điện thoại của mình cũng như bạn bè sẽ chạy chính những ứng dụng mình viết.
Phương pháp của tui là “học qua ví dụ, học từ cái nhỏ rồi mới đến cái lớn”. Vì thế bài đầu tiên của tui sẽ không đi vào tìm hiểu kiến trúc của J2ME, cấu trúc các ứng dụng hay các khái niệm khô khan, mà bài đầu nay tui sẽ giúp các bạn chưa biết tí nào về J2ME cũng như các bạn chưa hiểu rõ có thể cài đặt các chương trình cần thiết (và tốt) để thử viết một ứng dụng nhỏ trên J2ME, xem kết quả mình viết được và có thể tự tìm hiểu sâu hơn.
Bộ khung nội dung và một số đoạn code tui sử dụng được lấy từ tài liệu của anh Trần Đức Minh – trường ĐHKHTN – ĐHQG tpHCM. Cảm ơn anh Minh đã cung cấp tài liệu.

Các thứ bạn cần ở đây là:

  • J2SDK (hay còn gọi là jdk) dùng để cung cấp các thư viện cần thiết.

  • Một bộ giả lập máy di động trên máy tính, ở đây tui sẽ dùng Sun Wireless Toolkit (WTK), nó sẽ tạo ra một cái máy di động ảo trong máy tính, và các ứng dụng sẽ chạy trên cái máy ảo đấy.

  • Một IDE tốt để lập trình J2ME. Tui khuyên nên dùng EasyEclipse (EclipseME). Đây là một IDE giống hệt Eclipse nhưng dùng cho J2ME. Bạn cũng có thể dùng gói EclipseME để chạy trong Eclipse nhưng tui thấy dùng như vậy hơi phức tạp nên các bạn có thể tìm hiểu sau.


Các bạn có thể download các thư trên tại:

Bước 1: Cài đặt J2SDK
Cái này rất dễ, các bạn hãy tự cài. Ở máy của mình, tui cài vào thư mục C:\Program Files\ Java. 

Đối với bạn nào đã lập trình Java rồi thì khỏi cài, có sãn trên máy

Bước 2: Cài đặt WTK
Chạy file cài đặt bạn vừa download về, sẽ hiện ra cửa sổ cài đặt WTK, bấm Next để tiếp tục. Sau khi bấm Next sẽ hiện ra cửa sổ License Agreement (đề nghị có thói quen đọc kỹ nhé), bấm Yes để đồng ý và chuyển sang bước tiếp theo. Tại bước này sẽ hiện ra cửa sổ sau: 
Posted Image

Cửa sổ này thông báo là nó tìm thấy một cái jdk (chính là cái bạn vừa cài) trong máy, nếu bạn đồng ý sử dụng cái jdknày thì hãy bấm Next, còn nếu bạn có một cái jdk ở chỗ khác và muốn sử dụng cái đấy thì hãy bấm vào Browse để đổi. Sau đó bấm Next, sẽ chuyển sang bước tiếp theo. 
Cái cửa sổ này nó hỏi bạn muốn cài WTK vào đâu, tui khuyên các bạn nên cài vào thư mục mặc định của nó, nếu không thì bấm Browse để thay đổi. sau đó bấm Next. Quá trình cài đặt bắt đầu. Bạn có thể tự xử lý các bước tiếp theo.

Bước 3: Cài đặt EasyEclipse và thiết lập các thông số

Bạn hãy chạy file cài đặt EasyEclipse vừa download về. quá trình cài đặt, thiết lập đường dẫn và kết thúc rất đơn giản, hãy tự tìm hiểu. Sau khi cài đặt EasyEclipse xong, hãy vào thư mục vừa cài đặt hoặc AllPrograms để tạo một Shortcut cho dễ dùng, hãy đổi tên vì Shortcut sẽ có tên là eclipse, trùng với Eclipse thông thường.
Xong rồi, chạy EasyEclipse thôi. Đầu tiên nó sẽ hỏi workspace (workspace thực ra là một thư mục để nó lưu các thứ vào và mở ra khi chạy lần sau) để làm việc:
Bạn có thể chọn “Use this as the default and …” để lần sau bật lên nó không hỏi workspace nữa, đỡ lâu. Bấm OK để tiếp nào. EasyEclipse sẽ mở ra và bạn bắt đầu quá trình làm việc.

Đã có IDE rồi, nhưng bạn chưa thể soạn mã và chạy ngay được, vì EasyEclipse nó chưa biết bạn dùng cái di động ảo nào, hãy chỉ cho nó biết WTK ở đâu. Bạn vào tab Window / Prefrences…, sẽ mở ra một cửa số, chọn mục J2ME, sẽ mở ra của sổ sau:
Resized to 83% (was 818 x 604) - Click image to enlarge
Posted Image


Tại phần WTK Root, bạn chọn Browse và chỉ đến thư mục WTK vừa cài lúc nãy (trên mãy của tui là C:\WTK). Sau đó bấm Apply cho chắc, rồi bấm OK. Xong, EasyEclipse đã biết WTK là cái gì, ở đâu, từ giờ nếu cần gì nó sẽ vào đấy để lấy. Giống như bạn đã có một cái gara, khi cần đi đâu, bạn sẽ vào và lấy ôtô ra, chạy 
:)

 . Nhưng đôi khi bạn không biết lấy cái xe nào để đi, nếu bạn có vài cái, EasyEclipse cũng vậy, nó không biết nó có cái Device (cụ thể là điện thoại nào) để chạy chương trình trên đó. Công việc tiếp theo của bạn là chỉ cho nó thấy nó cần dùng cái nào
Bạn lại vào Window / Prefrences …/ J2ME, chọn mục Device Management, sẽ hiện ra cửa sổ sau:
Resized to 83% (was 819 x 603) - Click image to enlarge
Posted Image


Hi, vậy là EasyEclipse chưa có cái ôtô nào để chạy rồi, bạn hãy bấm Import để chỉ cho nó
Bạn bấm vào Browse để chỉ đến đường dẫn cài đặt WTK (ở máy tui là C:\WTK). Sau đó bấm Refresh để EasyEclipse tìm và hiển thị thông tin về những cái di động nó tìm được. Sau đó se chuyển thành cửa sổ sau:
Resized to 100% (was 674 x 414) - Click image to enlarge
Posted Image


Bạn hãy chọn một cái di động, hoặc chọn cả 4 cũng được, sau đó bấm Finish để kết thúc công việc thiết lập và chuyển sang test xem IDE có làm việc được không
Bạn vào File / New / Project để tạo ra một Project mới, project này sẽ được đặt trong thư mục workspace bạn chọn lúc nãy. Hiện ra của sổ sau: 
Posted Image

Chọn J2ME / J2ME Midlet Suite hoặc J2ME Midlet (nếu có, tùy bạn), sau đó bấm Next. Chuyển sang của sổ tiếp theo, bạn viết tên Project và bấm Next Thế là đã tạo xong một project mới. Project này sẽ chứa một số file mà bạn viết cho ứng dụng của mình
Sau khi tạo xong một project, bạn cần tạo các file, lần này tôi chỉ tạo một file để test xem chương trình chạy đúng không.
Bạn vào File / New / File để tạo ra một file mới, hiện ra của sổ:
Posted Image

Bạn hãy chọn thư mục đặt file trong project của bạn, gõ tên file (chú ý đuôi file), sau đó bấm Finish để hoàn thành tạo file mới. Chúng ta bắt đầu viết một chương trình.
Đoạn code như sau:
import javax.microedition.lcdui.*;
                import javax.microedition.midlet.*;
                public class test extends MIDlet implements CommandListener{
                        private Form    mainForm;
                        public test(){
                                mainForm        =       new     Form("Lap trinh tren nen J2ME");
                                mainForm.append(new StringItem(null,"Hello J2ME"));
                                mainForm.addCommand(new Command("Exit", Command.EXIT, 0));
                                mainForm.setCommandListener(this);
                        }
               
                        public void startApp(){
                                Display.getDisplay(this).setCurrent(mainForm);
                        }
               
                        public void pauseApp(){}
                        public void destroyApp(boolean un){}
                        public void commandAction(Command c, Displayable s){
                                notifyDestroyed();
                        }
                }

Bạn đừng thắc mắc đoạn code trên làm gì, tại sao. Tui sẽ giải thích trong bài sau, hiện giờ ta chỉ dùng để kiểm tra các việc mình vừa làm đã dúng chưa thôi. Bạn hãy kiểm tra xem code đã đúng chưa, ok rồi thì bấm chuột phải tên project (Test), chọn Run as / Run . Hiện ra một bảng, hãy chọn Run, sẽ có kết quả như sau:
Resized to 73% (was 931 x 572) - Click image to enlarge
Posted Image


Vậy là OK rồi, tất cả đếu chạy tốt. Chúng ta đã chuẩn bị đầy đủ các thứ tạm ổn dùng để lập trình trên J2ME

Vậy là bạn đã có thể làm quen với J2ME rồi. Bây giờ tui giới thiệu một cách chạy ứng dụng mà không cần EasyEclipse, chỉ cần sử dụng WTK. 
Sau khi cài đặt WTK, trên màn hình máy tính của bạn sẽ xuất hiện một shortcut có tên KtoolBar, đây chính là chương trình ta sẽ dùng để chạy ứng dụng. Nếu không thấy, bạn có thể vào C:\WTK\bin để tìm, chương trình là file ktoolbar.exe. Hãy chạy chương trình này, sẽ mở ra ứng dụng KToolBar
Để có thể chạy được các ứng dụng viết trên J2ME, bạn cần tạo ra một project để lưu các file, chọn New Project, hiện ra cửa sổ.
Bạn hãy viết tên Project và tên file, hai cái không nhất thiết phải giống nhau. Sau đó bấm Create Project để tạo ra Project mới. Màn hình Console của KtoolBar sẽ như sau, chú ý vùng mà tui khoanh đỏ, đấy chính là nơi các file .java của bạn được lưu vào. Bạn cần lưu các file này vào đấy thì KtoolBar mới sử dụng được:
Posted Image

Hãy dùng bất cứ cái gì mà bạn có thể soạn được vài dòng code, hãy soạn đoạn code lúc nãy và lưu vào đường dẫn trong dấu khoanh đỏ kia với đuôi là .java 
Posted Image

Bây giờ bấm Build để build project của bạn, nếu thành công thì sẽ như hình trên, nếu không thì sẽ in ra lỗi. Ok rồi thì bấm Run để chạy chương trình, kết quả sẽ như sau:
Posted Image

Bạn hãy bấm chuột vào nút Select trên điện thoại, sẽ có kết quả.
Hãy so sánh kết quả chương trình Run bằng EasyEclipse và bằng KtoolBar xem có gì khác nhau.

Thử nghiệm viết chương trình “Hell World” đơn giản
Khởi động Eclipse tạo project mới với tên là HelloWorld

Nhấn vào Manage Device sau đó ấn Import chọn đường dẫn đến thư mục đã cài đặt Sun Java Wireless Toolkit

Sau đó bạn đã có thể chọn loại thiết bị mà dự án của bạn sẽ chạy thử nghiệm trên đó . Cuối cùng nhấn Finish

 

Giờ bạn bắt đầu viết chương trình đầu tiên của mình trên thiết bị di động rồi đấy . Nhấn chuột phải vào project chọn New\Other\J2ME Midlet đặt tên là HelloWorldMIDlet

Gõ vào đoạn mã sau :
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class HelloWorldMIDlet extends MIDlet {

public HelloWorldMIDlet() {
// TODO Auto-generated constructor stub
}

protected void destroyApp(boolean arg0) throws     MIDletStateChangeException {
// TODO Auto-generated method stub

}

protected void pauseApp() {
// TODO Auto-generated method stub

}

protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
Form f = new Form("Hello World");
Display.getDisplay(this).setCurrent(f);
}

}

Kết quả chương trình đầu tiên của bạn :

Có rất nhiều trình giả lập thiết bị di động do các hãng sản xuất điện thoại cung cấp ví dụ bạn có thể vào Nokia SDK để tải về công cụ hỗ trợ phát triển ứng dụng trên điện thoại của hãng Nokia

Để đóng gói ứng dụng thành tệp jar và jad bạn ấn chuột phải vào dự án chọn J2ME\Create Package . Lúc này trong thư mục deployed sẽ có hai tệp mới được tạo ra là HelloWorld.jar và HelloWorld.jad
Bài tập:

  • Cài đặt, kiểm tra xem các chương trình đã chạy đúng chưa. Dùng đoạn code đã cho để tìm hiểu các chức năng của EasyEclipse và KtoolBar.

  • Tìm hiểu xem các đoạn code trong chương trình trên có tác dụng như thế nào.

  • WTK có các chương trình Demo, hãy dùng KtoolBar / Open Project để chọn project có sẵn. Build và Run để xem kết quả


Post a Comment

Mới hơn Cũ hơn