J2ME

J2ME (viết tắt của Java Platform, Micro Edition) hay Java ME là một nền tảng máy tính để phát triển và triển khai mã nguồn di động cho hệ thống nhúng và thiết bị di động (vi điều khiển, cảm biến, cổng kết nối, điện thoại di động, trợ lý kỹ thuật số cá nhân, đầu thu truyền hình, máy in). Java ME trước đây gọi là Java 2 Platform, Micro Edition hay J2ME. 

Nền tảng này sử dụng ngôn ngữ lập trình hướng đối tượng Java và là một phần của nền tảng phần mềm Java. Nó được thiết kế bởi Sun Microsystems (nay là Oracle Corporation) và thay thế một công nghệ tương tự gọi là PersonalJava.

Năm 2013, với hơn ba tỷ điện thoại di động hỗ trợ Java ME trên thị trường, nền tảng này tiếp tục suy giảm khi điện thoại thông minh đã vượt qua điện thoại phổ thông.

Lịch sử 
Nền tảng này từng phổ biến trên các điện thoại phổ thông, chẳng hạn như các mẫu Series 40 của Nokia. Nó cũng được hỗ trợ trên hệ điều hành Bada và trên hệ điều hành Symbian cùng với phần mềm gốc. Người dùng Windows CE, Windows Mobile, Maemo, MeeGo và Android có thể tải xuống Java ME cho môi trường tương ứng của họ ("bằng chứng về khái niệm" cho Android).

Ban đầu được phát triển theo Quy trình Cộng đồng Java với tên gọi JSR 68, các phiên bản khác nhau của Java ME đã phát triển trong các JSR riêng biệt. Các thiết bị Java ME triển khai một cấu hình. Phổ biến nhất trong số này là Cấu hình Thiết bị Thông tin Di động hướng đến các thiết bị di động như điện thoại di động và Cấu hình Cá nhân hướng đến các sản phẩm tiêu dùng và thiết bị nhúng như hộp giải mã tín hiệu và PDA. Các cấu hình là tập hợp con của các cấu hình, hiện có hai loại: Cấu hình Thiết bị Giới hạn Kết nối (CLDC) và Cấu hình Thiết bị Kết nối (CDC).

Năm 2008, các nền tảng Java ME bị giới hạn ở các tính năng của máy ảo Java (JRE) 1.3 và sử dụng phiên bản định dạng tệp lớp đó (nội bộ gọi là phiên bản 47.0).

Triển khai

Oracle cung cấp một phiên bản tham chiếu của đặc tả kỹ thuật, cùng một số cấu hình và hồ sơ cho MIDP và CDC. Bắt đầu từ SDK JavaME 3.0, một IDE dựa trên NetBeans đã hỗ trợ chúng trong một IDE duy nhất.

Trái ngược với nhiều phiên bản nhị phân của Nền tảng Java do Sun xây dựng cho máy chủ và máy trạm, Sun thường không cung cấp các phiên bản nhị phân cho các nền tảng mục tiêu Java ME, mà thay vào đó dựa vào các bên thứ ba để cung cấp các phiên bản của riêng họ.

Ngoại lệ là JRE (JVM) MIDP 1.0 dành cho Palm OS. Sun không cung cấp J2ME JRE cho các thiết bị dựa trên Microsoft Windows Mobile (Pocket PC), bất chấp chiến dịch gửi thư ngỏ tới Sun yêu cầu phát hành một phiên bản triển khai nội bộ được đồn đoán của PersonalJava được biết đến với tên mã là "Captain America". Các triển khai của bên thứ ba được các nhà cung cấp Windows Mobile sử dụng rộng rãi.

Tại một thời điểm nào đó, Sun đã phát hành một triển khai tham chiếu hiện đã bị bỏ rơi với tên gọi phoneME.

Các hệ điều hành nhắm mục tiêu Java ME đã được DoCoMo triển khai dưới dạng DoJa, và bởi SavaJe dưới dạng SavaJe OS. Công ty sau này đã được Sun mua lại vào tháng 4 năm 2007 và hiện là nền tảng của JavaFX Mobile của Sun.

Mika VM mã nguồn mở nhằm mục đích triển khai JavaME CDC/FP, nhưng không được chứng nhận như vậy (các triển khai được chứng nhận yêu cầu phải tính phí bản quyền, điều này không thực tế đối với một dự án mã nguồn mở). Do đó, các thiết bị sử dụng triển khai này không được phép tuyên bố tương thích với JavaME CDC.

Hệ điều hành Android dựa trên Linux sử dụng một phiên bản Java độc quyền tương tự về mục đích, nhưng rất khác biệt ở nhiều khía cạnh so với Java ME.

Giả lập
 Sun Java Wireless Toolkit (WTK, viết tắt) — là trình giả lập Java ME độc quyền, ban đầu được cung cấp bởi Sun Microsystems, và sau đó là Oracle.
 MicroEmulator (MicroEMU, viết tắt) — là trình giả lập Java ME mã nguồn mở.
 J2ME Loader — trình giả lập Java ME mã nguồn mở dành cho Android.
 FreeJ2ME-plus — Một phiên bản phát triển từ FreeJ2ME, trình giả lập J2ME miễn phí, đa nền tảng với hỗ trợ giao diện người dùng Libretro và AWT.

Ngoài ra còn có các trình giả lập khác, bao gồm cả các trình giả lập được cung cấp như một phần của bộ công cụ phát triển bởi các nhà sản xuất điện thoại, chẳng hạn như Nokia, Sony Mobile, Siemens Mobile, v.v.

Tham khảo

Ghi chú
 JSR 232: Mobile Operational Management một nền tảng dựa trên công nghệ OSGi tiên tiến dành cho điện toán di động
 JSR 291: Dynamic Component Support for Java SE Mô hình lập trình đối xứng cho Java SE sang Java ME JSR 232

Thư mục

Liên kết ngoài 

 Sun Developer Network, Java ME
 Nokia's Developer Hub Java pages
 Nokia S60 Java Runtime blogs
 Sony Ericsson Developer World
 Motorola Developer Network 
 J2ME Authoring Tool LMA Users Network
 Samsung Mobile Developer's site
 Sprint Application Developer's Website
 Performance database of Java ME compatible devices
 MicroEJ platforms for embedded systems
 Book - Mobile Phone Programming using Java ME (J2ME) 
 Tutorial Master ng, J2ME

Ngôn ngữ lập trình
Công nghệ Java
Nền tảng máy tính
Nền tảng Java