DaiThanh
18-09-2009, 04:24 PM
http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_189/j2me0.jpg
Bài viết này sẽ cung cấp một cái nhìn sâu hơn về các IDEs hàng đầu cung cấp các tiện ích cho việc phát triển J2ME sử dụng MIDP/CLDC.
Bài viết không định đưa ra một cái nhìn đầy đủ về tất cả các tính năng mà mỗi IDE cung cấp. Thay vào đó, tập trung vào các tính năng chuyên biệt dành cho lập trình viên J2ME.
Sau khi giới thiệu các khái niệm về J2ME và IDE, bài viết sẽ dành phần lớn để đề cập chi tiết các tiện ích J2ME mà từng IDE cung cấp.
Khái quát về J2ME
Khi chúng ta bước vào hậu kỷ nguyên của PC, thị trường các thiết bị tiêu dùng có kết nối mạng – ví dụ như điện thoại di động thông minh, truyền hình, VCR (đầu máy video) và PDA – hứa hẹn phát triển với một tốc độ phi thường. Nhằm mục đích cung cấp một giải pháp Java thuyết phục cho các thiết bị này, Sun đã giới thiệu phiên bản mới nhất của nền tảng Java: Java 2 Micro Edition (J2ME).
Trong J2ME, có hai phân loại chính, được gọi là cấu hình (configuration). Connected Device Configuration (CDC) là một tập các API để hỗ trợ các thiết bị cố định chẳng hạn như hộp set-top box TV. Connected Limited Device Configuration (CLDC) là một tập các API nhắm vào các thiết bị có năng lực xử lý, màn hình và bộ nhớ bị giới hạn. Đa số các thiết bị này có khả năng di động.
Đứng trên các configuration là hiện trạng (profile). Profile cung cấp các API dùng để thiết kế giao diện người dùng, hỗ trợ mạng, và lưu trữ bền vững. Mobile Information Device Profile (MIDP) là một tập các API, cùng với CLDC, cung cấp một môi trường ứng dụng J2ME hoàn chỉnh nhắm vào các thiết bị di động, chẳng hạn như điện thoại di động, máy nhắn tin và các máy PDA ra vào.
Bài viết này sẽ tập trung vào việc phát triển các ứng dụng J2ME MIDP. Một ứng dụng MIDP được gọi là MIDlet. Một bộ MIDlet (MIDlet suite) bao gồm một hoặc nhiều MIDlet được đóng gói chung với nhau. MIDlet suite có thể được triển khai và thực thi trên thiết bị di động.
Các ứng dụng MIDP nói chung được phát triển sử dụng các công cụ trên một trạm phát triển. Sun cung cấp bộ công cụ phát triển MIDP/CLD JDK bao gồm các công cụ phát triển command line và một tập các bộ giả lập mẫu để kiểm thử các ứng dụng mà không cần phải triển khai sang thiết bị thật. Một số nhà sản xuất thiết bị cũng cung cấp bộ JDK và trình giả lập của riêng họ.
Vòng đời phát triển ứng dụng J2ME
Nói chung, vòng đời phát triển ứng dụng MIDP được tiến hành qua các giai đoạn như sau:
-Viết mã Java code
-Biên dịch
-Obfuscate (tùy chọn). Obfuscate sẽ loại bỏ các thông tin không cần thiết trong class, chẳng hạn như tên của các biến cục bộ. Các lớp, phương thức, interface,... cũng được đổi tên để làm cho chúng khó hiểu hơn. Một gói đã được obfuscate sẽ bảo vệ các tập tin class khỏi việc dịch ngược (decompile) và reverse engineering. Ngoài việc bảo vệ mã nguồn, obfuscate còn giảm kích thước của các tập tin class, làm cho kích thước của tập tin JAR cũng giảm đi. Việc giảm kích thước rất có ý nghĩa bởi vì các thiết bị MIDP thường có bộ nhớ bị giới hạn.
-Pre-verify (tiền kiểm tra). Bộ kiểm tra (verify) trong J2SE tốn ít nhất là 50 KB, không kể việc tiêu tốn vùng nhớ heap và thời gian xử lý. Để giảm việc tiêu tốn này cho J2ME, việc kiểm tra tập tin class sẽ được chia thành hai giai đoạn. Quá trình tiền kiểm tra trước khi triển khai sẽ thêm vào các tập tin class các tham số phụ để tăng tốc quá trình kiểm tra lúc thực thi. Chính thiết bị sẽ thực hiện quá trình kiểm tra sơ qua sử dụng các tham số phụ được phát sinh trong quá trình tiền kiểm tra.
-Tạo tập tin JAR
-Tạo tập tin JAD
-Thực thi trên trình giả lập thích hợp
-Triển khai trên thiết bị di động
-Các J2ME IDE
Một môi trường phát triển tích hợp (IDE) nhằm để cải thiện năng suất của lập trình viên bằng cách cung cấp một tập các công cụ lập trình tích hợp thông qua một giao diện người dùng đồ họa (GUI)
Nguyên tắc của Java IDE là mong muốn có một công cụ soạn thảo, một công cụ quản lý project, một môi trường biên dịch và một trình gỡ rối (debugger). Tuy nhiên, vì thị trường IDE đã lớn mạnh, các nhà cung cấp hàng đầu phải đưa ra các tính năng mới để phân biệt các sản phẩm của họ với đối thủ cạnh tranh.
Lúc đầu, các Java IDE nhắm vào J2SE. Tuy nhiên, khi J2EE đạt được sự chấp thuận rộng rãi, các nhà cung cấp tiến hành hỗ trợ phát triển các ứng dụng enterprise sử dụng J2EE vào các IDE của họ.
Thành viên mới nhất trong gia đình Java là J2ME. Nhiều chuyên gia đã dự đoán về sự phát triển lớn mạnh của thị trường phát triển các ứng dụng J2ME, các nhà cung cấp đã đưa ra các bản mở rộng cho các sản phẩm IDE của họ để hỗ trợ thêm J2ME. Ngoài ra, cácnhà cung cấp chuyên nghiệp cũng đã phát triển các IDE J2ME đơn.
Một IDE cho J2ME cần phải cung cấp các tiện ích sau:
- Quản lý project. Quản lý các tập tin nguồn và các thông số MIDlet
- Trình soạn thảo. Soạn thảo mã nguồn và các tài nguyên
Build. Biên dịch, obfuscate và pre-verify mã nguồn
- Đóng gói (package). Đóng gói các MIDlet thành các tập tin JAR và JAD
- Giả lập (emulation). Thực thi các MIDlet với một trình giả lập
- Gỡ rối (debugger). Gỡ rối MIDlet
Bài viết sẽ cố gắng điểm qua các J2ME IDE phổ biến và nổi tiếng sau:
1. Sun J2ME Wireless Toolkit 2.2
2. Borland Jbuilder
3. NetBeans IDE
4. IntellicliJ IDEA 3089
5. Eclipse với EcliJ IDEA 3089
pseME plug-inpseME plug-in
6. Sun J2ME Wireless Toolkit 2.2
Giới thiệu
J2ME Wireless Toolkit (WTK)
J2ME Wireless Toolkit (WTK) là một bộ công cụ phát triển Java J2ME (Java Development Kit - JDK) cung cấp cho các lập trình viên môi trường giả lập, công cụ, tài liệu và các ví dụ cần thiết để phát triển các ứng dụng MIDP.
WTK không phải là một IDE hoàn chỉnh, bởi vì nó đã bỏ các tính năng soạn thào và gỡ rối vốn được xem là bắt buộc phải có trong một IDE. Tuy nhiên, KToolbar, được cung cấp trong bộ WTK là một môi trường phát triển tối thiểu cung cấp một GUI dành cho việc biên dịch, đóng gói và thực thi các ứng dụng MIDP.
WTK 2.2 cũng cung cấp các bộ giả lập đã được cải tiến với các tính năng giả lập, monitor và debug mới. Ngoài ra, WTK cũng có một cơ chế được thêm vào tiến trình build của KToolbar để cho phép việc tích hợp và thực thi bộ obfuscate Java byte code khi đóng gói MIDlet suite.
WTK 2.2 được cải thiện tốc độ và hỗ trợ các API mới theo chuẩn được định nghĩa bởi JCP:
- Connected Limited Device Configuration (CLDC) 1.1 (JSR 139)
- Mobile Information Device Profile (MIDP) 2.0 (JSR 118)
- Java Technology for the Wireless Industry (JTWI) 1.0 (JSR 185)
- Wireless Messaging API (WMA) 2.0 (JSR 205)
- Mobile Media API (MMAPI) 1.1 (JSR 135)
- PDA Optional Packages for the J2ME Platform (JSR 75)
- Java APIs for Bluetooth (JSR 82)
- J2ME Web Services Specification (JSR 172)
- Mobile 3D Graphics API for J2ME (JSR 184)
Các yêu cầu đầu tiên
WTK hỗ trợ Windows XP. Ngoài ra còn có phiên bản WTK cho Solaris và Linux (không được hỗ trợ).
WTK yêu cầu phần cứng cho tất cả các nền tảng như sau:
- 800 Mhz P cứng
- 128 MB System RAM
- Java 2 SDK, phiên bản 1.4.2 hoặc cao hơn phải được cài đặt trước khi cài WTK.
- Cài đặtentium III CPU
- 50 MB dung lượng đĩa
WTK được phân phối thành một tập tin thực thi đơn và có thể được download từ địa chỉ:
http://java.sun.com/products/j2mewtoolkit/
Khi bắt đầu cài đặt, trình cài đặt sẽ tìm bộ Java 2 SDK thích hợp. Trình cài đặt sẽ thông báo và hỏi vị trí thư mục Java 2 SDK mà nó tìm thấy. Bước này có thể bỏ qua nếu cần.
Chú ý: Trình cài đặt có thể chỉ tìm thấy môi trường thực thi Java 2 (J2RE). J2RE sẽ cho phép bạn chạy các ứng dụng J2ME. Nếu bạn muốn phát triển các ứng dụng J2ME, bạn phải download và cài đặt J2SDK, và trước khi tiếp tục quá trình cài đặt, bạn phải chỉ rõ thư mục cài đặt J2SDK trên máy tính của mình.
Bước tiếp theo, trình cài đặt sẽ yêu cầu chọn thư mục cho bộ WTK. Bước này cũng có thể bỏ qua.
Sau đó bộ WTK đã được cài đặt.
Quản lý project
Ứng dụng KToolbar cung cấp một môi trường phát triển GUI trong WTK
Project trong KToolbar được gán với một bộ MIDlet suite. Trong KToolbar có sẵn các tiện ích hữu dụng để tạo project mới và mở các project có sẵn. Ngoài ra, bạn có thể hiệu chỉnh các thông số của bộ MIDlet suite. Các thông số này được sử dụng trong quá trình đóng gói, và đưa vào các file JAR và JAD được tạo.
http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_189/j2me1_1.jpg
Hình 1WTK KToolbar
Mỗi project có một thư mục dành riêng trong thư mục apps. Thư mực apps nằm bên trong thư mục chính của WTK.
http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_189/j2me2.jpg
Các thư viện ngoại có thể được cấu hình bên trong KToolbar. Ngoài ra, các thư viện cần thiết cho từng project có thể được chép thủ công vào thư mục lib bên trong thư mục project. Nếu một thư viện cần cho tất cả project, nó có thể được chép vào thư mục apps/lib.
Khi KToolbar project được tạo ra, cấu trúc thư mục project sẽ được thiết lập. Ngoài ra các tập tin JAD va manifest cũng được phát sinh dựa vào các thông số của MIDlet suite đã được xác định.Tuy nhiên, không có tập tin nguồn nào được phát sinh cho MIDlet. Lập trình viên phải viết các tập tin nguồn này từ đầu.
KToolbar không hỗ trợ nạp nhiều project trong một GUI.
Trình soạn thảo
KTK không cung cấp một trình soạn thảo tích hợp nào. Thay vào đó, bạn phải sử dụng một trình soạn thảo của hãng thứ ba (Gel http://www.gexperts.com, JCreator http://www.jcreator.com được khuyến khích sử dụng).
Bài viết này sẽ cung cấp một cái nhìn sâu hơn về các IDEs hàng đầu cung cấp các tiện ích cho việc phát triển J2ME sử dụng MIDP/CLDC.
Bài viết không định đưa ra một cái nhìn đầy đủ về tất cả các tính năng mà mỗi IDE cung cấp. Thay vào đó, tập trung vào các tính năng chuyên biệt dành cho lập trình viên J2ME.
Sau khi giới thiệu các khái niệm về J2ME và IDE, bài viết sẽ dành phần lớn để đề cập chi tiết các tiện ích J2ME mà từng IDE cung cấp.
Khái quát về J2ME
Khi chúng ta bước vào hậu kỷ nguyên của PC, thị trường các thiết bị tiêu dùng có kết nối mạng – ví dụ như điện thoại di động thông minh, truyền hình, VCR (đầu máy video) và PDA – hứa hẹn phát triển với một tốc độ phi thường. Nhằm mục đích cung cấp một giải pháp Java thuyết phục cho các thiết bị này, Sun đã giới thiệu phiên bản mới nhất của nền tảng Java: Java 2 Micro Edition (J2ME).
Trong J2ME, có hai phân loại chính, được gọi là cấu hình (configuration). Connected Device Configuration (CDC) là một tập các API để hỗ trợ các thiết bị cố định chẳng hạn như hộp set-top box TV. Connected Limited Device Configuration (CLDC) là một tập các API nhắm vào các thiết bị có năng lực xử lý, màn hình và bộ nhớ bị giới hạn. Đa số các thiết bị này có khả năng di động.
Đứng trên các configuration là hiện trạng (profile). Profile cung cấp các API dùng để thiết kế giao diện người dùng, hỗ trợ mạng, và lưu trữ bền vững. Mobile Information Device Profile (MIDP) là một tập các API, cùng với CLDC, cung cấp một môi trường ứng dụng J2ME hoàn chỉnh nhắm vào các thiết bị di động, chẳng hạn như điện thoại di động, máy nhắn tin và các máy PDA ra vào.
Bài viết này sẽ tập trung vào việc phát triển các ứng dụng J2ME MIDP. Một ứng dụng MIDP được gọi là MIDlet. Một bộ MIDlet (MIDlet suite) bao gồm một hoặc nhiều MIDlet được đóng gói chung với nhau. MIDlet suite có thể được triển khai và thực thi trên thiết bị di động.
Các ứng dụng MIDP nói chung được phát triển sử dụng các công cụ trên một trạm phát triển. Sun cung cấp bộ công cụ phát triển MIDP/CLD JDK bao gồm các công cụ phát triển command line và một tập các bộ giả lập mẫu để kiểm thử các ứng dụng mà không cần phải triển khai sang thiết bị thật. Một số nhà sản xuất thiết bị cũng cung cấp bộ JDK và trình giả lập của riêng họ.
Vòng đời phát triển ứng dụng J2ME
Nói chung, vòng đời phát triển ứng dụng MIDP được tiến hành qua các giai đoạn như sau:
-Viết mã Java code
-Biên dịch
-Obfuscate (tùy chọn). Obfuscate sẽ loại bỏ các thông tin không cần thiết trong class, chẳng hạn như tên của các biến cục bộ. Các lớp, phương thức, interface,... cũng được đổi tên để làm cho chúng khó hiểu hơn. Một gói đã được obfuscate sẽ bảo vệ các tập tin class khỏi việc dịch ngược (decompile) và reverse engineering. Ngoài việc bảo vệ mã nguồn, obfuscate còn giảm kích thước của các tập tin class, làm cho kích thước của tập tin JAR cũng giảm đi. Việc giảm kích thước rất có ý nghĩa bởi vì các thiết bị MIDP thường có bộ nhớ bị giới hạn.
-Pre-verify (tiền kiểm tra). Bộ kiểm tra (verify) trong J2SE tốn ít nhất là 50 KB, không kể việc tiêu tốn vùng nhớ heap và thời gian xử lý. Để giảm việc tiêu tốn này cho J2ME, việc kiểm tra tập tin class sẽ được chia thành hai giai đoạn. Quá trình tiền kiểm tra trước khi triển khai sẽ thêm vào các tập tin class các tham số phụ để tăng tốc quá trình kiểm tra lúc thực thi. Chính thiết bị sẽ thực hiện quá trình kiểm tra sơ qua sử dụng các tham số phụ được phát sinh trong quá trình tiền kiểm tra.
-Tạo tập tin JAR
-Tạo tập tin JAD
-Thực thi trên trình giả lập thích hợp
-Triển khai trên thiết bị di động
-Các J2ME IDE
Một môi trường phát triển tích hợp (IDE) nhằm để cải thiện năng suất của lập trình viên bằng cách cung cấp một tập các công cụ lập trình tích hợp thông qua một giao diện người dùng đồ họa (GUI)
Nguyên tắc của Java IDE là mong muốn có một công cụ soạn thảo, một công cụ quản lý project, một môi trường biên dịch và một trình gỡ rối (debugger). Tuy nhiên, vì thị trường IDE đã lớn mạnh, các nhà cung cấp hàng đầu phải đưa ra các tính năng mới để phân biệt các sản phẩm của họ với đối thủ cạnh tranh.
Lúc đầu, các Java IDE nhắm vào J2SE. Tuy nhiên, khi J2EE đạt được sự chấp thuận rộng rãi, các nhà cung cấp tiến hành hỗ trợ phát triển các ứng dụng enterprise sử dụng J2EE vào các IDE của họ.
Thành viên mới nhất trong gia đình Java là J2ME. Nhiều chuyên gia đã dự đoán về sự phát triển lớn mạnh của thị trường phát triển các ứng dụng J2ME, các nhà cung cấp đã đưa ra các bản mở rộng cho các sản phẩm IDE của họ để hỗ trợ thêm J2ME. Ngoài ra, cácnhà cung cấp chuyên nghiệp cũng đã phát triển các IDE J2ME đơn.
Một IDE cho J2ME cần phải cung cấp các tiện ích sau:
- Quản lý project. Quản lý các tập tin nguồn và các thông số MIDlet
- Trình soạn thảo. Soạn thảo mã nguồn và các tài nguyên
Build. Biên dịch, obfuscate và pre-verify mã nguồn
- Đóng gói (package). Đóng gói các MIDlet thành các tập tin JAR và JAD
- Giả lập (emulation). Thực thi các MIDlet với một trình giả lập
- Gỡ rối (debugger). Gỡ rối MIDlet
Bài viết sẽ cố gắng điểm qua các J2ME IDE phổ biến và nổi tiếng sau:
1. Sun J2ME Wireless Toolkit 2.2
2. Borland Jbuilder
3. NetBeans IDE
4. IntellicliJ IDEA 3089
5. Eclipse với EcliJ IDEA 3089
pseME plug-inpseME plug-in
6. Sun J2ME Wireless Toolkit 2.2
Giới thiệu
J2ME Wireless Toolkit (WTK)
J2ME Wireless Toolkit (WTK) là một bộ công cụ phát triển Java J2ME (Java Development Kit - JDK) cung cấp cho các lập trình viên môi trường giả lập, công cụ, tài liệu và các ví dụ cần thiết để phát triển các ứng dụng MIDP.
WTK không phải là một IDE hoàn chỉnh, bởi vì nó đã bỏ các tính năng soạn thào và gỡ rối vốn được xem là bắt buộc phải có trong một IDE. Tuy nhiên, KToolbar, được cung cấp trong bộ WTK là một môi trường phát triển tối thiểu cung cấp một GUI dành cho việc biên dịch, đóng gói và thực thi các ứng dụng MIDP.
WTK 2.2 cũng cung cấp các bộ giả lập đã được cải tiến với các tính năng giả lập, monitor và debug mới. Ngoài ra, WTK cũng có một cơ chế được thêm vào tiến trình build của KToolbar để cho phép việc tích hợp và thực thi bộ obfuscate Java byte code khi đóng gói MIDlet suite.
WTK 2.2 được cải thiện tốc độ và hỗ trợ các API mới theo chuẩn được định nghĩa bởi JCP:
- Connected Limited Device Configuration (CLDC) 1.1 (JSR 139)
- Mobile Information Device Profile (MIDP) 2.0 (JSR 118)
- Java Technology for the Wireless Industry (JTWI) 1.0 (JSR 185)
- Wireless Messaging API (WMA) 2.0 (JSR 205)
- Mobile Media API (MMAPI) 1.1 (JSR 135)
- PDA Optional Packages for the J2ME Platform (JSR 75)
- Java APIs for Bluetooth (JSR 82)
- J2ME Web Services Specification (JSR 172)
- Mobile 3D Graphics API for J2ME (JSR 184)
Các yêu cầu đầu tiên
WTK hỗ trợ Windows XP. Ngoài ra còn có phiên bản WTK cho Solaris và Linux (không được hỗ trợ).
WTK yêu cầu phần cứng cho tất cả các nền tảng như sau:
- 800 Mhz P cứng
- 128 MB System RAM
- Java 2 SDK, phiên bản 1.4.2 hoặc cao hơn phải được cài đặt trước khi cài WTK.
- Cài đặtentium III CPU
- 50 MB dung lượng đĩa
WTK được phân phối thành một tập tin thực thi đơn và có thể được download từ địa chỉ:
http://java.sun.com/products/j2mewtoolkit/
Khi bắt đầu cài đặt, trình cài đặt sẽ tìm bộ Java 2 SDK thích hợp. Trình cài đặt sẽ thông báo và hỏi vị trí thư mục Java 2 SDK mà nó tìm thấy. Bước này có thể bỏ qua nếu cần.
Chú ý: Trình cài đặt có thể chỉ tìm thấy môi trường thực thi Java 2 (J2RE). J2RE sẽ cho phép bạn chạy các ứng dụng J2ME. Nếu bạn muốn phát triển các ứng dụng J2ME, bạn phải download và cài đặt J2SDK, và trước khi tiếp tục quá trình cài đặt, bạn phải chỉ rõ thư mục cài đặt J2SDK trên máy tính của mình.
Bước tiếp theo, trình cài đặt sẽ yêu cầu chọn thư mục cho bộ WTK. Bước này cũng có thể bỏ qua.
Sau đó bộ WTK đã được cài đặt.
Quản lý project
Ứng dụng KToolbar cung cấp một môi trường phát triển GUI trong WTK
Project trong KToolbar được gán với một bộ MIDlet suite. Trong KToolbar có sẵn các tiện ích hữu dụng để tạo project mới và mở các project có sẵn. Ngoài ra, bạn có thể hiệu chỉnh các thông số của bộ MIDlet suite. Các thông số này được sử dụng trong quá trình đóng gói, và đưa vào các file JAR và JAD được tạo.
http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_189/j2me1_1.jpg
Hình 1WTK KToolbar
Mỗi project có một thư mục dành riêng trong thư mục apps. Thư mực apps nằm bên trong thư mục chính của WTK.
http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_189/j2me2.jpg
Các thư viện ngoại có thể được cấu hình bên trong KToolbar. Ngoài ra, các thư viện cần thiết cho từng project có thể được chép thủ công vào thư mục lib bên trong thư mục project. Nếu một thư viện cần cho tất cả project, nó có thể được chép vào thư mục apps/lib.
Khi KToolbar project được tạo ra, cấu trúc thư mục project sẽ được thiết lập. Ngoài ra các tập tin JAD va manifest cũng được phát sinh dựa vào các thông số của MIDlet suite đã được xác định.Tuy nhiên, không có tập tin nguồn nào được phát sinh cho MIDlet. Lập trình viên phải viết các tập tin nguồn này từ đầu.
KToolbar không hỗ trợ nạp nhiều project trong một GUI.
Trình soạn thảo
KTK không cung cấp một trình soạn thảo tích hợp nào. Thay vào đó, bạn phải sử dụng một trình soạn thảo của hãng thứ ba (Gel http://www.gexperts.com, JCreator http://www.jcreator.com được khuyến khích sử dụng).