PDA

View Full Version : Các công cụ lập trình cho J2ME



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).

DaiThanh
18-09-2009, 04:38 PM
Build/Đóng gói

KToolbar cung cấp các tiện ích tích hợp sẵn để build project. Project được biên dịch và pre-verified chung trong một trình tự.
Một tiện ích riêng được cung cấp để đóng gói các file project sẵn sàng để triển khai. Gói này chứa file JAR và file JAD của bộ MIDlet suite.

WTK có một plug-in để obfuscate các gói thông qua bộ obfuscate ProGuard. ProGuard không được cung cấp trong bộ WTK, nhưng có thể được download miễn phí tại http://proguard.sourceforge.net/. Việc cài đặt khá đơn giản:
1.Vào địa chỉ http://proguard.sourceforge.net/
2.Chọn link “Download”
3.Chọn “Download section”
4.Chọn phiên bản mới nhất của proguard.zip và save vào máy.
5.Giải nén file proguard.jar từ proguard.zip vào thư mục con bin của bộ WTK.
Nếu thích dùng bộ obfuscator khác, thì cần phải thêm plug-in. Nếu không, phải thực hiện việc obfuscate code thủ công, bên ngoài KToolbar, trước khi đóng gói.
Giả lập
WTK cung cấp sẵn các trình giả lập tích hợp để chạy các ứng dụng MIDP.

http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_193/j2me3.jpg

Hình 3Trình giả lập của WTK

Trình giả lập sử dụng cấu hình mẫu MIDP/CLDC của Sun. Do đó, look-and-feel của màn hình UI chỉ có tính tham khảo và không phản ánh một thiết bị cụ thể nào.
Ngoài ra, WTK còn cung cấp một trình quản lý ứng dụng (application manager) mẫu, hỗ trợ việc cài đặt, bảo trì, và gỡ bỏ các ứng dụng trên thiết bị. Tuy nhiên, trình quản lý ứng dụng mẫu này cũng không giả lập bất kỳ trình quản lý ứng dụng cụ thể nào, bởi vì hoạt động của các trình quản lý ứng dụng khác nhau tùy theo thiết bị.
Các thiết bị sau được hỗ trợ:
DefaultColorPhone. Điện thoại mẫu với màn hình màu.
DefaultGrayPhone. Điện thoại mẫu với màn hình mức xám.
MediaControlSkin. Điện thoại mẫu với các điều khiển video và audio.
QwertyDevice. Điện thoại mẫu sử dụng bàn phím kiểu QWERTY.
Ta cũng có thể tùy chỉnh trình giả lập cho các thiết bị. Việc tùy chỉnh bao gồm kích thước của màn hình giả lập, vị trí của các tập tin hình ảnh được dùng để hiển thị thiết bị, và các vùng kích hoạt trong các hình này dùng để biểu diễn các nút nhấn. Tuy nhiên, nó không hữu dụng lắm, bởi vì không thể tùy chỉnh look-and-feel của giao diện màn hình.
WTK 2.2 còn có tính năng giả lập tốc độ. Nó cho phép hiệu suất của bộ giả lập được kéo xuống để phản ánh tốt hơn hiệu suất trên thiết bị thật. Phát triển ứng dụng trên môi trường hiệu suất chậm giúp dễ dàng theo dõi và tối ưu mã lệnh cho các thiết bị thấp.
Tính năng hiệu suất không thể giả lập chính xác hiệu suất của một thiết bị cụ thể. Tuy nhiên, nó có thể giúp ích cho việc cung cấp một sự ước lượng tương đối.


Hình 4 Cấu hình KToolbar Preferences

Nói chung là ta có thể hiệu chỉnh các tham số hiệu suất, dùng để điều khiển đồ họa, máy ảo (VM) và tốc độ mạng.
Bộ gỡ rối
WTK không cung cấp một bộ gỡ rối tích hợp nào. Thay vào đó, phải sử dụng một bộ gỡ rối của hãng thứ ba.
Tuy nhiên, WTK có cung cấp một số khả năng dò vết có giới hạn. Các sự kiện sau đây có thể được lưu dấu trong quá trình giả lập:
- Bộ dọn rác (garbage collection).
- Nạp các lớp (class loading).
- Gọi hàm (method calls)
- Ngoại lệ (exceptions)
Ngoài ra, stdout và stderr cũng được cửa sổ KToolbar bắt được.
WTK cho phép phân tích chi tiết quá trình thực thi của MIDlet.

Hình 5Cấu hình WTK monitor

Profiler cho phép kiểm tra thời gian thực thi và tần suất của các lời gọi hàm trong MIDlet.
Memory monitor cho phép theo dõi việc sử dụng bộ nhớ trong MIDlet.
Network monitor cho phép theo dõi việc chuyển vận giữa MIDlet và mạng. Điều này đặc biệt hữu dụng khi MIDlet giao tiếp với một tiến trình phụ trợ (back-end), chẳng hạn như một servlet, thông qua HTTP. Bộ monitor cũng cho phép kiểm tra các HTTP request/response mà MIDlet thực hiện. Bộ monitor cũng hỗ trợ theo dõi giao thức HTTPS.

Kết luận

WTK cung cấp một môi trường cơ bản khá tốt để phát triển các MIDlet. Rõ ràng, vì thiếu tính năng tích hợp sẵn trình soạn thảo và bộ gỡ rối, nó không thể (và thật sự nó cũng không nhắm đến) cạnh tranh với các IDE thương mại có sẵn.
Tuy nhiên, WTK cung cấp một bước khởi đầu cho các lập trình viên J2ME. Bằng cách qui định cấu trúc thư mục project, nó cho phép lập trình viên có thể xây dựng ứng dụng của mình ngay lập tức mà không phải quan tâm đến kiến trúc hạ tầng thư mục. Điều này thường được các lập trình viên mới bắt đầu lập trình J2EE phàn nàn, hãy chờ xem Sun có quan tâm đến lời phàn nàn này hay không.
Cuối cùng, bộ WTK là miễn phí và khá nhỏ để download. Các lập trình viên J2ME mới bắt đầu nên tập làm quen với WTK trước. Tuy nhiên, các lập trình viên J2ME có kinh nghiệm đã quen với các dự án thương mại lớn, một IDE thương mại sẽ cung cấp một môi trường phát triển năng suất cao hơn nhiều.

DaiThanh
18-09-2009, 04:42 PM
http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_194/borland2005.jpg

Borland đã đưa ra bộ mở rộng MobileSet để tích hợp tính năng phát triển các ứng dụng J2ME vào JBuilder kể từ phiên bản JBuilder 6 đến JBuilder 9 Personal. Các phiên bản JBuilder 9 Developer, Enterprise, Mobile và các phiên bản cao hơn không cần cài đặt thêm bộ MobileSet, J2ME đã được tích hợp sẵn vào các phiên bản này. Bài viết này sử dụng phiên bản JBuilder 2005 để làm ví dụ.

ôi trường làm việc của JBuilder cho J2ME hoàn toàn giống như công việc phát triển Java bình thường, ngoại trừ một điều là có thêm các tab và option trong các hộp thoại, và hai wizard mới: MIDP MIDlet wizard và MIDP Displayable wizard.
Ngoài ra, trong phiên bản JBuilder Professional và Enterprise, trình Archive Builder bây giờ có thể tạo ra một MIDlet suite và các tập tin manifest và JAD tương ứng.
JBuilder 2005 cũng cài đặt WTK 2.1 được sử dụng như một môi trường giả lập. Tuy nhiên, JBuilder còn cung cấp các hướng dẫn cho việc tích hợp thêm các J2ME JDK khác, chẳng hạn như Nokia Developer Suite for J2ME và Siemens Mobility Toolkit (SMTK).
Ngoài các tính năng chính của JBuilder, khi lập trình J2ME ta được thêm các tính năng sau:
- Code completion cho các lớp CLDC/MIDP
- Duyệt class/package cho các lớp CLDC/MIDP
- Chuyển đổi JDK
- Các MIDP wizard
- Bộ thiết kế trực quan (visual designer) cho các thành phần giao diện MIDP
- Công cụ gỡ rối MIDlet
- Đóng gói file JAD và JAR
- Nạp dữ liệu thông qua OTA (Over The Air Provisioning)
Yêu cầu hệ thống
JBuilder 2005 hỗ trợ Microsoft Windows 2000 (SP4), Windows XP, Windows 2003 Standard Edition, hoặc Windows 2003 Enterprise Edition.
Yêu cầu phần cứng:
- Pentium III CPU 800 MHz
- 512 MB RAM (minimum), 768 MB RAM (recommended)
- 650 MB không gian đĩa cứng (tùy vào các tính năng được cài đặt)
Cài đặt
Cài đặt theo hướng dẫn của JBuilder.
Theo mặc định, JBuilder được cấu hình để sử dụng J2SE JDK và WTK 2.1. Để hỗ trợ phát triển J2ME, ta có thể cấu hình JBuilder để sử dụng các J2ME JDK khác, chẳng hạn WTK 2.2 hoặc WTK 1.4.
Trong phiên bản JBuilder Professional và Enterprise, có thể định nghĩa nhiều hơn một bộ JDK và các bộ JDK có thể được chuyển đổi trong một project khi bắt đầu project. Trong phiên bản Personal, chỉ có một JDK có thể được xác định để áp dụng cho mọi project.

http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_194/6.jpg

Hình 6. Cấu hình J2ME JDK

Quản lý Project
Quá trình phát triển trong JBuilder gắn liền với khái niệm project.
Tập tin project chứa danh sách các tập tin trong project và các thuộc tính của project. JBuilder sử dụng các thông tin này khi project được nạp (load), lưu (save), build và run.

Các tập tin project được hiệu chỉnh mỗi khi thêm hoặc xóa file, hoặc khi thiết lập, thay đổi các thuộc tính của project.
Khi phát triển các ứng dụng MIDP, project phải được gắn kết với một J2ME JDK trước khi các tính năng J2ME có thể truy xuất được. Thông số của project sẽ có tác dụng trên bộ

MIDlet suite mà trong đó có thể thêm vào một hay nhiều MIDlet.
Để tạo một project mới, JBuilder cung cấp một wizard để phát sinh khung cơ bản cho các tập tin, thư mục, đường dẫn và các cấu hình preference. Project sau khi khởi tạo sẽ rỗng.

http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_194/7.jpg

Hình 7 JBuiler Project Wizard

Có một wizard để cho phép thêm các MIDlet. Wizard này sẽ phát sinh các tập tin sườn (skeleton) dựa vào các tùy chọn:
- MIDlet. Phát sinh một lớp extends MIDlet và một lớp extends lớp Displayable (Canvas, Form, List hay TextBox). Việc xử lý Command giữa hai lớp có thể được cấu hình.
- MIDP Displayable. Phát sinh một lớp stanalone extends một lớp Displayable.
Trong hầu hết các trường hợp, tùy chọn MIDlet sẽ được chọn. Điều này sẽ gọi MIDlet wizard thu thập tất cả các thông tin cần thiết. Một wizard riêng sẽ được gọi cho tùy chọn MIDP Displayable.

http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_194/8.jpg

Hình 8 MIDlet Wizard Step1

http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_194/9.jpg

Hình 9 MIDlet Wizard Step2

Ô cửa sổ project sẽ cho ta xem các tập tin nguồn trong project.

http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_194/hinh10.jpg

Hình 10 JBuilder Project Pane

Khi nhấp kép vào một tập tin nguồn trong project pane, structure pane sẽ cung cấp một cái nhìn chi tiết của các lớp trong tập tin nguồn.

http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_194/borland4.jpg

Hình 11 JBuilder Structure Pane

JBuilder hỗ trợ nạp nhiều project trong một IDE. Hộp thả project selector được dùng để chuyển đổi giữa các projects.

http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_194/12.jpg

Hình 12 JBuilder Project Selector
Trong JBuilder Enterprise Edition, các projects có thể được gắn kết với bất kỳ JDK nào. Do đó, ta có thể có một J2EE project chứa một servlet và một J2ME MIDP project hoạt động như một client đến servlet. Cả hai project có thể chạy đồng thời trong cùng một IDE, cung cấp một môi trường phát triển tích hợp enterprise end-to-end.
Các thư viện lớp ngoại có thể được cấu hình thông qua Required Libraries tab trong Project Properties.

http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_194/13.jpg

Hình 13 JBuilder Project Properties Required Libraries Tab

Trình soạn thảo
JBuilder sử dụng trình soạn thảo được tích hợp sẵn của JBuilder.

http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_194/14.jpg

Hình 14 JBuilder Source Code Editor
Các tính năng chính mà trình soạn thảo hỗ trợ gồm có:
- Brace matching
- Keyboard shortcuts
- Syntax highlighting
- Customisable editor key mappings
- CodeInsight (code completion, parameter lists, và tool tip expression evaluation)
- Code templates
- Cho phép soạn thảo nhiều file trong một giao diện hỗ trợ tab
- Re-factoring
JBuilder cung cấp một bộ UI designer cho các ứng dụng MIDP. Bộ MIDP designer dựa trên bộ Swing UI designer có sẵn trong JBuilder.

http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_194/15.jpg

Hình 15 JBuilder MIDP Designer
MIDP designer giúp ta làm việc trực quan với các thành phần giao diện MIDP cơ bản. Ngoài ra, nó còn hỗ trợ việc phát sinh mã tự động.
Các thành phần giao diện MIDP sau được hỗ trợ:
- ChoiceGroup
- DateField
- Gauge
- ImageItem
- StringItem
- TextField
- Ticker
- Spacer
Các thành phần MIDP screen sau đây được hỗ trợ:
- Alert
- Form
- List
- TextBox
Khi xử lý các thành phần với bộ MIDP designer, JBuilder tự động phát sinh mã để quản lý giao diện. Mã phát sinh chuyên biệt cho JBuilder, điều này có nghĩa là MIDP designer sẽ không thể dịch ngược lại các mã nguồn đã được viết tay. MIDP Designer giúp phát triển nhanh các giao diện mẫu MIDP.

DaiThanh
18-09-2009, 04:46 PM
Build/Đóng gói
JBuilder cung cấp các tiện ích để build project. Khi biên dịch, JBuilder sẽ:
- Biên dịch MIDlet và phát sinh các tập tin class
- Verify trước các tập tin class đã được biên dịch
- Phát sinh tập tin JAD
Ta có thể biên dịch toàn bộ project, hoặc chỉ biên dịch từng MIDlet suite hoặc MIDlet.

http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_201/j2me3.jpg

JBuilder phiên bản Professional và Enterprise tích hợp sẵn một bộ obfuscate mã. Nó có thể được kích hoạt thông qua Build tab trong Project Properties. Trong phiên bản JBuilder Personal, tùy chọn này được disable.
Tuy nhiên, bộ obfuscate mã được tích hợp sẵn này khá yếu. Điều này dẫn tới yêu cầu phải có thêm khả năng tích hợp các bộ obfuscator mã khác của các hãng thứ ba vào JBuilder.
Đối với JBuilder phiên bản Professional và Enterprise, thì việc hỗ trợ đóng gói sẽ được cung cấp thông qua trình Archive Builder. Trong phiên bản JBuilder Personal, việc đóng gói sẽ được thực hiện ngoài IDE.
Archive Builder là một wizard thực hiện toàn bộ quá trình đóng gói, bao gồm việc tạo các file JAR và JAD. Một khi wizard thực hiện xong, một node sẽ được thêm vào khung project pane. Mỗi khi project được rebuild, các file JAR và JAD tự động được tạo lại.
Giả lập
Theo mặc định, JBuilder sẽ tận dụng môi trường giả lập của WTK 2.1 để chạy các ứng dụng MIDP. Ngoài ra, nó có thể gắn thêm các bộ giả lập của hãng thứ ba bằng cách cấu hình bộ J2ME JDK mà JBuilder sử dụng.
Chỉ có các trình giả lập của các hãng thứ ba hỗ trợ môi trường giả lập của J2ME JDK mới có thể được sử dụng với JBuilder. Khi tích hợp Nokia Developer's Suite for J2ME và Siemens Mobility Toolkit (SMTK) vào JBuilder, không có lỗi nào xảy ra.
Nếu J2ME JDK hỗ trợ nhiều thiết bị, thì MIDlet tab trong Project Properties có thể được dùng để chọn thiết bị giả lập được sử dụng khi chạy hoặc debug một ứng dụng MIDP trong IDE.

http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_201/16.jpg

Hình 16 MIDlet Runtime Configuration

Tab này cho phép chọn lớp MIDlet chính. Có thể thay vào đó một tập tin JAD hoặc một địa chỉ OTA URL. Ngoài ra, còn có thể cấu hình các tham số của MIDlet và trình giả lập.
Một tính năng tiện lợi của JBuilder là khả năng chọn nhiều MIDlet trong khung project pane và chạy project. IDE sẽ tự động tạo một bộ MIDlet suite chứa các MIDlet được chọn và gọi trình giả lập cho bộ suite này.
JBuilder hỗ trợ Over The Air (OTA) provisioning từ trong JBuilder.
Các bộ MIDlet suite có thể được upload lên một FTP server mà không cần rời khỏi JBuilder, sau đó có thể được kiểm tra trong trình giả lập bằng cách download và chạy chúng sử dụng OTA provioning. Nó có thể phát hiện và chạy các MIDlet trên Internet.

http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_201/17.jpg

Hình 17 JBuilder OTA Provisioning

Trình gỡ rối
Trình gỡ rối đã được tích hợp sẵn trong JBuilder. Trình gỡ rối có thể được sử dụng để gỡ rối các ứng dụng MIDP chạy trong bất kỳ trình giả lập được hỗ trợ nào.
Khi trình gỡ rối được khởi động, ngoài cửa sổ giả lập, một thẻ tab ngang biểu diễn phiên gỡ rối được hiển thị trong IDE. Có thể hỗ trợ nhiều phiên gỡ rối đồng thời và có thể chuyển đổi bằng các tab này.

http://www.tincntt.com/tincntt/mvnplugindata/mvncms/2005/4/19/content_201/18.jpg

Hình 18 JBuilder Debugging Session

Các tab dọc bên trái biểu diễn trên trình gỡ rối những gì đang diễn ra trong phiên gỡ rối hiện tại. Nó cung cấp những thông tin sau:

- Console. : Hiển thị output từ chương trình và errors trong chương trình
- Threads, call stacks và data.: Hiển thị các nhóm thread trong chương trình. Mỗi nhóm thread được mở rộng để hiển thị các thread của nó, và chứa một stack frame trace biểu diễn trình tự gọi hàm hiện tại. Mỗi stack frame có thể được mở rộng để hiển thị các thành phần dữ liệu trong scope.
- Synchronisation monitors : Biểu diễn các bộ theo dõi synchronisation sử dụng bởi các thread và trạng
thái hiện tại của chúng, giúp phát hiện các tình huống deadlock.
- Data watches : Hiển thị các giá trị hiện tại của các thành phần dữ liệu đang được theo dõi.
- Loaded classes and static data: Hiển thị các lớp đã được load bởi chương trình. Mở rộng một class sẽ thấy được các dữ liệu static, nếu có, cho class đó. Nếu một gói được hiển thị trong cây, thì số lượng các lớp đã load trong gói đó sẽ được hiển thị.
- Data and code breakpoints : Hiển thị tất các các tập breakpoint trong file và trạng thái hiện tại của chúng.
- Classes with tracing disabled : Hiển thị một danh sách theo thứ tự Alphabet các lớp và gói không được chạy vào.
Trình soạn thảo code biểu diễn mã source code tại điểm mà ứng dụng MIDP được dừng trong phiên gỡ rối hiện tại. Các breakpoint cũng được hiển thị trong trình soạn thảo mã nguồn.
Trong phiên bản JBuilder Prefessional và Enterprise, các biến có thể được lượng giá bằng các di chuyển con chuột trên tên biết trong phần source code. Ngoài ra, JBuilder hỗ trợ ExpressionInsight, cho phép đi sâu vào các thành viên của một biến từ một cửa sổ pop-up hiển thị bên trong source code.
Kết luận
JBuilder (hoặc cùng với MobileSet) đã cung cấp một môi trường hoàn chỉnh cho việc phát triển các ứng dụng J2ME. Các lập trình viên đã quen thuộc với JBuilder khi phát triển J2SE và J2EE sẽ dễ dàng chuyển ngay sang J2ME.
JBuilder MIDP designer là một công cụ trực quan hữu dụng để xây dựng các giao diện MIDP. Tuy nhiên, nó vẫn chưa hỗ trợ đầy đủ các thành phần giao diện MIDP và trong nhiều trường hợp mã code nó sinh ra vẫn cần phải viết tay lại. Chúng ta mong rằng các phiên bản sau này của JBuilder sẽ cung cấp bộ MIDP designer đầy đủ tính năng và linh hoạt hơn.
Phiên bạn Personal cho download miễn phí, nhưng chỉ cấp quyền cho việc sử dụng cá nhân.
Phiên bản Professional và Enterprise là các sản phẩm thương mại với bản quyền phát triển thương mại không giới hạn. Các phiên này cũng cung cấp các tính năng không chuyên biệt cho J2ME ngoài phiên bản Personal, chẳng hạn như công cụ trực quan UML, re-factoring, tích hợp unit testing và team development. Việc đánh giá các tính năng này nằm ngoài phạm vi của bài viết, nhưng trong một dự án thương mại lớn các tính năng này rất cần thiết để tăng hiệu quả công việc của từng cá nhân và nhóm.
Phiên bản Enterprise cung cấp các tiện ích phát triển J2EE, cho phép phát triển một giải pháp J2ME ở mức enterprise.
JBuilder đã qua nhiều phiên bản và đây là một trong những Java IDE thương mại thông dụng nhất. Đặc biệt là phiên bản Enterprise đã được nhiều công công ty chấp nhận rộng rãi để phát triển các giải pháp Java enterprise của họ. JBuilder đã tích hợp J2ME một cách hiệu quả.
Để phát triển các giải pháp J2ME lớn ở mức enterprise, có thể nói rằng JBuilder là IDE thương mại toàn diện, cung cấp một môi trường phát triển hiệu quả cao.

Nguồn tin:

Javavietnam.org

lamdaica
17-04-2010, 08:53 PM
Mình comment thêm là giờ eclipse đã có 1 version dành riêng cho mobile rất tiện http://www.eclipse.org/pulsar/
Option để các j2me developer có thể lựa chọn là Eclipse mobile +wirelesstookit như bài viết trên bạn viết