J2ME là gì?
J2ME là viết tắt của Java 2 Micro Edition. J2ME được thiết kết cho các thiết bị nhỏ ví dụ nhưmobile phone, các thiết bị điều khiển từ xa, các thiết bị khác như PDA, v.v...
Có rất nhiều khác biệt giữa J2ME và các phiên bản khác của Java triển khai trên nền PC, mà lí do chính là các thiết bị mục tiêu của J2ME có rất nhiều sự khác biệt so với PC.
Một vài điểm khác biệt giữa các “thiết bị J2ME” so với PC là:
+Hạn chế về tốc độ của bộ vi xử lý
+Hạn chế về bộ nhớ hệ thống
+Hạn chế về khả năng lưu trữ
+Màn hình hiển thị nhỏ
+Hạn chế về nguồn năng lượng
+Khả năng kết nối Internet yếu.
J2ME đã được thiết kế với tất cả những cân nhắc đối với các yếu tố kể trên. Các thiết bị được thiết kế tương thích với J2ME đều bao gồm một phiên bản mini của Java Virtual Machine (JVM) được tích hợp sẵn trong đó, phiên bản này còn có tên gọi là KVM, rất nhỏ gọn và phù hợp với các thiết bị nhỏ. KVM cho phép thực thi các chương trình Java viết trên nền J2ME, những chương trình này còn được gọi là các MIDlet. Các midlet không gì khác là một chương trình viết bằng Java (tuy có đôi chút khác biệt) khai thác các Java API mà J2ME cung cấp, chúng tạo ra sức mạnh mới cho các thiết bị.
Các ứng dụng J2ME có thể làm được nhiều điều hơn những gì chúng ta tưởng, một vài trong số chúng có thể được liệt kê ra đây:
+Tạo các kết nối UDP (User Datagram Protocol- một giao thức của bộ giao thức TCP/IP) tới các server hoặc giữa 2 thiết bị.
+Tạo các kết nối HTTP tới các HTTP sever từ đó tạo nên các ứng dụng phong phú.
+Tạo các kết nối kiểu Socket
+Quét mã vạch.
+Lập trình kết nối Bluetooth
+.... và còn rất nhiều khả năng khác của J2MEphụ thuộc vào trí tưởng tượng của bạn.
Về kiến trúc, J2ME có thể được chia làm 3 tầng như sau:
Ở đây ta không đi quá sâu vào phân tích ý nghĩa và đặc điểm chi tiết các tầng để tránh sự phức tạp cho bài viết. Các bạn có thể tham khảo thêm trong nhiều tài liệu về J2ME.Dưới đây là một vài nét mô tả sơ lược:
Tầng cao hơn là Profile bao gồm các thư viện lập trình cơ bản dùng để phát triển các ứng dụng tương ứng với từng dòng thiết bị.Có 3 profile phổ biến là MIDP (Mobile Information Device Profile ), PDA profile, và Foundation profile. Mỗi profile đó có chứa một tập hợp các API khác nhau do vậy ứng dụng phát triển trên profile nào chỉ chạy được trên các thiết bị hỗ trợ profile đó.
Tầng trên cùng là Optional Packages (JSR - Java Specification Request) bao gồm các gói thư viện lập trình bổ xung, khi triển khai ứng dụng các gói này cũng phải được phân phối theo ứng dụng của bạn (phần lớn đây là các gói thư viện mà các nhà cung cấp thiếtbị di động tích hợp trong sản phẩm của họ để phát triển các tính năng bổ xung như xử lý âm thanh, đồ họa 3D ...).
Cả hai tầng Configuration và Profile được cung cấp bởi các nhà sản xuất thiết bị và được nhúng trực tiếp vào các thiết bị. Trong bài viết này chúng ta sẽ chỉ tập trung vào configuration và profile thông dụng nhất được biết đến nhiều là CLDC và MIDP với các phiên bản là CLDC 1.1 và MIDP 2.0.
Tuy nhiên đối với lập trình viên thì thường quan tâm đến các thư viện mà J2ME cung cấp. Bảng sau đây cho các bạn cái nhìn tổng quan về các gói thư viện lập trình của CLDC và MIDP
2- Cần những công cụ nào để lập trình với J2ME?
Để có thể lập trình các ứng dụng trên nền J2ME (hay còn gọi là các MIDlets) bạn cần cài tối thiểu các công cụ sau đây:
+JDK version 1.4.2 trở lên
+J2ME Wireless toolkit : gói phần mềm này cung cấp cho bạn một trình giả lập các thiết bị di động (kèm theo các API tương ứng), và công cụ biên dịch, debug, v.v... nhưng khôngkèm theo trình hỗ trợ viết code. (các hãng sản xuất thiết bị di động thường cung cấp một công cụ riêng tương tự tuy nhiên trong bài viết này ta sử dụng công cụ của SUN)
+Một ứng dụng hỗ trợ viết code: ví dụ JCreator, Eclipse, Netbeans v.v... Với JCreator bạn phải cấu hình bằng tay, với Eclipse bạn phải cài thêm EclipseME plugin, với Netbeans version 6.0 bạn chỉ cần chọn gói Mobility là đã đầy đủ, không cần cài thêm J2ME wirelesstoolkit
----------to be continued----------
*Nguồn: Mobileforum.vn