I.Giới thiệu

Sun Microsystems đã phân loại Java nền tảng thành ba phiên bản:

  • Java 2 Platform, Enterprise Edition (J2EE)
  • Java 2 Platform, Standard Edition (J2SE)
  • Java 2 Platform, Micro Edition (Java ME)

Java Micro Editon(Java ME) là một platform sử dụng công nghệ Java trên các thiết bị nhúng hạn chế tài nguyên như Mobile phone, PDAs, Palmtops…JavaME là một phiên bản nhỏ gọn của Java, nhắm mục tiêu vào các thiết bị mà giới hạn về tốc độ xử lý, khả năng lưu trữ hay là các kết nối băng thông hẹp.

II.Tổng quan

Kiến trúc Java ME nói chung được phân thành 3 tầng:

  • Java Virtual Machine
  • Configuration
  • Profile

Trong đó:

Java Virtual Machine(JVM) là một trình thông dịch(interpreter) và cung cấp môi trường Runtime cho các ứng dụng Java. Mã nguồn Java được biên dịch(compile) vào một định dạng gọi là “bytecode” được thực hiện bởi JVM.

Configuration(Cấu hình) là một tập tối thiểu của thư viện các lớp lõi(core) mà cung cấp các chức năng cơ bản cho một phạm vi cụ thể của thiết bị.

Profile là một mở rộng của cấu hình, nó địa chỉ hóa các nhu cầu cụ thể của một họ(family) thiết bị.

Một số hình vẽ minh họa

Hình 1: Minh họa các thành phần của JavaME và các công nghệ Java khác.

Hình 2: Minh họa các thành phần được kết hợp trong cấu trúc của JavaME.

III.Tìm hiểu chi tiết

3.1.Cấu hình(configuration)

Cấu hình cung cấp một tập cơ bản các thư viện và các khả năng JVM giới hạn cho các thiết bị hỗ trợ JavaME.

Kilobytes Virtual Machine(KVM)

KVM là một một JVM thu gọn được thiết kế cho các thiết bị giới hạn tài nguyên. Thông thường, các thiết bị này chứa các processor 16 hay 32 bit và một bộ nhớ tối thiểu là 128 kilobytes. KVM duy trì tất cả các khía cạnh(aspects) của ngôn ngữ lập trình Java và chạy trên các thiết bị hạn chế tài nguyên với chỉ một vài trăm kilobytes trên tổng bộ nhớ.

Connected Limited Device Configuration(CLDC)

CLDC được thiết kế cho các thiết bị di động. Thông thường, cấu hình này bao gồm các đặc điểm sau:

  • 160-512K bộ nhớ available cho Java.
  • Giới hạn nguồn hoặc pin hoạt động.
  • Kết nối mạng thường là wireless, liên tục, băng thông thấp.
  • Các thư viện lớp core java tùy thuộc vào từng thiết bị cụ thể.
  • 32 kilobytes bộ nhớ được cấp phát cho bộ nhớ lúc chạy.

3.2.Hiện trạng(Profile)

Profile thêm vào các lớp domain-specific và giúp đỡ trong việc tạo ra các ứng dụng có tính tương tác. Profile phổ biến, đó là Mobile Information Device Profile(MIDP). Các version hiện có của MIDP là: MIDP 1.0, MIDP 2.0, MIDP 2.1.

MIDP là một tập các APIs của Java và nó được thêm tên miền cụ thể hơn so với các thư viện lớp của CLDC. MIDP cho phép người ứng dụng thực hiện các thao tác lưu trữ , kết nối network và giao diện người dùng, đảm bảo khả năng tương tác giữa ứng dụng với người dùng. Một trong những tính năng cốt lõi của MIDP là công nghệ hỗ trợ cho phát triển giao diện người dùng.

3.3.Các gói tùy chỉnh(Optional packages)

Các gói tùy chỉnh là các APIs của Java, chúng được đóng gói cùng với configuration và profile để tạo ra các gói phần mềm. Tuy nhiên nó độc lập với các họ thiết bị cụ thể, tùy vào khả năng của thiết bị mà có thể hỗ trợ một hay nhiều các gói tùy chỉnh; gói tùy chỉnh nằm ở trên profile(xem lại hình vẽ 2).

Số lượng các gói tùy chỉnh của JavaME được list theo danh sách sau đây:

  • Wireless Messaging API (WMA), JSR 120, JSR 205
  • Mobile Media API (MMAPI), JSR 135, JSR 234
  • Location API for Java ME, JSR 179
  • SIP API for Java ME, JSR 180
  • Security and Trust Services API (SATSA), JSR 177
  • Mobile 3D Graphics, JSR 184
  • Web Services APIs (WSA), JSR 172
  • Bluetooth API, JSR 82

MIDlet

MIDlet là một ứng dụng MID Profile. Ứng dụng nên extend từ lớp MIDlet để nhận phần mềm quản lý ứng dụng(Application Management Sofware – AMS) để điều khiển MIDlet và có thể lấy các thuộc tính từ trình mô tả của ứng dụng(thường từ file JAD), hoặc thông báo hay yêu cầu thay đổi trạng thái. AMS quản lý các hoạt động của các MIDlets bên trong một môi trường runtime sử dụng các trạng thái này.

MIDlet có 3 phương thức bắt buộc phải override:

  • startApp()
  • pauseApp()
  • destroyApp (boolean)

Bạn thấy bài viết này thế nào?